Sách hay nhất dành cho lập trình viên không nên bỏ qua 2023

Quay lại khoảng thời gian cách đây 8-10 năm, lúc đó thế giới công nghệ không có nhiều lựa chọn, loanh quanh thì cũng .NET và Java, PHP, … Không như bây giờ với hàng hàng sa số các công nghệ mới, framework, library mới ra đời khiến cho đa số các developer phải đổ xô để bắt kịp xu hướng.

Việc trau dồi kỹ năng của thế hệ developer trước đó cũng khác biệt. Họ có rất ít lưỡi dao trong tay nhưng lưỡi nào cũng sắc bén vô cùng, họ chăm chút từng dòng code, apply design principle, design pattern một cách kỹ lưỡng. Nhìn các developer hiện nay, theo những gì mình quan sát được từ các bạn developer trẻ ngày nay, họ quá ít quan tâm đến chất lượng code mà chỉ quan tâm đến việc đến số lượng công nghệ được apply, họ lại đi theo một xu hướng khác, đó là sắm cho mình những con dao của quân đội Thụy Sĩ, tuy số lượng thì nhiều nhưng thiếu đi độ bén.

Dưới đây là danh sách các cuốn sách hay mà mình khuyên các bạn developer nên đọc qua một lần, thứ tự sách được liệt kê sẽ được nâng dần cấp độ theo quá trình phát triển của bản thân.

Hãy cùng Tax Plus khám phá những cuốn sách hay dành cho Developer.

CLEAN CODE

sach cho developer

Clean Code của tác giả Bob Martin là cuốn sách kinh điển mà tất cả các developer của mình cần đọc ĐẦU TIÊN để rèn luyện tay nghề, code cần phải sạch và đúng ngay từ thuở ban đầu, developer cần quan tâm đến từng dòng code mình viết ra thì mới tạo ra được niềm vui từ sự hoàn hảo. Nếu trong các năm đầu các bạn không thể viết ra các đoạn code “sạch sẽ” thì khả năng cao điều đó sẽ rất khó chỉnh về sau.

Xem thêm:  Quy Định Về Hợp Đồng Lao Động Thời Vụ Và Mẫu Hợp Đồng Lao Động Thời Vụ 2018

Các ví dụ trong sách được viết bằng Java, nhưng không khó để các bạn có thể tìm các phiên bản tương tự đâu đó trên Github.

https://github.com/ryanmcdermott/clean-code-javascript
https://github.com/labs42io/clean-code-typescript

DESIGN PATTERN

sach cho developer 1

Có 1 điều dễ nhận thấy là ngày càng ít người quan tâm đến design pattern hay nói chính xác hơn là Object Oriented Design Pattern. Nếu bạn làm việc với các ngôn ngữ Object Oriented mà không biết Design Pattern thì hãy trang bị ngay. Hãy đọc cuốn Head First Design Patterns, bắt đầu với Strategy Pattern, bạn sẽ hiểu khi có design pattern, life is easier.

Tips: ngoài design pattern, các bạn cũng nên tìm đọc về các Design Principle ví dụ như SOLID, KISS, YANGI, …

Còn với các ngôn ngữ khác? Trước khi bắt đầu học một framework, ngôn ngữ nào mới, mình thường tìm kiếm các design pattern của nó. Ví dụ https://reactpatterns.com/ tập hợp rất nhiều coding pattern, practice giúp mình xử lý các vấn đề lúc coding một cách chuẩn chỉnh hơn.

REFACTORING TO PATTERNS

sach cho developer 2

Lại một cuốn sách hay nữa, Refactoring to Patterns sẽ giúp mình “chỉnh lại tay nghề” bằng cách chuyển những đoạn code không theo pattern vào nề nếp

Bonus: https://github.com/sunnypatel165/31DaysOfRefactoringInJava

CODE SMELL

sach cho developer 3

Những đoạn code xấu thường bốc mùi. Hãy nhận biết mùi của code xấu và tìm cách làm cho nó thơm tho hơn

Các bạn có thể đọc phiên bản online ở đây: https://refactoring.guru/refactoring/smells

Hoặc mua các tài liệu premium để tìm hiểu sâu hơn: https://refactoring.guru/store

LẬP TRÌNH VÀ CUỘC SỐNG

sach cho developer 4

“Để lập trình hiệu quả, viết code thôi là chưa đủ. Con người mới là nhân tố quan trọng”. Đây là lời trích từ trang bìa của cuốn sách. Mài dũa ngón tay của bạn, và cũng phải mài dũa cả tâm trí của mình.

Xem thêm:  Sức mua của đồng tiền là gì? - Định nghĩa, ví dụ và Yếu tố nào ảnh hưởng tới sức mua của đồng tiền?

Cuốn sách này được anh Hồ Sỹ Hùng tuyển tập và dịch từ trang https://blog.codinghorror.com/

Hãy đọc để xem các lập trình viên khác họ nghĩ gì, và tìm kiếm lời khuyên cho chính mình.

Một số cuốn sách hay của tác giả Việt Nam:

  • Code dạo ký sự
  • Agile Y

CODE COMPLETE VÀ PRAGMATIC PROGRAMMER

sach cho developer 5

sach cho developer 6

Sách sẽ không dạy bạn lập trình, nhưng sẽ truyền đạt cảm hứng và dạy bạn một số kỹ năng mềm trong nghề lập trình. Tương tự như cuốn Lập trình và cuộc sống ở trên

Trên đây là những cuốn sách Developer nên đọc và nó giành cho cả những bạn mới bước vào nghề. Ở phần 2 sẽ là những sách dành cho các bạn senior và tech lead.

REFACTORING: IMPROVING THE DESIGN OF EXISTING CODE

sach cho developer 7

Các bạn senior, technical lead nên đọc, để có thể review code của các bạn junior và đưa ra lời khuyên. Làm sao để biến những đoạn code không theo pattern để sử dụng các pattern thích hợp. Khi đó bạn sẽ thấy chất lượng và cấu trúc mã nguồn sẽ trở nên dễ đoán và dễ bảo trì hơn.

WORKING EFFECTIVELY WITH LEGACY CODE

sach cho developer 8

Code đẹp ngay từ đầu là một chuyện tốt, tuy nhiên đa số các bạn sẽ được tham gia vào dự án đã và đang chạy. Codebase có thể lên tới hàng chục năm tuổi với hằng hà technical debt. Working Effectively with Legacy Code cung cấp nhiều hướng dẫn để các bạn có thể cải thiện chất lượng của mã nguồn “legacy”.

Xem thêm:  Cobol Là Gì? Ngôn Ngữ Lập Trình Cobol mới nhất

97 THINGS EVERY PROGRAMMER SHOULD KNOW

Tập hợp các lời khuyên hữu ích cho tất cả các bạn lập trình viên.

sach cho developer 9

TALKING WITH TECH LEADS: FROM NOVICES TO PRACTITIONERS

Một cuốn sách không thể không đọc để có thể trở thành 1 tech lead thực thụ. Ngoài công việc coding, các bạn tech lead sẽ bắt đầu được giao nhiệm vụ quản lý một nhóm nhỏ hoặc đưa ra các giải pháp thiết kế, đề xuất về mặt kỹ thuật nhiều hơn.

sach cho developer 10

DOMAIN-DRIVEN DESIGN: TACKLING COMPLEXITY IN THE HEART OF SOFTWARE

sach cho developer 11

Một cuốn sách để giúp hình thành các suy nghĩ về cách thiết kế các hệ thống phức tạp. Có rất nhiều phương pháp thiết kế “driven” ví dụ như Event Driven, Domain Driven, Data Driven, nhưng mình thích cách tiếp cận từ Domain (nghiệp vụ), phân tách nghiệp vụ thành các sub-module, sub-system sẽ giúp bạn có một cái nhìn tổng thể nhất về các thành phần trong hệ thống mà mình đang xây dựng

SYSTEM DESIGN INTERVIEW – AN INSIDER’S GUIDE

sach cho developer 12

Một bước tạo đà nữa để giúp các bạn làm quen với các thuật ngữ và kỹ thuật thường dùng trong thiết kế hệ thống, đặc biệt là các hệ thống large-scale, distributed với rất nhiều ví dụ từ các hệ thống thực tế (được đơn giản hóa)

Bonus 3: https://github.com/donnemartin/system-design-primer Tác giả của page này cũng đã đưa ra được 1 mô hình kiến trúc điển hình cho các hệ thống mà chúng ta sẽ build.