10 quyển sách lập trình bạn nên đọc dành cho lập trình viên
Ắt hẳn ai cũng muốn đạt đến những level cao hơn trong lập trình nhưng lại không biết bắt đầu như thế nào. Sách là một trong những “công cụ” đơn giản mà ai cũng có thể dễ dàng tiếp cận để học và tiếp thu những kiến thức mới liên quan đến lập trình hay bất kỳ một lĩnh vực nào ...
Ắt hẳn ai cũng muốn đạt đến những level cao hơn trong lập trình nhưng lại không biết bắt đầu như thế nào. Sách là một trong những “công cụ” đơn giản mà ai cũng có thể dễ dàng tiếp cận để học và tiếp thu những kiến thức mới liên quan đến lập trình hay bất kỳ một lĩnh vực nào mà chúng ta cần. Ở bài viết này tôi sẽ giới thiệu với các bạn một vài cuốn sách lập trình được cho là nên đọc đối với các lập trình viên.
Clean code from Uncle Bob
Đây là một trong những những cuốn sách mà tôi đã thấy được rất nhiều review tích cực về cuốn sách này. Sau khi đọc xong quyển sách này bạn sẽ có “ý thức” hơn trong việc viết code clean. Từ việc đặt tên biến cho đến việc test code , cuốn sách này bao gồm tất cả các chủ đề mà bạn cần để cải thiện cách viết code của mình một cách đáng kể.
Clean architecture from Uncle Bob
Cuốn sách này giống như cuốn trước, phù hợp với tất cả các lập trình viên. Nó sẽ cải thiện đáng kể cách bạn cấu trúc và thiết kế phần mềm của bạn, để đạt được mức độ bảo trì và tính chính xác cao trong sản phẩm của bạn.
Grokking Algorithms
Cuốn sách này là một cuốn sách hướng dẫn phi thường và dễ “tiêu hóa” cho các thuật toán được sử dụng nhiều nhất trong khoa học máy tính. Rất dễ đọc đến nỗi ngay cả những người không lập trình cũng có thể hiểu thuật toán này hoạt động như thế nào.
Head First Design Patterns: A Brain-Friendly Guide
Các mẫu thiết kế phần mềm là một công cụ tiện dụng cần có trong hộp của bạn. Đây là các mẫu thiết kế phần mềm tuân thủ các nguyên tắc hướng đối tượng SOLID:
- Single Responsibility Principle: Một lớp chỉ nên có một lý do để thay đổi.
- Open/Closed Principle: Các thực thể phần mềm nên được mở rộng, nhưng đóng để sửa đổi.
- Liskov Substitution Principle: các kiểu con phải được thay thế cho các loại cơ sở của chúng.
- Interface Segregation Principle: Khách hàng không nên phụ thuộc vào các phương pháp mà họ không sử dụng (giữ cho nó ngắn gọn và đơn giản).
- Dependency Inversion Principle: Mô-đun cấp cao không nên phụ thuộc vào mô hình cấp thấp
Test Driven Development: By Example
Phát triển theo hướng kiểm tra cho phép bạn lập trình phần mềm của mình theo các bước tăng dần, trước tiên xác định các quy tắc logic nghiệp vụ thử nghiệm, xem chúng thất bại và tạo ra số lượng mã tối thiểu để xem chúng vượt qua. Thoạt nhìn có vẻ như bạn đang làm nhiều việc hơn bạn nên, nhưng một khi bạn chấp nhận nó, bạn sẽ thấy rằng bạn làm ít mã hơn, với chất lượng cao hơn và bạn sẽ tự tin thay đổi mã của mình mà không lo mọi thứ sẽ sụp đổ.
Soft Skills: The software developer’s life manual
Cuốn sách này sẽ giúp bạn đạt được sự cân bằng hợp lý giữa kỹ năng kỹ thuật và kỹ năng mềm của bạn. Kỹ năng mềm là một phần quan trọng để đạt được thành công, bởi vì để làm được điều gì đó tuyệt vời, bạn phải tương tác với người khác.
Cracking the Coding Interview: 189 Programming Questions and Solutions
Cuốn sách này được thiết kế để chuẩn bị cho bạn để phỏng vấn mã hóa. Mỗi lập trình viên là một người giải quyết vấn đề và cuốn sách này đào tạo chính xác vấn đề của bạn.
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
Cuốn sách này là tốt cho bạn để nhận ra lợi ích của việc biết một số ngôn ngữ. Đọc cuốn sách này sẽ giúp bạn mở rộng cách bạn suy nghĩ về việc giải quyết vấn đề. Bạn sẽ học Clojure, Haskell, Io, Prolog, Scala, Erlang và Ruby.
Programming Elixir
Là một lập trình viên, chúng tôi thường nghĩ về việc giải quyết vấn đề thông qua các ngôn ngữ mà chúng tôi lập trình. Học elixir sẽ khiến bạn bước vào thế giới của các ngôn ngữ lập trình chức năng và sẽ định hình cách bạn suy nghĩ, giúp việc giải quyết vấn đề dễ dàng hơn nhiều. Đây là một cuốn sách của một ngôn ngữ cụ thể, nhưng dù sao tôi cũng khuyên dùng vì elixir nó là chương trình chức năng thuần túy, và do đó là một mô hình khác.
Go Programming Blueprints — Second Edition
Theo tôi, cuốn sách này là cuốn sách hay nhất để thành thạo ngôn ngữ lập trình. Công nghệ gần đây mà nó được biết đến bởi các nguyên thủy đồng thời đơn giản nhưng mạnh mẽ và hiệu suất cao. Đây là một cuốn sách của một ngôn ngữ cụ thể, nhưng tôi khuyên bạn vì ngôn ngữ lập trình đi có rất nhiều thứ khác nhau như giao diện ngầm và mô hình đồng thời Giao tiếp quy trình liên tục. Giống như tôi nói các ngôn ngữ bạn biết hình thành cách bạn nghĩ.