Dựa trên TeachYourselfCS, có những mảng mình cảm thấy không thích học lắm nên tìm đến các tài nguyên hoàn toàn miễn phí khác trên Internet để thay thế.
Trước khi học cái này, bạn cần phải học về lập trình đã, cần phải làm được một cái (phần mềm hay dự án) gì đó rồi thì mới có thể hiểu được tầm quan trọng của Khoa học máy tính.
Theo như một trang nào đó trên Internet, Học Khoa học máy tính là cần thiết vì đây là nền tảng cốt lõi của công nghệ hiện đại, mang lại cơ hội nghề nghiệp rộng mở với mức lương cao, kỹ năng tư duy logic/giải quyết vấn đề mạnh mẽ, và khả năng tạo ra tác động tích cực đến xã hội thông qua các giải pháp công nghệ sáng tạo.
Tóm lại là, muốn làm thợ code thì đừng học khoa học máy tính.
Cá nhân TeachYourselfCS gợi ý nếu lười thì chỉ cần đọc CS:APP với lại DDIA là được.
If the idea of self-studying 9 topics over multiple years feels overwhelming, we suggest you focus on just two books: Computer Systems: A Programmer’s Perspective and Designing Data-Intensive Applications. In our experience, these two books provide incredibly high return on time invested, particularly for self-taught engineers and bootcamp grads working on networked applications. They may also serve as a “gateway drug” for the other topics and resources listed above.
Hơi mang tính tâm sự chút, nhưng mà thầy mình từng bảo là, trước khi cả học để có thể hiểu được nó một cách rõ ràng, mình trước hết phải biết nó tồn tại đã. Vậy nên, lần đầu tiên đọc không hiểu thì thôi, đó là vì mình chưa dành đủ thời gian và chưa đủ trải nghiệm thôi, chưa tính đủ lượng thì làm sao mà biến đổi về chất được.
Hay bạn có đang chán và muốn đọc một cái gì khác không? Đọc thử Beej’s Guide to Learning Computer Science. Bạn cũng nên học lập trình C vì khá nhiều cuốn sách ở đây dùng C: Beej’s Guide to C Programming
| Môn học | Why study? | Book | Videos |
|---|---|---|---|
| Programming | Don’t be the person who “never quite understood” something like recursion. | Structure and Interpretation of Computer Programs | |
| Computer Architecture | If you don’t have a solid mental model of how a computer actually works, all of your higher-level abstractions will be brittle. | Dive Into Systems (Nếu nghèo thì đọc sách miễn phí) | CS61C - Có thể xem để ôn lại mấy thứ đã học trong CS:APP |
| Algorithms and Data Structures | If you don’t know how to use ubiquitous data structures like stacks, queues, trees, and graphs, you won’t be able to solve challenging problems. | Data Structures and Algorithms, spring 2025 (TIRA MOOC) | |
| Toán cho KHMT | CS is basically a runaway branch of applied math, so learning math will give you a competitive advantage. | Essence of linear algebra | |
| Hệ điều hành | Most of the code you write is run by an operating system, so you should know how those interact. | Operating Systems: Three Easy Pieces | |
| Computer Networking | The Internet turned out to be a big deal: understand how it works to unlock its full potential. | Beej’s Guide to Networking Concepts | |
| Databases | Data is at the heart of most significant programs, but few understand how database systems actually work. | Mới học SQL chứ chưa học nghiêm túc về mảng này nên không biết | |
| Languages and Compilers | If you understand how languages and compilers actually work, you’ll write better code and learn new languages more easily. | Crafting Interpreters | |
| Distributed Systems | These days, most systems are distributed systems. | Designing Data-Intensive Applications by Martin Kleppmann (Chính là cuốn DDIA) | MIT 6.824 |