The Pragmatic Programmer — Từ lính mới đến bậc thầy
David Thomas & Andrew Hunt
David Thomas và Andrew Hunt chia sẻ triết lý và kỹ thuật thực tiễn giúp developer trở nên hiệu quả hơn trong sự nghiệp.
Table of Contents
Cuốn sách mỗi developer nên đọc ít nhất một lần
Xuất bản lần đầu năm 1999 và tái bản năm 2019, “The Pragmatic Programmer” vẫn là một trong những cuốn sách được recommend nhiều nhất trong ngành. Không giống Clean Code tập trung vào cách viết code, cuốn này bàn về cách tư duy như một developer giỏi.
Những nguyên tắc cốt lõi
Don’t Repeat Yourself (DRY)
Không chỉ về code duplication. DRY áp dụng cho cả knowledge, documentation, và process. Khi một thông tin tồn tại ở nhiều nơi, sớm muộn chúng sẽ mâu thuẫn.
// DRY không chỉ là tránh copy-paste
// Nó là đảm bảo mỗi piece of knowledge
// chỉ có MỘT nguồn sự thật duy nhất
// Bad: validation logic ở cả frontend và backend
// nhưng mỗi nơi define rule khác nhau
// Good: define validation schema một lần,
// share giữa frontend và backend
const userSchema = z.object({
email: z.string().email(),
age: z.number().min(18),
});
Tracer Bullets
Thay vì design hết rồi mới code, hãy bắn một “viên đạn xuyên suốt” — build một feature end-to-end đơn giản nhất có thể, từ UI đến database. Điều này giúp:
- Phát hiện vấn đề tích hợp sớm
- Có thứ demo được ngay
- Team thấy tiến độ rõ ràng
Good Enough Software
Hoàn hảo là kẻ thù của hoàn thành. Ship sản phẩm đủ tốt, lấy feedback, rồi cải thiện. Đây không phải lý do để viết code cẩu thả — mà là biết khi nào nên dừng polish.
Những tip thực tế
Broken Window Theory
Một cửa sổ vỡ không sửa sẽ dẫn đến cả tòa nhà bị phá. Trong codebase cũng vậy — một đoạn code xấu không fix sẽ lan ra khắp project. Khi thấy “broken window”, fix ngay hoặc ít nhất để TODO rõ ràng.
Programming by Coincidence
Đừng bao giờ code kiểu “nó chạy được rồi thì thôi” mà không hiểu tại sao. Code chạy tình cờ sẽ fail tình cờ — thường là lúc production.
Rubber Duck Debugging
Giải thích vấn đề cho một con vịt cao su (hoặc đồng nghiệp). Quá trình articulate vấn đề thường giúp bạn tự tìm ra lời giải.
Kết luận
“The Pragmatic Programmer” dạy bạn cách nghĩ, không chỉ cách code. Mỗi lần đọc lại, tùy vào giai đoạn sự nghiệp, bạn sẽ rút ra bài học khác nhau. Đánh giá 5/5, không phải vì nó hoàn hảo, mà vì impact của nó lên cách mình làm việc.