Backend developer là những người vô cùng quan trọng trong việc xây dựng và hoàn thiện hệ thống phần mềm. Việc lựa chọn công nghệ, cũng như kĩ thuật thiết kế đòi hỏi họ có một kiến thức nền tảng vững chắc và tầm nhìn xa trông rộng để có khả năng giải quyết các vấn đề mà hệ thống gặp phải.
Bài viết này tổng hợp Top 5 quyển sách hay dành cho Backend Developer. Đây là những quyển sách được đánh giá rất cao về chất lượng nội dung và thường được “truyền tai” nhau đọc trong giới phần mềm.
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Designing Data-Intensive Applications được viết bởi Martin Kleppmann, anh là một nhà nghiên cứu, nhà phát triển phần mềm, diễn giả đa năng…
Năm 2017, Martin xuất bản cuốn sách cho O’Reilly. Quyển sách bao gồm kiến trúc của nhiều loại cơ sở dữ liệu và hệ thống xử lý dữ liệu phân tán, đồng thời là một trong những tựa sách bán chạy nhất trong toàn bộ danh mục của nhà xuất bản. Đây còn là quyển sách gối đầu huyền thoại của các backend developer Mỹ.
Dữ liệu luôn đặt ra nhiều thách thức khi thiết kế hệ thống. Các vấn đề khó khăn cần được tìm ra, chẳng hạn như khả năng mở rộng, tính nhất quán, độ tin cậy, hiệu quả và khả năng bảo trì. Martin Kleppmann giúp bạn xem xét ưu và nhược điểm của các công nghệ khác nhau để xử lý và lưu trữ dữ liệu.
Phần mềm có thể liên tục thay đổi, nhưng các nguyên tắc cơ bản khi thiết kế hệ thống thì vẫn giữ nguyên. Là một kỹ sư, chúng ta cần nắm vững được các nguyên tắc này để có khả năng thiết kế hệ thống tốt nhất có thể.
Quyển sách phù hợp với tất cả Software Engineer, Software architects, Technical managers ở mọi level. Bất cứ ai có sự quan tâm hay đóng vai trò trong việc thiết kế hệ thống đều nên đọc quyển sách này.
Trên Amazon và các trang thương mại điện tử khác, sách được đánh giá rất tốt về nội dung nên bạn hoàn toàn có thể yên tâm nhé.
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Đã quá nổi tiếng với series “Clean Code”, mỗi quyển sách mà tác giả huyền thoại Robert C. Martin hay còn được gọi với cái tên Uncle Bob viết ra đều được cộng đồng software engineer đón nhận nồng nhiệt vì nội dung vô cùng chất lượng, cũng như kiến thức đồ sộ có trong quyển sách.
Nếu là một backend developer thì chắc chắn bạn không thể bỏ qua thương hiệu sách này.
Clean Architecture: A Craftsman’s Guide to Software Structure and Design giúp cho những kỹ sư nắm vững các nguyên tắc thiết kế phần mềm có thể giải quyết chức năng, phân tách thành phần trong hệ thống và quản lý dữ liệu một cách hiệu quả nhất.
Sau rất nhiều lần thất bại vì thiếu sót kinh nghiệm. Uncle Bob đã nhận ra khi thiết kế hệ thống, có những nguyên tắc không được phá vỡ. Những quy tắc này vượt thời gian, không thay đổi – và tổng hợp tất cả chúng lại trong cuốn sách này.
Clean Architecture là tài liệu rất cần thiết cho mọi software architect, system analyst, system designer, software manager và bất cứ ai muốn tìm hiểu, thiết kế được hệ thống “chuẩn” cho riêng mình.
Design Patterns: Elements of Reusable Object-Oriented Software
Design Patterns là một quyển sách “cổ” kinh điển trong kho tàng tài liệu về lập trình hướng đối tượng. Sách được viết bởi 4 tác giả. Điều này cho thấy mức độ học thuật chuyên sâu được gửi gắm trọn vẹn trong một quyển sách.
Có lẽ bất cứ backend developer nào cũng sẽ nghĩ đến quyển sách này khi tìm tài liệu về design patterns.
Quyển sách cung cấp các giải pháp vượt thời gian cho các vấn đề phổ biến khi thiết kế phần mềm. Sách mô tả các pattern để quản lý việc tạo đối tượng. Kết hợp các đối tượng thành các cấu trúc lớn hơn và điều phối luồng điều khiển giữa các đối tượng. Cuốn sách cung cấp nhiều ví dụ, trong đó sử dụng composition thay vì inheritance (kế thừa) có thể cải thiện khả năng sử dụng lại và tính linh hoạt của code.
Đây là quyển sách nền tảng căn bản nhất nhưng cần có kinh nghiệm để có thể lĩnh hội nội dung mà các tác giả đã đúc kết được. Mặc dù sách đã được viết rất lâu nhưng có thể nói kiến thức trong sách có giá trị trường tồn. Nhất là khi nó được khai sinh từ những quốc gia đi đầu về công nghệ trên thế giới.
Head First Design Patterns
Head First Design Patterns là quyển sách được viết bởi 2 tác giả Eric Freeman và Elisabeth Robson. Cả hai đều có nhiều năm kinh nghiệm trong lĩnh vực phát triển phần mềm. Một trong số họ là cựu CTO của Walt Disney, tiến sĩ Khoa học Máy tính.
Nếu trước đó bạn đã biết đến dòng sách Head First thì sẽ biết đến đặc điểm chung của series sách này. Đó chính là sử dụng hình ảnh minh hoạ trực quan ở mỗi nội dung trong sách. Điều này ngoài giúp người đọc hình dung rõ ràng hơn, hình ảnh có thể giúp ghi nhớ nội dung trong sách tốt hơn rất nhiều.
Head First Design Patterns cung cấp cho bạn thông tin về các mẫu design pattern. Phân tích những ưu, nhược điểm của chúng. Tác giả chỉ ra khi nào nên và không nên sử dụng pattern. Dựa trên các nguyên tắc thiết kế OOP hướng đối tượng.
Nếu bạn đã có chút kinh nghiệm lập trình và muốn nâng cao kỹ năng của mình bằng việc học cách sử dụng các design pattern theo tiêu chuẩn cụ thể. Thì quyển sách này là một lựa chọn rất phù hợp.
Xem thêm: Học Công Nghệ Thông Tin làm nghề gì?
System Design Interview
System Design Interview không chỉ là nơi tổng hợp các câu hỏi phỏng vấn liên quan đến thiết kế hệ thống. Đặc biệt giành cho các backend developer. Sách được giải thích chi tiết bởi tác giả Alex Xu. Một người có nhiều năm kinh nghiệm trong lĩnh vực phát triển phần mềm ở các công ty lớn như Twitter, Apple and Zynga.
Quyển sách cung cấp những kiến thức chi tiết, có ví dụ minh hoạ cụ thể về system design.
Tác giả cung cấp cho người đọc:
- 4 bước để giải quyết bất kỳ câu hỏi phỏng vấn thiết kế hệ thống nào.
- 16 câu phỏng vấn thiết kế hệ thống thực có lời giải chi tiết.
- 188 sơ đồ giải thích trực quan cách thức hoạt động của các hệ thống khác nhau.
Bạn có thể tham khảo Mục lục của sách ở bên dưới. Vì có những từ chuyên ngành nên Chi giữ nguyên nội dung Tiếng Anh nhé.
Chapter 1: Scale From Zero To Millions Of Users
Chapter 2: Back-of-the-envelope Estimation
Chapter 3: A Framework For System Design Interviews
Chapter 4: Design A Rate Limiter
Chapter 5: Design Consistent Hashing
Chapter 6: Design A Key-value Store
Chapter 7: Design A Unique Id Generator In Distributed Systems
Chapter 8: Design A Url Shortener
Chapter 9: Design A Web Crawler
Chapter 10: Design A Notification System
Chapter 11: Design A News Feed System
Chapter 12: Design A Chat System
Chapter 13: Design A Search Autocomplete System
Chapter 14: Design Youtube
Chapter 15: Design Google Drive
Chapter 16: The Learning Continues