12 Cuốn Sách Kinh Điển Mọi Lập Trình Viên Nên Đọc

Học Hỏi Từ Kinh Nghiệm của Người Đi Trước

Người ta thường nói rằng nếu chỉ học hỏi từ sai lầm của bản thân, bạn sẽ chỉ học được một vài điều. Nhưng nếu học hỏi từ kinh nghiệm (và sai lầm) của người khác, bạn có thể tiến bộ vượt bậc trong thời gian ngắn. Và còn cách nào tốt hơn để học hỏi từ kinh nghiệm của ai đó ngoài việc đọc sách?

Sự nghiệp lập trình đòi hỏi sự học hỏi và cập nhật không ngừng, nhưng không may, không có một con đường duy nhất hay đúng đắn để bắt đầu. Thực tế là chương trình đào tạo ở trường học thường chưa theo kịp thế giới lập trình thực tế, và không phải sinh viên tốt nghiệp ngành Khoa học Máy tính nào cũng may mắn được làm việc tại một công ty có quy trình đào tạo bài bản.

Một trong những con đường hiệu quả và đã được kiểm chứng chính là đọc sách, tham gia các [khóa học trực tuyến](https://dev.to/somadevtoo/15-courses-to-learn-system-design-and-software-architecture-4lhi-temp-slug-3732816), và làm theo lời khuyên từ các lập trình viên và tác giả vĩ đại đã đi trước. Và học hỏi từ sách là cách được tin cậy và thử nghiệm nhiều nhất trong số đó.

Tôi vẫn tiếc nuối vì đã không biết đến cuốn [**Clean Code**](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882?tag=javamysqlanta-20) khi mới bắt đầu lập trình. Đây là những cuốn sách có thể thay đổi sự nghiệp của bạn và giúp bạn trở thành một lập trình viên giỏi hơn.

Những cuốn sách này không chỉ dạy về cú pháp hay ngữ nghĩa của các ngôn ngữ lập trình cụ thể như Java, Python hay C++, mà chúng hướng đến một cách tư duy, tổ chức mã nguồn và nâng cao tay nghề kỹ thuật phần mềm. Chúng sẽ không biến bạn thành chuyên gia về một ngôn ngữ cụ thể như Java ngay lập tức, nhưng chắc chắn sẽ giúp bạn [trở thành một Lập trình viên Tốt hơn](http://javarevisited.blogspot.com/2014/01/10-tips-to-improve-programming-skill-become-better-programmer.html).

Một điều nữa tôi thích ở tất cả những cuốn sách này là bạn có thể đọc chúng ở bất cứ đâu: trên ghế sofa, trên giường, hay thậm chí trên đường đi làm hàng ngày. Ý tôi là, bạn không cần trình biên dịch hay IDE để thử nghiệm các kiến thức trong sách xem chúng hoạt động như thế nào, không giống như những cuốn sách lập trình chuyên sâu khác.

Ví dụ, bạn sẽ không hiểu hết cuốn [**Java Concurrency In Practice**](https://amzn.to/3u23o2a) nếu không tự viết ứng dụng, chạy thử nghiệm và phân tích kết quả. Mặc dù đã đọc qua, tôi vẫn giữ phiên bản PDF của những cuốn sách này trên iPad và đọc chúng khi di chuyển.

Tuy nhiên, để tận dụng tối đa bất kỳ cuốn sách lập trình nào, việc thực hành viết code và thử nghiệm ví dụ là điều bắt buộc.

Nhân tiện, nếu bạn là người mới, tôi cũng muốn nhắc rằng trong các bài viết trước, tôi đã chia sẻ về [10 cuốn sách Kỹ thuật phần mềm nên đọc](https://dev.to/somadevtoo/10-software-engineering-books-developers-should-read-in-2025-2kfk) và [10 cuốn sách Thuật toán nên đọc](https://dev.to/somadevtoo/10-must-read-data-structures-and-algorithms-books-for-developers-39f1). Nếu bạn chưa xem, có thể tham khảo sau bài viết này.

12 Cuốn Sách Lập Trình Kinh Điển Có Thể Giúp Bạn Trở Thành Lập Trình Viên Giỏi Hơn

Không để bạn chờ lâu hơn nữa, đây là danh sách 12 cuốn sách hàng đầu mà mọi Lập trình viên, Kỹ sư phần mềm, nhà phát triển nên đọc.

Những cuốn sách này đề cập đến nhiều khía cạnh khác nhau của phát triển phần mềm như Coding, Thiết kế, Kiến trúc, Thuật toán, Cấu trúc dữ liệu, Giải quyết vấn đề, Lập kế hoạch, Quản lý dự án và văn hóa làm việc.

Đọc những cuốn sách này sẽ giúp bạn tiếp thu kinh nghiệm quý báu được tích lũy qua nhiều năm bởi các tác giả, những người đã làm việc tại các môi trường tốt nhất với những con người tài năng nhất.

1. System Design Interview — An insider’s guide by Alex Xu

Thiết kế hệ thống (System design) là một kỹ năng quan trọng đối với lập trình viên và nhà phát triển. Đây là một trong những cuốn sách hay nhất để học về lĩnh vực này. Mặc dù cuốn sách được viết để chuẩn bị cho các buổi phỏng vấn thiết kế hệ thống, đây vẫn là cuốn sách không thể bỏ qua cho mọi lập trình viên.

Được viết bởi Alex Xu với kiến thức nội bộ, cuốn sách cung cấp những hiểu biết vô giá về sự phức tạp của thiết kế hệ thống, một khía cạnh quan trọng trong phỏng vấn kỹ thuật.

Tập trung vào việc giúp ứng viên thành công, cuốn sách bao gồm nhiều khía cạnh khác nhau của phỏng vấn thiết kế hệ thống, bao gồm các khái niệm chính, chiến lược giải quyết vấn đề và các tình huống thực tế.

Tài nguyên này cung cấp một phương pháp tiếp cận có cấu trúc và thực tế để làm chủ thiết kế hệ thống, phục vụ cả người mới bắt đầu và chuyên gia có kinh nghiệm muốn nâng cao hiệu suất phỏng vấn.

Có hai tập của cuốn sách này, và chúng bao gồm nhiều khái niệm thiết kế hệ thống từ khả năng mở rộng (scalability), giới hạn tốc độ (rate limiting), API gateway đến Microservices, và nhiều hơn nữa.

Với góc nhìn ‘người trong cuộc’, cuốn sách trang bị cho người đọc kiến thức và chiến lược cần thiết để vượt qua các tình huống phỏng vấn phức tạp, trở thành một công cụ thiết yếu cho bất kỳ ai muốn không chỉ xuất sắc trong phỏng vấn thiết kế hệ thống mà còn trở thành nhà phát triển phần mềm giỏi hơn và thăng tiến trong ngành công nghệ.

Bạn cũng có thể kết hợp cuốn sách này với [khóa học ByteByteGo](https://bytebytego.com/?fpr=javarevisited) để học hiệu quả hơn.

2. Domain-Driven Design

Phần mềm phức tạp, và bất cứ điều gì giúp bạn giảm bớt sự phức tạp đó hoặc xử lý nó tốt hơn đều rất đáng giá. Domain-Driven Design (Thiết kế hướng theo miền) là một cách tiếp cận phát triển phần mềm khá khác biệt, và đó là lý do tại sao tôi đưa cuốn sách này vào danh sách những cuốn sách nên đọc dành cho lập trình viên.

Eric Evans đã làm rất xuất sắc trong việc giải thích thuật ngữ “**domain-driven design**” và chỉ ra cách nó có thể hoạt động để giải quyết sự phức tạp. Một nhà phát triển trung cấp và có kinh nghiệm sẽ hiểu giá trị của kiến thức về miền (domain knowledge).

Thực tế, một lập trình viên không thể trở thành chuyên gia về một lĩnh vực cụ thể và thiết kế hệ thống tốt hơn nếu không hiểu rõ về miền đó. Đây là lý do một lập trình viên thường gắn bó với một lĩnh vực như Tài chính, Y tế, Bảo hiểm, v.v. Chính sự kết hợp giữa kiến thức về miền và [kỹ năng lập trình](https://javarevisited.blogspot.com/2014/01/10-tips-to-improve-programming-skill-become-better-programmer.html) mới giúp bạn trở thành một lập trình viên giỏi hơn.

3. Programming Pearls

Đây là cuốn sách đầu tiên tôi đọc để chuẩn bị cho phỏng vấn lập trình. Nó chứa đựng một số bài toán khó nhằn đối với người mới bắt đầu, và nếu bạn cố gắng tự giải quyết chúng, bạn sẽ học được rất nhiều. Chúng thách thức hiểu biết của bạn về các khái niệm cốt lõi trong bộ nhớ, CPU và thuật toán.

Một số bạn có thể nghĩ rằng cuốn sách này đã lỗi thời vì nó được xuất bản lần đầu vào năm 1999, nhưng bạn đã nhầm. Đây là một cuốn kinh điển thực sự, và tất cả các phân tích, giải thích vẫn còn giá trị đối với bất kỳ lập trình viên nào.

Đây là một cuốn sách tuyệt vời để luyện tập cấu trúc dữ liệu, thiết kế thuật toán, tìm kiếm, sắp xếp, heap và các kỹ thuật điều chỉnh hiệu suất. Để bạn hình dung, hãy thử tự giải bài toán sau:

> “Làm thế nào để sắp xếp tới 10 triệu số nguyên dương duy nhất, tất cả đều nhỏ hơn 107, trong bộ nhớ 1.25MB? Nếu chỉ có 1MB (hoặc ít hơn) bộ nhớ thì sao? Nếu các số nguyên của chúng ta không duy nhất, nhưng số lần xuất hiện của mỗi giá trị bị giới hạn thì sao?”

Xin cúi mình trước Jon Bentley vì đã tạo ra một kiệt tác, nó hoàn toàn xứng đáng với cái tên “**Programming Pearls**” (Những Viên Ngọc Lập Trình).

Nhân tiện, nếu bạn đang chuẩn bị cho phỏng vấn code, tôi cũng khuyên bạn nên xem [khóa học 11 bài toán code thiết yếu](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=562016.1&type=10&tmpid=14538&RD\_PARM1=https%3A%2F%2Fwww.udemy.com%2F11-essential-coding-interview-questions%2F) trên Udemy của Y K, một kỹ sư cũ của Google, người cũng nổi tiếng với kênh Youtube @ CS DOJO. Phong cách giải thích của anh ấy rất đáng chú ý và khóa học này sẽ giúp bạn học tốt hơn những khái niệm khó này.

4. The GoF Design Patterns

Bao nhiêu trong số các bạn đã từng ngạc nhiên khi thấy đồng nghiệp cấp cao của mình giải quyết vấn đề một cách thanh lịch hơn bằng cách áp dụng các nguyên tắc thiết kế hướng đối tượng và mẫu thiết kế (design patterns)? Vâng, tôi đã như vậy.

Khi mới bắt đầu sự nghiệp, tôi không biết gì về mẫu thiết kế và cách chúng giúp viết code tốt hơn. Tôi đến từ nền tảng C, C++ và những gì tôi biết là viết code trong một số lớp hoặc cấu trúc và sử dụng `main` để kiểm tra. Chỉ khi bắt đầu học Java và API của nó, tôi mới biết về những thứ như `Collections.synchronizedList()`, được sử dụng để [đồng bộ hóa một List trong Java](http://java67.com/2014/12/how-to-synchronize-arraylist-in-java.html), và `BufferedReader`, được sử dụng để đọc dữ liệu ký tự, là ví dụ của mẫu thiết kế Decorator.

Tôi nhận ra sức mạnh thực sự của mẫu thiết kế khi, trong một buổi xem xét mã nguồn (code review), một đồng nghiệp cấp cao đã tái cấu trúc (re-factor) khối `if-else` đồ sộ của tôi thành mẫu thiết kế State.

Quay trở lại với cuốn sách, [Design Patterns](https://medium.com/javarevisited/7-best-online-courses-to-learn-object-oriented-design-pattern-in-java-749b6399af59), Elements of Reusable Object-Oriented Software là một cuốn kinh điển khác và là nguồn gốc ban đầu của 23 mẫu thiết kế được tập hợp bởi nhóm Tứ Quái (Gang of Four) nổi tiếng: Eric Gamma, Richard Helm, Ralph Johnson và John Vlissides.

Tôi đã đắn đo giữa việc giới thiệu [**Head First Design pattern**](https://www.amazon.com/Head-First-Design-Patterns-Object-Oriented-dp-149207800X/dp/149207800X/?tag=javamysqlanta-20) hay cuốn sách này vì thẳng thắn mà nói, tôi học được nhiều hơn từ Head First. Nhưng một lần nữa, các nhà phát triển chuyên nghiệp không thích phong cách của Head First, và là một cuốn kinh điển, cuốn sách này không thể bị bỏ qua.

Nhân tiện, nếu bạn thích series Head First, thì hãy đọc Head First Design Patterns, một viên ngọc quý khác.

Và, nếu bạn cần trợ giúp trong việc triển khai các mẫu thiết kế này và thích học qua video, thì [khóa học Design Pattern in Java](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fdesign-patterns-java%2F) trên Udemy là một người bạn đồng hành tốt. Cá nhân tôi thấy rằng sự kết hợp này rất tuyệt vời để học và hiểu các mẫu thiết kế kinh điển.

5. The Mythical Man-Month

Bạn nhất định phải đọc cuốn sách này nếu muốn hiểu về quy trình phát triển phần mềm, ước lượng dự án, quản lý dự án và những điều có thể đi sai trong phát triển phần mềm.

Tôi luôn tự hỏi tại sao việc xây dựng một tòa nhà cao tầng lại có thể được lên kế hoạch và ước tính tốt hơn so với việc xây dựng phần mềm. Tại sao tất cả các ngành công nghiệp khác lại có công cụ, quy trình và kiểm soát chất lượng tốt hơn thế giới phần mềm? Và đây là một trong những cuốn sách giúp bạn hiểu tại sao. Nếu bạn có nguyện vọng trở thành một quản lý dự án, đây là cuốn sách không thể bỏ qua.

6. Clean Code

Cuốn sách yêu thích của tôi! Tôi đã đọc nó gần 3 đến 4 lần và vẫn rất thích. Tôi luôn hối tiếc tại sao mình không có một bản sao của cuốn sách này khi mới bắt đầu sự nghiệp.

Uncle Bob đã làm một công việc tuyệt vời khi dạy về nghề thủ công phát triển phần mềm qua loạt sách của ông, và cuốn này đơn giản là tuyệt vời nhất.

Bạn sẽ học cách đặt tên biến, [cách viết các phương thức tốt hơn](http://javarevisited.blogspot.sg/2014/10/10-java-best-practices-to-name-variables-methods-classes-packages.html), cách cấu trúc code của bạn tốt hơn, những gì được coi là ‘mùi mã’ (code smell), tại sao giải quyết vấn đề theo cách này là sai và cách khác lại tốt hơn.

Bạn sẽ cảm thấy kết nối hơn nếu bạn là một nhà phát triển Java, nhưng tôi nghĩ bất kỳ lập trình viên hướng đối tượng nào, như lập trình viên C++, cũng sẽ hưởng lợi từ những lời khuyên chung về code, lập trình và nghệ thuật phát triển phần mềm.

Nếu bạn thích phong cách của Uncle Bob, bạn cũng có thể xem xét Clean Coder, phần thứ hai của cuốn sách này, sẽ giúp bạn trở thành một lập trình viên chuyên nghiệp tốt hơn.

Xin cho bạn biết rằng Maximillian Scwarzmuller, một giảng viên nổi tiếng trên Udemy, cũng có một khóa học về [**Clean Code**](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fwriting-clean-code%2F%3FcouponCode%3DCP130525). Tôi thấy nó khá tuyệt vời, là một người bạn đồng hành tốt cho cuốn sách này. Bạn có thể xem thử, nhân tiện các ví dụ được trình bày bằng ngôn ngữ lập trình JavaScript.

7. Refactoring 2nd Edition by Martin Fowler

Khi bạn đọc xong Clean Code và muốn tìm hiểu sâu hơn, đây là cuốn sách nên đọc. Đây là cuốn sách tuyệt vời mà một lập trình viên trung cấp có thể hiểu được; nó sẽ dạy cho bạn nghệ thuật tái cấu trúc (refactoring), đây là bước thứ hai để có code sạch.

Bước đầu tiên là thiết kế và viết kiểm thử. Trong cuốn sách này, bạn sẽ học từng bước cách làm cho code của mình tốt hơn. Nó cũng sẽ giúp bạn học [phát triển hướng kiểm thử (test-driven development – TDD)](https://hackernoon.com/5-courses-java-programmers-can-join-to-learn-junit-and-mockito-in-2019-h74t38r4), một chiến lược đã được chứng minh để viết code sạch, vì bạn không thể tái cấu trúc code nếu không có đủ các trường hợp kiểm thử. Để tận dụng tối đa cuốn sách này, đừng chỉ đọc mà hãy thực hành các ví dụ theo tốc độ của riêng bạn.

Cuốn sách này thiên về việc thực hành song song với đọc. Điều tuyệt vời là Martin giải thích rất rõ ràng lý do tại sao bạn thực hiện việc tái cấu trúc đó và nó cải thiện chất lượng code như thế nào.

Bạn có thể biết rằng hầu hết các IDE Java hiện đại như IntelliJ IDEA đều có khả năng tái cấu trúc mạnh mẽ, và bạn nên sử dụng chúng càng nhiều càng tốt để tái cấu trúc code của mình.

Nếu bạn cần một chút trợ giúp, tôi khuyên bạn nên xem [khóa học Refactoring Java with the IntelliJ IDEA](https://medium.com/javarevisited/7-best-courses-to-learn-intellij-idea-for-beginners-and-experienced-java-programmers-2e9aa9bb0c05) trên Udemy, khóa học này trình bày một số ví dụ thực hành và tái cấu trúc code Java trực tiếp.

8. The Design of Everyday Things

Nhiều bạn sẽ ngạc nhiên khi thấy cuốn sách này trong danh sách [những cuốn sách nên đọc cho lập trình viên](https://medium.com/javarevisited/10-books-java-developers-should-read-in-2020-e6222f25cc72). Một số bạn có thể tự hỏi một cuốn sách 27 năm tuổi (xuất bản lần đầu năm 1988 với tựa đề “The Psychology of Everyday Things”) đang làm gì ở đây.

Tôi giới thiệu cuốn sách này vì lập trình viên bản chất là những người tò mò và họ tham gia rất nhiều vào việc thiết kế sản phẩm. Cuốn sách này sẽ dạy cho bạn **cách thiết kế phục vụ như một cầu nối giao tiếp giữa sản phẩm và người dùng?**.

Bạn sẽ là một nhà thiết kế tốt hơn nhiều và hiểu rõ hơn về cách mọi thứ hoạt động sau khi đọc cuốn sách này. Nếu bạn cần thêm lý do, đây là một trong những cuốn bán chạy nhất của Donald A. Norman.

9. Effective Java

Tuyệt vời, một cuốn sách yêu thích khác của tôi và là “chén thánh” của các nhà phát triển Java. Việc hiểu API Java sẽ không trọn vẹn nếu không đọc cuốn sách này. Cuốn sách được viết bởi không ai khác ngoài Joshua Bloch, người đã viết rất nhiều code quan trọng trong JDK, như [Java Collection framework](https://javarevisited.blogspot.com/2020/04/top-5-courses-to-learn-java-collections-and-streams.html#axzz6XMFoMrEo) và nhiều lớp cốt lõi trong gói `java.lang`.

Hầu hết các nhà phát triển Java đều quen thuộc với cuốn sách này, và nếu ai chưa đọc, hãy đọc ngay; nó đơn giản là tuyệt vời. Bạn sẽ không chỉ học các thực hành tốt nhất mà còn hiểu lý do đằng sau việc API Java được thiết kế theo cách đó, vì bạn đang nhận thông tin trực tiếp từ lập trình viên đã tạo ra nó.

Tôi không nghĩ mình cần thuyết phục bất kỳ nhà phát triển Java nào đọc cuốn sách này, nhưng đối với các lập trình viên C++, Python và Ruby, bạn có thể học rất nhiều về thiết kế API, mẫu thiết kế và cách viết code sạch, mạnh mẽ từ cuốn sách này. Tôi đã nói về việc học hỏi từ kinh nghiệm của người khác, và Clean Code, Effective Java là những ví dụ điển hình cho triết lý đó.

10. Clean Coder

Đây được coi là phần thứ hai của [Clean Code](https://javarevisited.blogspot.com/2017/10/clean-code-by-uncle-bob-book-review.html), mặc dù không chính thức. Như tên gọi, phần đầu dạy bạn cách một lập trình viên chuyên nghiệp viết code, còn phần này chỉ cho bạn cách cư xử như một nhà phát triển chuyên nghiệp.

Đúng như slogan, đây là cuốn sách về quy tắc ứng xử cho các Lập trình viên Chuyên nghiệp. Tôi thích cuốn sách này vì phong cách kể chuyện của Uncle Bob, cảm giác như ông đang nói chuyện trực tiếp với bạn. Bạn sẽ cảm thấy mình là một phần của cuộc trò chuyện và học được cách một nhà phát triển chuyên nghiệp nên ứng xử trong các tình huống khác nhau.

Bạn sẽ học được cách nói CÓ và cách nói KHÔNG. Nghe có vẻ buồn cười? Nhưng không dễ dàng để nói hai từ đó khi làm việc thực tế. Bạn cần học nghệ thuật nói CÓ và nói KHÔNG sao cho có tác động mong muốn, và đây là bài học tốt nhất tôi học được từ cuốn sách này. Tôi chắc chắn bạn sẽ không hối tiếc khi đọc [cuốn sách](https://medium.com/javarevisited/6-coding-books-every-programmers-and-software-developers-should-read-620124886c8f) này.

11. Software Engineering at Google: Lessons Learned from Programming Over Time

Cuốn sách này là một hướng dẫn toàn diện cung cấp những hiểu biết có giá trị về thế giới kỹ thuật phần mềm (software engineering). Với rating ấn tượng 4.6/5 từ 686 đánh giá, cuốn sách đi sâu vào sự khác biệt quan trọng giữa kỹ năng lập trình đơn thuần và kiến thức rộng hơn cần thiết để xây dựng và duy trì các codebase bền vững và khỏe mạnh.

Dựa trên kinh nghiệm sâu rộng tại Google, các tác giả cung cấp một cái nhìn thẳng thắn và sâu sắc về cách các chuyên gia hàng đầu quản lý và phát triển phần mềm trong suốt vòng đời của nó. Cuốn sách tập trung vào văn hóa kỹ thuật, quy trình và công cụ đặc trưng của Google, làm sáng tỏ cách các yếu tố này đóng góp vào hiệu quả hoạt động của một tổ chức kỹ thuật.

Bạn sẽ hiểu sâu sắc hơn về ba nguyên tắc cơ bản: tác động của thời gian lên tính bền vững của phần mềm, ảnh hưởng của quy mô lên các thực hành phần mềm, và các sự đánh đổi vốn có trong các quyết định thiết kế và phát triển.

Đây là một tài nguyên vô giá cho các kỹ sư phần mềm muốn nâng cao kỹ năng và điều hướng sự phức tạp của việc phát triển codebase trong một môi trường năng động và đòi hỏi khắt khe.

12. Coders at Work

Tôi cảm thấy may mắn khi một cuốn sách như thế này có mặt trong thời đại của mình. Coders at Work dựa trên gần 8 giờ phỏng vấn với mười lăm lập trình viên và nhà khoa học máy tính vĩ đại nhất mọi thời đại.

Bạn sẽ học hỏi từ kinh nghiệm của họ thông qua các cuộc phỏng vấn này về cách các lập trình viên giỏi học lập trình, cách họ rèn luyện nghề của mình và suy nghĩ của họ về tương lai của [lập trình](https://javarevisited.blogspot.com/2020/05/top-10-udemy-courses-to-learn-python-programming.html).

Bạn sẽ cảm thấy hứng thú chỉ bằng cách đọc mục lục và biết tên của các lập trình viên được phỏng vấn, bao gồm các vĩ nhân như Joshua Bloch, Peter Norvig, Donald Knuth, Ken Thompson và Jamie Zawinski.

Tôi thực sự khuyên mọi lập trình viên nên có một bản sao của cuốn sách này, hoặc ít nhất là phiên bản PDF trên iPad hoặc Kindle. Cuốn sách này không chỉ thú vị mà còn truyền cảm hứng và mở rộng tầm nhìn, suy nghĩ và kinh nghiệm của bạn.

Lời Kết

Đó là danh sách 12 cuốn sách mà tôi tin rằng mọi lập trình viên nên đọc. Bạn không nhất thiết lúc nào cũng cần những cuốn sách kỹ thuật đầy code để trở thành lập trình viên giỏi hơn. Tôi đồng ý rằng Lập trình (Programming) và Mã hóa (Coding) là hai khía cạnh thiết yếu của công việc một lập trình viên, nhưng còn nhiều điều khác nữa.

Thực tế, bạn cần những cuốn sách chia sẻ kinh nghiệm thực tế từ các lập trình viên gạo cội của những thập kỷ trước. Những cuốn sách này truyền cảm hứng và tiếp thêm năng lượng cho bạn. Chúng không dành riêng cho chuyên gia ngôn ngữ lập trình cụ thể nào như nhà phát triển Java hay C++.

Thay vào đó, chúng dành cho tất cả lập trình viên và kỹ sư phần mềm. Trước khi học [Java](https://medium.com/javarevisited/10-free-courses-to-learn-java-in-2019-22d1f33a3915), C#, [JavaScript](https://javarevisited.blogspot.com/2018/06/top-10-courses-to-learn-javascript-in.html), hay [Python](https://dev.to/javinpaul/7-python-online-courses-for-beginners-and-intermediate-programmers-1h4k), điều quan trọng là học cách lập trình. Ngôn ngữ chỉ là công cụ, còn nghệ thuật lập trình nằm trong những cuốn sách này. Trong thế giới bận rộn ngày nay, tôi thực sự khuyên bạn nên có phiên bản Ebook, PDF trên iPad, Kindle hoặc điện thoại thông minh của mình và đọc chúng bất cứ khi nào có thời gian rảnh. Bạn sẽ cảm thấy được ‘sạc’ lại năng lượng.

Chỉ mục