Tôi vấp phải câu nói này của Bill Gates: "Bạn chắc chắn nên gửi cho tôi một bản lý lịch nếu bạn có thể đọc toàn bộ." Anh ấy đang nói về cuốn sách Nghệ thuật lập trình .. Vì vậy, tôi khá tò mò và muốn đọc tất cả nhưng thành thật mà nói, tôi không hiểu gì cả .. I'm really not that highly
intellectual being
.. Vì vậy, đây là lý do tại sao tôi không thể hiểu nó , nhưng tôi rất muốn học .. Tôi hiện đang đọc tập 1 về thuật toán cơ bản .. Vậy có cuốn sách nào thân thiện với người mới / những người chậm chạp như tôi không? Vì vậy, tôi có thể xây dựng bản thân và hy vọng trong tương lai tôi có thể đọc sách của Knuth một cách thoải mái ..
nếu bạn xác định chính mình như vậy not a highly intellectual being
thì bạn đang đặt ra cho mình những kỳ vọng thấp. Bạn phải phá vỡ tâm lý đó nếu bạn muốn làm điều gì đó xứng đáng với rắc rối. Không có nghi ngờ gì trong tâm trí của bạn rằng bạn có thể đạt được một cái gì đó. Ngoài ra, đạt được nó không có nghĩa là bạn sẽ đạt được nó một cách dễ dàng.
Những điều đáng theo đuổi là những điều khó khăn ... và đó không phải là một sáo ngữ. Trong phần mềm, kỹ thuật, trong cuộc sống nói chung, nếu bạn muốn đạt được điều gì đó, bạn phải tìm kiếm những thứ khó, những thứ mọi người tránh và không giải quyết cho mẫu số chung thấp nhất của mọi thứ.
Đầu tiên, không rõ nền CS của bạn là gì. Cuốn sách của Knuth đòi hỏi một mức độ trưởng thành. Rất ít người có bằng CS có thể vượt qua nó một cách dễ dàng. Tôi không mong đợi một sinh viên CS vừa hoàn thành khóa học đầu tiên về thuật toán để thực sự có thể trải qua dù chỉ một cuốn sách của Knuth. Sự trưởng thành cần thiết để có được nó chỉ là không có, và điều đó không liên quan gì đến năng lực tinh thần của học sinh.
Bạn cần phải có các thuật toán cơ bản của bạn lạnh và rõ ràng, và bạn cần phải có một lượng lập trình (công việc và / hoặc học thuật) hợp lý trong vành đai của mình - ít nhất là 40 tín chỉ về lập trình. Bạn cũng cần phải có toán học CS của bạn trên nền tảng vững chắc.
Bạn không thể tiến xa mà không nắm bắt được toán học rời rạc (và có thể là lý thuyết tính toán.)
Không phải là bạn sẽ cần kiến thức đó để giải quyết các vấn đề của Knuth, nhưng bạn cần có sự trưởng thành để có thể trải qua loại tài liệu đó.
Trước tiên, chọn một cuốn sách và chỉ một cuốn sách (cuốn sách của CLRS như được đề xuất trước đó) và làm việc từ đầu đến cuối. Khi có thể làm các chương trình thực hiện các thuật toán. Không sử dụng Java hoặc C #, thậm chí không C ++. Đi đến xương trần C và có được cảm giác xây dựng mọi thứ từ phế liệu kim loại xương trần.
Cũng nhận được cuốn sách của Knuth về "Toán học cụ thể" nếu bạn chưa thực hiện một khóa học về lý thuyết toán học và tính toán rời rạc. Sẽ tốt cho bạn để đi qua cuốn sách đó là tốt.
Sau đó giải quyết bách khoa toàn thư của Knuth, một cuốn sách, một chương một lần. Đừng đi đến một chương khác mà không nắm bắt được phần đầu tiên.
Tôi sẽ đề nghị bạn đi qua tập I (thuật toán cơ bản) trước, sau đó đến tập III (tìm kiếm và sắp xếp). Đó nên là mục tiêu trước mắt của bạn. Sau đó, sau đó (nhiều về sau), giải quyết tập IV (Thuật toán kết hợp) và sau đó là Tập II (Thuật toán bán số.)
Đừng cảm thấy tồi tệ nếu bạn không hiểu nó lúc đầu. Tôi đã cố gắng vượt qua tập I và III trong nhiều năm (10 năm nay).
Và bạn cũng không nên đặt quá nhiều trọng lượng vào nó. Đừng làm điều đó để chứng minh điều gì đó với ai đó hoặc chính bạn. Làm điều đó bởi vì bạn có trí tuệ quan tâm đến việc làm như vậy. Bạn có thể thành thạo các thuật toán chỉ bằng cách sử dụng sách của CLRS (hoặc bất kỳ cuốn sách cấp độ tốt nào ngoài đó.)
Hãy thực dụng và cho bản thân nghỉ ngơi. Hãy coi việc đi qua cuốn sách của Knuth như một tham vọng cá nhân lâu dài, chứ không phải là một bằng chứng ngay lập tức rằng bạn là tài liệu CS;)
Có những điều quan trọng khác (khôn ngoan về nghề nghiệp) để tự sát;)