Bài viết được sự cho phép của tác giả Edward Thien Hoang
Phần trước mình đã điểm qua 1 số mặt sách dành cho các bạn developer mới vào nghề nhằm khuyến khích niềm đam mê và kỹ năng code sạch từ sớm. Phần này mình sẽ điểm qua các cuốn sách mà các bạn senior và tech lead nên đọc để nâng cao kỹ năng thiết kế và quản lý các team ở quy mô nhỏ.
REFACTORING: IMPROVING THE DESIGN OF EXISTING CODE
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.
Review sách Refactoring to Patterns
WORKING EFFECTIVELY WITH LEGACY CODE
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”.
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.
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.
Review sách Talking with Tech Leads
DOMAIN-DRIVEN DESIGN: TACKLING COMPLEXITY IN THE HEART OF SOFTWARE
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
Tản mạn về Domain Driven Design
SYSTEM DESIGN INTERVIEW – AN INSIDER’S GUIDE
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)
Series về System Design
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.
Bài viết gốc được đăng tải tại edwardthienhoang.wordpress.com
Xem thêm:
- Team Leader là gì? Những kỹ năng nào mà một Team Leader cần có?
- Bí Kíp Pass Phỏng Vấn Coding Amazon, Apple, Facebook, Microsoft Mà Không Cần Leet Code Quá Nhiều
- Mẫu CV IT tiếng Anh hấp dẫn nhà tuyển dụng
Đừng bỏ lỡ tin tuyển dụng IT mọi cấp độ trên TopDev