07/02/2025
Để đây ai cần thì doc
Góc giới thiệu tài liệu
Mình có một thói quen là khi tìm đọc về một chủ đề nào đó thì sẽ đọc cuốn được xem là kinh điển nhất đầu tiên, và thay vì đọc nhiều cuốn khác nhau thì mình sẽ đọc lại cuốn đó cho đến khi nắm toàn bộ nội dung, vì vậy số đầu sách kỹ thuật mình đọc thực ra không nhiều, có lẽ mỗi năm chỉ khoảng 3-4 cuốn, khi cần mở rộng ra thì mình sẽ đọc các tài liệu khác trên Internet, như blog, các bài báo...
Dưới đây là những sách được lựa chọn theo từng chủ đề, và là sách mình nghĩ là "phải đọc" nếu bạn muốn đi sâu vào lĩnh vực tương ứng. Mình đã đọc tất cả sách được liệt kê ở đây, và đánh giá ở đây là đánh giá của cá nhân, có thể bạn đọc vào sẽ có cảm nhận khác. Tất nhiên với các trang web thì mình chỉ đọc những phần mình quan tâm thôi.
Mình không chia sẻ link, các bạn muốn đọc thì tự tìm hoặc mua nhé!
📕 OOP và phân tích thiết kế:
- Clean Architecture, Robert Martin: Cuốn sách này mang lại cho bạn một tập kiến thức chi tiết về mọi khía cạnh liên quan đến OOP, tuy tiêu đề mang tên là Clean Architecture nhưng phần nói về nó tương đối ngắn, chỉ đâu đó khoảng 10 trang, và thực tế là nếu đã hiểu rõ OOP và các khái niệm liên quan thì chỉ cần chừng đó là bạn đủ hiểu về Clean Architecture rồi.
- Object-Oriented Analysis and Design with Applications, Grady Booch, Ivar Jacobson, and James Rumbaugh. Nếu biết tác giả của cuốn sách này chính là những người tạo ra UML, có lẽ bạn sẽ chẳng nghi ngờ gì về tính chính xác của nội dung cuốn sách, OOAD là phương pháp mà mình tin rằng cho tới bây giờ vẫn còn giữ nguyên giá trị.
- Domain-Driven Design, Eric Evans: Cuốn này còn được gọi là "The blue book", được viết bởi chính tác giả của DDD, tuy nhiên vì DDD vốn là một chủ đề phức tạp, đòi hỏi bạn đã có kinh nghiệm nên lời khuyên là chỉ nên đọc khi bạn thực sự muốn tìm hiểu, nếu không sẽ không thấm được.
- Patterns of Enterprise Application Architecture, (Martin Fowler và nhiều tác giả khác): Hãy đọc cuốn này nếu bạn quan tâm đến việc xây dựng các ứng dụng lớn, nhiều người dùng, nó không chỉ có các design pattern mà còn cho bạn thấy nhiều vấn đề bạn sẽ gặp phải.
- System Design Interview, Alex Xu: Thú thật là mình cũng chỉ đọc sơ qua thôi, vì nhiều kiến thức trong đây thì mình đã biết rồi, nhưng nếu bạn là người mới với system design thì nên đọc.
📕 Kiến trúc máy tính và hệ điều hành:
- Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond, Yale N. Patt (Author) và Sanjay Patel: mình đã từng nhắc đến cuốn này trước đây, nó chứa đầy đủ thông tin về kiến trúc máy tính, và cả mô tả về máy ảo Little Computer 3. Khi nói về LC3, chỉ cần dùng từ The book là người ta biết đang nói về cuốn này.
- Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin và Greg Gagne: gọi là concept nhưng các tác giả nói rất kỹ về các khái niệm liên quan đến hệ điều hành, bao gồm cả các chủ đề mới như máy ảo hay các hệ thống phân tán.
- Operating Systems Design and Implementation, Andrew S. Tanenbaum, Albert S. Woodhull: Giáo sư Andrew S. Tanenbaum là tác giả của Minix, hệ điều hành tạo ra cảm hứng cho Linus Torvalds viết ra Linux, và bộ sách này có thể gọi là must-read đối với những người học về hệ điều hành.
- Linux Kernel Development, Robert Love: tác giả là người có hiểu biết sâu sắc về Linux, đã tham gia vào xây dựng scheduler và virtual memory cho Linux, cũng như tham gia vào xây dựng những phiên bản đầu tiên của Android. Tuy nội dung hơi cũ nhưng vẫn nên đọc với ai quan tâm đến Linux kernel.
- Windows Internals (nhiều tác giả): một trong những tác giả của bộ sách là Mark E. Russinovich, mình biết anh này từ khi anh ấy lập nên trang Sysinternals, với nhiều công cụ hữu hiệu cho Windows, mình rất thích đọc các bài viết của anh vì mang lại rất nhiều kiến thức. Anh này hiện đang là CTO của Azure, mình cũng vẫn hay xem anh ấy qua các video về WASM.
📕 Thuật toán:
- Algorithms, Robert Sedgewick và Kevin Wayne: đây là bộ sách gối đầu giường của mình khi còn là sinh viên, mình đọc và tham khảo rất nhiều khi học, các thuật toán trong đây cũng là những bài tập mình làm khi luyện code. Có thể nói đây là cuốn sách mình khuyến khích các bạn nên đọc, bất kể bạn đang học ngôn ngữ hay nền tảng gì, sách này có bản dịch tiếng Việt.
📕 Networking, TCP/IP và HTTP:
- TCP/IP Illustrated, W. Richard Stevens (3 tập): Bộ sách về TCP/IP phải nói là đỉnh của đỉnh, mình từng có bản giấy của bộ này nhưng nay không biết thất lạc đâu rồi :(.
- https://openid.net/: Trang web của OpenID Foundation, mình hầu như chỉ đọc tài liệu về OpenId connect ở đây.
- Các RFC, HTTP 1/2/3, OAuth2 và các chuẩn về web: RFC là các quy ước, đặc tả mà các nhà phát triển hay sản xuất công nghiệp tuân theo để đảm bảo tính đồng bộ và tương thích, vì vậy đọc các RFC cũng đồng nghĩa với việc bạn đang đọc các tài liệu mà các chuyên gia trên thế giới đọc để tạo ra các sản phẩm bạn đang dùng. Ban đầu chưa quen sẽ hơi khó tiếp thu, nhưng một khi đã quen rồi bạn sẽ ... nghiện 😅.
- Trang learning của Cloud Flare (https://www.cloudflare.com/learning/): Cloud Flare thì quá nổi tiếng rồi, và trang learning của họ cũng rất đầy đủ và cập nhật, được viết theo phong cách đơn giản để có thể hiểu được ngay cả với người mới.
- https://web.dev/: Phải đọc với người làm web, không chỉ chứa các bài học về HTML, CSS và JS, nó còn giúp bạn hiểu các vấn đề liên quan đến tối ưu web, là điều kiện đủ khi tham gia các dự án thực tế.
📕 Database:
- Database Internals, Alex Petrov: cuốn sách nói về những gì xảy ra đằng sau các hệ cơ sở dữ liệu, đọc để có nền tảng tốt trong việc xây dựng, thiết kế và tối ưu các DB lớn.
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Martin Kleppmann: Nếu bạn kể bạn yêu thích xây dựng, tối ưu các CSDL lớn mà lại không biết cuốn này thì tui sẽ nghi ngờ câu chuyện của bạn.
📕 Ngôn ngữ lập trình/Framework:
- Compilers: Principles, Techniques, and Tools, (Alfred Aho và Jeffrey Ullman): bộ sách kinh điển cho người quan tâm đến cách các ngôn ngữ lập trình, trình biên dịch hoạt động, có bản dịch tiếng Việt. Nó cũng hay được gọi là bộ sách con rồng (vì trên bìa có hình con rồng).
- CLR via C #, Jeffrey Richter: cuốn này hơi cũ nhưng cũng mang lại nhiều kiến thức về nền tảng .NET, hiện nay kho docs của .NET cũng khá ổn rồi nên đọc trên đó cũng được.
- Java - The Complete Reference: đây là bộ sách về Java, chủ yếu là Java Core, mình cũng học Java từ phiên bản đầu tiên của cuốn này.
📕 Bonus thêm vài cuốn ngoài lề, có 3 cuốn sách mà lâu lâu mình hay đọc lại:
- Hoàng tử bé: mình rất thích cuốn này, có thể bạn đọc không thấy hay thì ... kệ bạn.
- Sáu người đi khắp thế gian, James Michener: Đọc cuốn này để thấy thế giới rộng lớn như thế nào, những câu chuyện, những mảnh đời khác nhau mang lại cho bạn những góc nhìn khác nhau. Cảnh báo: nó có thể khiến bạn bị thôi thúc bởi cảm giác phải vượt ra khỏi lũy tre làng, bước ra khám phá thế giới.
- Just for fun, Linus Torvalds: Câu chuyện về hành trình xây dựng nên Linux, hệ điều hành phổ biến nhất thế giới, được kể bởi chính tác giả, idol của hàng triệu người trên thế giới (có tui). Nó giúp mình giữ cảm hứng để đóng góp các bài viết và video sau những giờ làm việc mệt chetme 😁.