Bạn đang theo đuổi lĩnh vực lập trình hoặc là một lập trình viên chuyên nghiệp? Đôi khi, bạn muốn nâng cao kỹ năng lập trình nhưng lại không biết bắt đầu từ đâu? Không biết phải đọc gì, học gì. Bài viết này sẽ cung cấp cho bạn bộ tài liệu học lập trình mà bạn không thể bỏ qua. 10 cuốn sách được giới thiệu dưới đây có thể sẽ giúp bạn tạo nên sự khác biệt.

1/ Tài liệu học lập trình – “Clean Code” của Uncle Bob

Tài liệu học lập trình

Đây là một trong những cuốn sách hay nhất tôi đọc trong cuộc đời lập trình viên của mình. Sau khi bạn đọc cuốn sách này, bạn sẽ ý thức hơn về nhu cầu viết mã sạch. Dám chắc rằng, bạn sẽ không phải hối tiếc.

Từ cách đặt tên biến thế nào cho rõ ràng đến cách để thiết kế được hệ thống tốt, cuốn sách này bao gồm tất cả các chủ đề bạn cần để cải thiện mã của bạn một cách đáng kể.

2/  Tài liệu học lập trình – “Clean architecture” của Uncle Bob

Tài liệu học lập trình

Giống như cuốn sách trước, đây là cuốn sách mà các lập trình viên đều nên đọc. 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. Nhờ đó, các sản phẩm do bạn tạo ra sẽ có được khả năng bảo trì và khả năng mở rộng tốt về sau.

3/ Tài liệu học lập trình – “Grokking Algorithms” 

Tài liệu học lập trình

Cuốn sách này là một hướng dẫn cực kì dễ hiểu về các thuật toán phổ biến trong khoa học máy tính. Nội dung của cuốn sách khá dễ dàng để đọc ngay cả với những lập trình viên chưa hiểu được các thuật toán này hoạt động như thế nào.

4/ Tài liệu học lập trình – Head First Design Patterns: Một hướng dẫn “thân thiện”

Tài liệu học lập trình

Các mẫu thiết kế phần mềm là một công cụ hữu ích mà bạn nhất định phải có. Dưới đây là những mẫu thiết kế tuân theo các nguyên tắc hướng đối tượng SOLID:

Single Responsibility Principle (Nguyên tắc trách nhiệm duy nhất). Một lớp chỉ nên có một lý do để thay đổi.

Open/Closed Principle (Nguyên tắc mở /đóng). Các thực thể phần mềm nên mở để mở rộng, đóng để sửa đổi.

Liskov Substitution Principle (Nguyên tắc thay thế Liskov ). Các kiểu phụ phải được thay thế cho các loại cơ sở của chúng.

Interface Segregation Principle (Nguyên tắc phân đoạn giao diện). Khách hàng không nên phụ thuộc vào các hàm mà họ không cần đến (giữ cho nó ngắn gọn và đơn giản).

Dependency Inversion Principle (Nguyên tắc đảo ngược phụ thuộc). Mô-đun cấp cao không nên phụ thuộc vào các mô-đun cấp thấp.

5/ Tài liệu học lập trình – “Test Driven Development”

Tài liệu học lập trình

“Test driven development” 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. Xác định trước các quy tắc logic nghiệp vụ, viết các mã kiểm thử, viết mã để vượt qua các bài kiểm thử, tái cấu trúc để có mã nguồn tốt hơn. Khi mới tiếp xúc lần đầu tiên với TDD, bạn sẽ có cảm giác là mình đang phải làm nhiều việc hơn mức cần thiết. Nhưng một khi chấp nhận nó, bạn sẽ thấy rằng bạn đang viết ít mã hơn và chất lượng hơn. Bạn sẽ tự tin thay đổi mã của mình mà không lo lắng mọi thứ sẽ bị thất bại.

6/ Tài liệu học lập trình – “Soft Skills”

Tài liệu học lập trình

Đây là hướng dẫn sử dụng dành cho các nhà phát triển phần mềm. Cuốn sách này sẽ giúp bạn đạt được sự cân bằng giữa kỹ thuật và kỹ năng mềm. Kỹ năng mềm là một phần quan trọng để đạt được thành công. Bởi vì để làm điều gì đó tuyệt vời bạn phải tương tác với người khác.

7/ Tài liệu học lập trình – “Cracking the Coding Interview”

Tài liệu học lập trình

Cuốn sách bao gồm 189 câu hỏi và giải pháp về lập trình. “Cracking the Coding Interview” được thiết kế để giúp bạn chuẩn bị cho các cuộc phỏng vấn lập trình. Mỗi lập trình viên là một người đi giải quyết các vấn đề. Và cuốn sách này nhắc đến chính xác những vấn đề mà bạn cần giải quyết.

8/ Tài liệu học lập trình – “Seven Languages in Seven Weeks”

Tài liệu học lập trình

Một hướng dẫn thực dụng để học ngôn ngữ lập trình (lập trình thực dụng). Cuốn sách này giúp bạn nhận ra lợi ích của việc biết một số ngôn ngữ khác nhau. Đọc nó, bạn sẽ mở rộng cách suy nghĩ về giải quyết vấn đề. Bạn sẽ học được Clojure, Haskell, Io, Prolog, Scala, Erlang và Ruby.

9/ Tài liệu học lập trình – “Programming Elixir”

Tài liệu học lập trình

Là một lập trình viên, chúng ta thường nghĩ về giải quyết vấn đề thông qua các ngôn ngữ lập trình mà mình sử dụng. Học Elixir sẽ giúp bạn bước vào thế giới của các ngôn ngữ lập trình hàm và sẽ định hình cách bạn suy nghĩ. Điều đó giúp bạn 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 tôi vẫn đề cập đến, bởi vì nó không chỉ là một ngôn ngữ lập trình hàm thuần tuý mà còn là một mô hình hoàn toàn khác.

10/ Tài liệu học lập trình – Go Programming Blueprints  (Tái bản lần 2)

Tài liệu học lập trình

Cuốn sách này là lựa chọn tuyệt vời để làm chủ ngôn ngữ lập trình Go. Công nghệ mới này nổi tiếng nhờ các nguyên tắc xử lý đồng thời đơn giản nhưng rất mạnh mẽ, cùng với đó là hiệu suất rất cao. Đây là một cuốn sách của một ngôn ngữ cụ thể, nhưng tôi vẫn đề cập bởi vì ngôn ngữ lập trình Go còn có rất nhiều thứ khác nữa, chẳng hạn như giao diện ngầm định (implicit interface) và mô hình đồng thời Quy trình Giao tiếp Tuần tự. Giống như tôi nói, các ngôn ngữ bạn biết định hình cách bạn suy nghĩ.

Bạn có thể tham khảo thêm các tài liệu khác ở đây:

Tài liệu học lập trình web với PHP cho người mới bắt đầu (Phần 1)

Tài liệu học lập trình web với PHP cho người mới bắt đầu (Phần 2)


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.