Tekmonk đã tổng hợp lời khuyên từ rất nhiều lập trình viên, các nhà quản lý, giảng viên hướng dẫn chuyên ngành và các chuyên gia trong nhiều lĩnh vực khác để cho ra được một danh sách gồm 20 cuốn sách học lập trình được giới thiệu nhiều nhất dành cho các lập trình viên phần mềm (Developers Software), có kèm theo tóm tắt sơ lược (nhờ sự trợ giúp của Amazon).
![20 Cuốn Sách Học Lập Trình Dành Cho Software Developers](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNjAwIiB2aWV3Qm94PSIwIDAgNjAwIDYwMCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Thành ngữ Nga – Tin tưởng nhưng có kiểm chứng.
Mọi dữ liệu tôi dùng để tổng hợp danh sách này được lưu trong 1 file định dạng excel trên GitHub. Tính đến Thứ 7, ngày 19/10/2019, list này của tôi gồm 36 nguồn thông tin và đánh giá cho 297 cuốn sách.
Tôi lập ra danh sách này chủ yếu để tổng hợp những cuốn sách mình muốn đọc trong tương lai, đồng thời có thể giúp những người muốn xây dựng một nền tảng tốt trong việc đọc nhưng thường bối rối bởi quá nhiều những danh sách đánh giá khác nhau ở khắp nơi trên mạng. Sao ta cứ phải tin vào một trong số đó mà không tổng hợp tất cả ý kiến lại rồi xem xét? Mọi thứ đều sẵn sàng trên Internet mà!
Dưới đây là một số nguyên tắc ngón tay cái tôi sử dụng để lập ra danh sách này:
- Như lệ thường, các bài viết đánh giá được đặt hàng sẽ không được tính vào list này.
- Các đánh giá cho các ấn bản khác nhau của 1 cuốn sách được tính là đánh giá cho cùng 1 cuốn. Tuy nhiên, các đánh giá cho nhiều ấn bản của 1 cuốn sách trong cùng một bài viết vẫn chỉ được tính là 1 lần.
- Những bài viết mà tác giả chỉ liệt kê những cuốn sách họ đọc hoặc đang đọc không được tính. Các bài viết được tính cần phải là một danh sách những cuốn sách có đánh giá đi kèm.
- Các danh sách đánh giá hướng tới một cấp độ chuyên môn nhất định trong giới lập trình như CTO, lập trình viên mới ra nghề hay lính mới đều được tính.
- Tôi cố gắng bỏ qua các danh sách hướng tới một loại công nghệ chuyên sâu như PHP, CSS, Java… tuy nhiên một số danh sách vẫn xen lẫn một số loại sách dạng này. Mọi cuốn sách xuất hiện trong các bài viết đánh giá đều được đưa vào danh sách kể cả là tiểu thuyết, sách chuyên ngành công nghệ hay không liên quan tới lập trình.
- Dù các thuật ngữ về vai trò thường được dịch ra hơi khác nhau một chút nhưng để phục vụ mục đích chung của danh sách dưới đây, các từ chỉ vị trí như “software developer” (nhà phát triển phần mềm), “software engineer” (kỹ sư phần mềm), “developer” (Lập trình viên phát triển phần mềm), “programmer” (lập trình viên chương trình phần mềm) hay “coder” (lập trình viên mã code) đều tương đương nhau. Các bài viết chuyên sâu về bất cứ mảng nào trong những thuật ngữ vừa nêu trên đều được tính, ngoại trừ trường hợp giống như nguyên tắc số 5 tôi đã nêu là không được tính.
Như tôi đã đề cập ở phần đầu, đây là danh sách tổng hợp lại từ các danh sách đánh giá những cuốn sách về lập trình phần mềm ở khắp mọi nơi trên Internet. Tôi đã xem xét từng kết quả tìm kiếm từ Google trả về cho cụm từ khóa “books software developer” (sách lập trình phần mềm) cũng như xem xét từng bài viết có tiêu đề chứa từ khóa “books” (sách) on Dev.To để cho ra kết quả này.
Nếu các bạn nhận thấy danh sách đánh giá nào đó về đề tài phát triển hay lập trình phần mềm chưa có trong nguồn của tôi trên GitHub, xin vui lòng cho tôi biết. Sẽ là vinh dự cho tôi được đưa nó vào danh sách tổng hợp của mình nếu nó phù hợp với những tiêu chí tôi đề ra ở trên.
Và, không nói nhiều thêm nữa, sau đây là danh sách 20 cuốn sách học lập trình bạn nên đọc(theo thứ tự lùi dần)
20 Cuốn Sách Học Lập Trình Dành Cho Software Developers
#20. Patterns of Enterprise Application Architecture – Martin Fowler
(Tạm dịch: Mô hình kiến trúc ứng dụng doanh nghiệp) – 13.0% tổng đánh giá.
- thuộc bộ 3 nên đọc, cùng với số 18 & 19 –
Cuốn sách này là tổng hợp của 2 cuốn.
- Phần một là những hướng dẫn ngắn gọn về lập trình các ứng dụng doanh nghiệp. Bạn có thể đọc từ đầu tới hết phần này để hiểu các bài học cốt lõi của cuốn sách.
- Phần tiếp theo cũng là phần chính của cuốn sách chi tiết hóa các nguyên mẫu tham khảo. Mỗi nguyên mẫu sẽ cung cấp cho bạn cách ứng dụng thực hành & thông tin bổ sung cũng như chi tiết hóa các ví dụ code bằng ngôn ngữ Java và C#. Đồng thời, phần này cũng được minh họa bằng nhiều biểu đồ UML nhằm lý giải các ý tưởng rõ hơn.
![Cuốn sách giúp bạn có những kiến thức cần thiết, cung cấp cho bạn những nguyên mẫu đã được kiểm chứng để đưa ra những quyết định quan trọng về mặt kiến trúc trong việc xây dựng ứng dụng doanh nghiệp. – Amazon.com Cuốn sách giúp bạn có những kiến thức cần thiết, cung cấp cho bạn những nguyên mẫu đã được kiểm chứng để đưa ra những quyết định quan trọng về mặt kiến trúc trong việc xây dựng ứng dụng doanh nghiệp. – Amazon.com](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOTIiIGhlaWdodD0iNTM5IiB2aWV3Qm94PSIwIDAgMzkyIDUzOSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Cuốn sách giúp bạn có những kiến thức cần thiết, cung cấp cho bạn những nguyên mẫu đã được kiểm chứng để đưa ra những quyết định quan trọng về mặt kiến trúc trong việc xây dựng ứng dụng doanh nghiệp. – Amazon.com
Cuốn sách giúp bạn có những kiến thức cần thiết, cung cấp cho bạn những nguyên mẫu đã được kiểm chứng để đưa ra những quyết định quan trọng về mặt kiến trúc trong việc xây dựng ứng dụng doanh nghiệp. – Amazon.com
#19. Clean Architecture: A Craftsman’s Guide to Software Structure & Design – Robert C. “Uncle Bob” Martin
(Tạm dịch: Kiến trúc sạch: Hướng dẫn của một nghệ nhân Thiết kế & Kiến trúc phần mềm)
13.0% tổng đánh giá (thuộc bộ 3 cuốn nên đọc với số 20 & 18)
![Cho bạn biết mục tiêu cốt lõi của kiến trúc phần mềm & nguyên tắc cùng các bước thực hành quan trọng để đạt được điều đó. Cho bạn biết mục tiêu cốt lõi của kiến trúc phần mềm & nguyên tắc cùng các bước thực hành quan trọng để đạt được điều đó.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MzIiIGhlaWdodD0iNTY0IiB2aWV3Qm94PSIwIDAgNDMyIDU2NCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Cho bạn biết mục tiêu cốt lõi của kiến trúc phần mềm & nguyên tắc cùng các bước thực hành quan trọng để đạt được điều đó.
Cho bạn biết mục tiêu cốt lõi của kiến trúc phần mềm & nguyên tắc cùng các bước thực hành quan trọng để đạt được điều đó.
Giúp bạn nắm vững các nguyên tắc thiết kế phần mềm thiết yếu để tạo tính năng, phân chia thành phần hay quản lý dữ liệu.
Cho bạn xem cách các mô hình lập trình áp đặt nguyên tắc thông qua việc giới hạn những gì lập trình viên có thể làm.
Giúp bạn hiểu được cái gì thực sự quan trọng, cái gì cần chú ý chi tiết.
Giúp bạn biết cách thực hiện các cấu trúc phần mềm bậc cao, tối ưu nhất cho web, database (cơ sở dữ liệu), mạng thick-client, console (bảng điều khiển) hay các ứng dụng embedded (ứng dụng dạng nhúng).
Phân định đường biên (boundary) & các lớp (layer) thích hợp, sắp xếp các thành phần (component) & dịch vụ (service)
Tìm hiểu nguyên nhân sai lầm của các thiết kế và kiến trúc cũng như cách ngăn chặn hoặc xử lý những sai lầm này.
#18. The Art of Computer Programming – Donald Knuth
(Tạm dịch: Thủ thuật trong lập trình máy tính)
13.0% tổng đánh giá (cùng bộ 3 cuốn nên đọc với số 20 & 19)
![Cuốn sách xuất sắc này sẽ trình bày cho bạn cái nhìn sâu về nhiều thuật toán cùng các phân tích liên quan. Trong ấn bản ra mắt lần thứ 3 gần đây, The Art of Computer Programming tác giả đã có nhiều chỉnh sửa, bổ sung quan trọng, thiết thực cùng vô số các bài thực hành mới.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NjYiIGhlaWdodD0iNjQzIiB2aWV3Qm94PSIwIDAgNDY2IDY0MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Cuốn sách xuất sắc này sẽ trình bày cho bạn cái nhìn sâu về nhiều thuật toán cùng các phân tích liên quan. Trong ấn bản ra mắt lần thứ 3 gần đây, The Art of Computer Programming tác giả đã có nhiều chỉnh sửa, bổ sung quan trọng, thiết thực cùng vô số các bài thực hành mới.
Cuốn sách xuất sắc này sẽ trình bày cho bạn cái nhìn sâu về nhiều thuật toán cùng các phân tích liên quan. Trong ấn bản ra mắt lần thứ 3 gần đây, The Art of Computer Programming tác giả đã có nhiều chỉnh sửa, bổ sung quan trọng, thiết thực cùng vô số các bài thực hành mới.
Dù cuốn sách ra đời từ vài thập kỷ trước nhưng đến giờ nó vẫn là một cuốn kinh điển. Một trong những điểm ấn tượng nhất của cuốn sách là mỗi chương của nó lại là một bộ tổng hợp các vấn đề. Tác giả đã chọn những vấn đề này một cách hết sức cẩn thận và sắp xếp chúng theo độ khó. Khi xử lý được hàng loạt những vấn đề này, bạn sẽ thu lượm được một lượng kiến thức vững vàng về mọi vấn đề xảy ra xung quanh đề tài bạn đang theo đuổi.
Các bài tập trong sách cũng giúp bạn làm quen với hàng loạt các vấn đề căn bản thuộc hàng kinh điển trong ngành.
#17. CODE: The Hidden Language of Computer Hardware & Software – Charles Petzold
(Tạm dịch: CODE: Ngôn ngữ bí ẩn của Phần cứng & Phần mềm máy tính)
15.9% tổng đánh giá (cùng bộ nên đọc với số 16)
![Đèn pin, cuộc xâm lược của đế quốc Anh, những con mèo đen và những chiếc bập bênh thì liên quan gì tới máy tính?](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDIiIGhlaWdodD0iNjYyIiB2aWV3Qm94PSIwIDAgNDQyIDY2MiI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Đèn pin, cuộc xâm lược của đế quốc Anh, những con mèo đen và những chiếc bập bênh thì liên quan gì tới máy tính?
Đèn pin, cuộc xâm lược của đế quốc Anh, những con mèo đen và những chiếc bập bênh thì liên quan gì tới máy tính? Bạn sẽ hiểu cách những thứ này vận dụng CODE hay các dòng mã lệnh một cách tài tình để tạo ra phương thức giao tiếp mới với nhau. Cũng thông qua CODE, ta thấy được sự khéo léo cùng tính chất bắt buộc hết sức con người theo cách này đã dẫn sự tiến bộ công nghệ đi qua hai thế kỷ như thế nào.
Bằng việc vận dụng các đối tượng thông thường cũng hệ thống ngôn ngữ quen thuộc như chữ nội Braille hay mã Morse, tác giả Charles Petzold đã dẫn dắt người đọc tới câu chuyện kể về cuộc đời những chiếc máy tính hay các loại máy móc thông minh khác, một kiểu chuyện kể mà rất nhiều người tò mò muốn biết.
Câu chuyện của tác giả được minh họa một cách khéo léo, được kể hết sức dễ hiểu và trong quá trình đọc nó, ta khám phá ra nội dung thực sự của cuốn sách, hiểu được thế giới của những chiếc máy tính, thế giới của truyền thông số và mạng Internet. Dù bạn đang ở cấp độ nào trong lĩnh vực công nghệ, bạn vẫn có khả năng bị thu hút bởi CODE hay các dòng mã lệnh lập trình. Và biết đâu, chúng sẽ đánh thức đam mê công nghệ ẩn sâu trong bạn.
#16. Agile Software Development: Principles, Patterns & Practices – Robert C. “Uncle Bob” Martin
(Tạm dịch: Phát triển phần mềm Agile: Nguyên tắc, Mô hình nguyên mẫu & Các bước thực hành)
15.9% tổng đánh giá (cùng bộ nên đọc với #17)
![Cuốn sách được một lập trình viên phần mềm viết cho các lập trình viên. Đây là cuốn sách tổng hợp các phương pháp lập trình hay phát triển phần mềm mới nhất.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MzQiIGhlaWdodD0iNTQ5IiB2aWV3Qm94PSIwIDAgNDM0IDU0OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Cuốn sách được một lập trình viên phần mềm viết cho các lập trình viên. Đây là cuốn sách tổng hợp các phương pháp lập trình hay phát triển phần mềm mới nhất.
Cuốn sách được một lập trình viên phần mềm viết cho các lập trình viên. Đây là cuốn sách tổng hợp các phương pháp lập trình hay phát triển phần mềm mới nhất. Tác giả đã tổng hợp các phương pháp OOAD, UML, Design Pattern, Agile & XP cùng với mô tả chi tiết của một mẫu thiết kế phần mềm hoàn chỉnh bằng ngôn ngữ C++ và Java cho các chương trình có thể tái sử dụng.
Bằng cách tiếp cận thực tế, xử lý vấn đề, cuốn sách cho ta thấy cách phát triển một ứng dụng lập trình hướng đối tượng (object-oriented application) từ những bước phân tích ban đầu, qua các bước thiết kế bậc thấp cho tới phần hoàn thiện bổ sung.
Cuốn sách đưa người đọc dạo qua cách tư duy của người thiết kế, chỉ ra những lỗi sai, những ngõ cụt cũng như sự thấu hiểu đầy sáng tạo xuất hiện trong quá trình thiết kế một phần mềm.
Các phần trong cuốn sách gồm: Statics & Dynamics, Nguyên tắc căn bản của Thiết kế Lớp (Class Design), Quản lý rắc rối, Nguyên tắc căn bản của Thiết kế Gói (Package Design), Analysis & Design (Phân tích & Thiết Kế); Điểm giao của Nguyên mẫu (Pattern) & Paradigm (Mô hình).
Tác giả lý giải lần lượt các nguyên tắc căn bản của phương pháp OOD, sau đó chứng minh chúng bằng vô số ví dụ và trình bày các thiết kế & từng trường hợp thực tế. Đồng thời, đưa ra các loại bẫy, lỗ hổng trong ứng dụng với C++ và OOD cũng như cách vận dụng phương pháp Agile để xử lý.
Ngoài ra, cuốn sách có 3 chương phân tích chuyên sâu các ví dụ xây dựng một hệ thống bảo mật dành cho các lập trình viên, kỹ sư phần mềm và các nhà phân tích, giúp họ biết cách thiết kế phần mềm hướng đối tượng bằng các phương pháp đương thời.
#15. Introduction to Algorithms – Thomas H.Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein.
(Tạm dịch: Những điều căn bản về các thuật toán)
17.4% tổng đánh giá (3 cùng bộ nên đọc với #14 & #13)
![Một số cuốn sách về các thuật toán thường đi vào chuyên sâu nhưng không đầy đủ](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDIiIGhlaWdodD0iNTg0IiB2aWV3Qm94PSIwIDAgNDQyIDU4NCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Một số cuốn sách về các thuật toán thường đi vào chuyên sâu nhưng không đầy đủ
Một số cuốn sách về các thuật toán thường đi vào chuyên sâu nhưng không đầy đủ. Một số khác thì cung cấp nhiều thông tin nhưng lại thiếu chiều sâu. Introduction to Algorithms là sự kết hợp độc đáo của yếu tố chặt chẽ & tính chất tổng quan. Cuốn sách truyền tải hàng loạt các thuật toán mang tính chuyên môn cao nhưng hết sức dễ hiểu với người đọc ở mọi cấp độ.
Mỗi chương sách đều giống như một nghiên cứu độc lập. Các thuật toán được miêu tả và diễn giải bằng tiếng Anh một cách căn bản, đơn giản, giúp ngay cả người chỉ biết chút ít về lập trình cũng có thể hiểu mà không làm mất đi tính chuyên môn sâu của vấn đề.
Ấn bản đầu tiên được sử dụng rộng rãi trong các trường đại học và trở thành cuốn sách tham khảo tiêu chuẩn cho các chuyên gia trong ngành.
Ấn bản thứ hai có bổ sung những chương mới về vai trò của các thuật toán, phân tích xác suất, các thuật toán ngẫu nhiên và lập trình tuyến tính.
Ấn bản thứ 3 đã được chỉnh sửa & cập nhật từ đầu đến cuối, có bổ sung thêm 2 chương mới hoàn toàn về cây van Emde Boas và các thuật toán đa luồng, phần thêm vào chương về phép truy toán (giờ ta gọi là thuật toán Chia để trị hay Divide-and-Conquer) cùng một phần phụ lục về các loại ma trận.
Ấn bản này có thêm phần nghiên cứu cải tiến về quy hoạch động (dynamic programming) và các giải thuật tham lam (greedy algorithm) cùng với một khái niệm mới về luồng mạng edge trong các tài liệu về mạng luồng. Rất nhiều bài tập cùng các vấn đề được thêm vào ấn bản mới nhất này.
#14. Head First Design Patterns: A Brain – Friendly Guide _Eric Freeman, Elizabeth Robson, Kathy Sierra & Bert Bales.
(Tạm dịch: Hướng dẫn thiết kế cấp tóc cho người mới bắt đầu)
17.4% tổng đánh giá (cùng bộ 3 nên đọc với #15 & #13)
![Dù là bất cứ thời điểm nào, bạn cũng sẽ thấy những người có vấn đề với thiết kế phần mềm như mình](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOTYiIGhlaWdodD0iNDU4IiB2aWV3Qm94PSIwIDAgMzk2IDQ1OCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Dù là bất cứ thời điểm nào, bạn cũng sẽ thấy những người có vấn đề với thiết kế phần mềm như mình
Dù là bất cứ thời điểm nào, bạn cũng sẽ thấy những người có vấn đề với thiết kế phần mềm như mình. Vì thế, may mắn của bạn chính là có ai đó đã xử lý vấn đề đó rồi.
Ấn bản Head First Design Patterns này đã được cập nhật cho Java 8. Cuốn sách chỉ cho bạn những bước thực tế để thực hiện xây dựng các phần mềm một cách thuận tiện, dễ dàng tái sử dụng, nhanh gọn và linh hoạt. Các bước này đều đã được kiểm nghiệm bởi các lập trình viên.
Khi đọc xong cuốn sách, bạn sẽ biết cách tận dụng lợi ích từ kinh nghiệm thực tế của những người đã chiến đấu & giành được thắng lợi trong việc thiết kế các bản phần mềm “khủng”
#13. Cracking the Coding Interview: 189 Programming Questions & Solutions – Gayle Laakmann McDowell
(Tạm dịch: Khám phá một cuộc Coding: 189 câu hỏi & giải pháp lập trình)
17.4 tổng đánh giá (cùng bộ 3 nên đọc với #15 & #14)
![189 câu hỏi phỏng vấn lập trình từ căn bản tới các vấn đề của những thuật toán hóc búa nhất](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDkiIGhlaWdodD0iNjQxIiB2aWV3Qm94PSIwIDAgNDQ5IDY0MSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
189 câu hỏi phỏng vấn lập trình từ căn bản tới các vấn đề của những thuật toán hóc búa nhất
189 câu hỏi phỏng vấn lập trình từ căn bản tới các vấn đề của những thuật toán hóc búa nhất
Giới thiệu và hướng dẫn cách vận dụng các giải pháp giúp bạn hiểu và tìm ra những giải pháp của riêng mình.
Đưa ra những gợi ý về cách xử lý của 189 câu hỏi, giúp bạn hình dung những gì diễn ra trong một cuộc phỏng vấn thật sự.
Đưa ra 5 chiến lược đã được chứng minh để xử lý các vấn đề thuật toán, từ đó, giúp bạn giải quyết các vấn đề bạn chưa từng gặp.
Mở rộng vấn đề sang các lĩnh vực cần thiết như big O time, cấu trúc dữ liệu hay các thuật toán cốt lõi.
Đưa ra cho bạn cái nhìn hậu trường về cách các công ty hàng đầu như Google hay Facebook tuyển dụng các lập trình viên.
Đưa ra các thủ thuật chuẩn bị và cách ghi điểm trong buổi phỏng vấn thông qua những kỹ năng bên lề với các câu hỏi nghiên cứu hành vi.
Cung cấp cho đơn vị tuyển dụng và các công ty chi tiết cách tạo ra câu hỏi phỏng vấn & thiết lập quy trình tuyển dụng tốt.
#12. Don’t Make Me Think: A Common Sense Approach to Web Usability – Steve Krug
(Tạm dịch: Đừng khiến tôi suy nghĩ: Phương pháp sử dụng Web thông thường)
18.8% tổng đánh giá (cùng bộ 3 nên đọc với #11)
![Don’t Make Me Think là cuốn sách của Steve Krug, nói về tương tác giữa con người & máy tính với cách sử dụng web](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzODkiIGhlaWdodD0iNTAwIiB2aWV3Qm94PSIwIDAgMzg5IDUwMCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Don’t Make Me Think là cuốn sách của Steve Krug, nói về tương tác giữa con người & máy tính với cách sử dụng web
Don’t Make Me Think là cuốn sách của Steve Krug, nói về tương tác giữa con người & máy tính với cách sử dụng web. Cuốn sách cho rằng một chương trình phần mềm hay một website tốt sẽ cho phép người dùng tiến hành các tác vụ định sẵn một cách thuận tiện và trực diện nhất có thể.
Krug chỉ ra rằng con người rất dễ hài lòng và lựa chọn phương án nào khả dụng đầu tiên cho vấn đề cần xử lý của họ. Vì thế, khi thiết kế, ta cần phải chú ý tận dụng điểm này. Ông thường lấy Amazon.com làm ví dụ về một website có thiết kế ổn, cho phép các tương tác phản hồi chất lượng cao ngay cả khi trang web này ngày càng phình to và phức tạp hơn.
Cuốn sách được xem như một bản mẫu về độ súc tích và có trọng tâm. Như ở phần giới thiệu cuốn sách có đề cập, mục tiêu của nó là tạo ra một văn bản phù hợp với một nhà lãnh đạo chỉ có thời gian rảnh là trên chuyến bay kéo dài 2 giờ đồng hồ.
Wikipedia –
#11. The Clean Coder: A Code of Conduct for Professional Programmers – Robert C. “Uncle Bob” Martin
(Tạm dịch: Lập trình viên sạch: Mã lệnh tiêu chuẩn cho lập trình viên chuyên nghiệp)
18.8% tổng đánh giá (cùng bộ nên đọc với #12)
![Các lập trình viên tồn tại và thành công giữa vòng xoáy áp lực không ngừng của nghề này đã chia sẻ một bí quyết chung: Họ đặc biệt chú tâm tới các bước thực hiện trong việc tạo ra một phần mềm. Họ coi chúng như những tác phẩm thủ công mỹ nghệ](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzODQiIGhlaWdodD0iNDk5IiB2aWV3Qm94PSIwIDAgMzg0IDQ5OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Các lập trình viên tồn tại và thành công giữa vòng xoáy áp lực không ngừng của nghề này đã chia sẻ một bí quyết chung: Họ đặc biệt chú tâm tới các bước thực hiện trong việc tạo ra một phần mềm. Họ coi chúng như những tác phẩm thủ công mỹ nghệ
Các lập trình viên tồn tại và thành công giữa vòng xoáy áp lực không ngừng của nghề này đã chia sẻ một bí quyết chung: Họ đặc biệt chú tâm tới các bước thực hiện trong việc tạo ra một phần mềm. Họ coi chúng như những tác phẩm thủ công mỹ nghệ. Họ chính là những chuyên gia trong lĩnh vực này.
Trong cuốn The Clean Coder: A Code of Conduct for Professional Programmers, chuyên gia phần mềm huyền thoại Robert C. Martin giới thiệu cho người đọc các quy tắc, kỹ thuật, công cụ và bước thực hành của một nghệ nhân phần mềm thực thụ. Cuốn sách cũng đưa ra lời khuyên thiết thực cho mọi vấn đề liên quan, từ ước tính tới lập trình (coding) hay tái cấu trúc (refactoring) & kiểm thử (testing). Ở đây, Martin chỉ ra rằng, để tiếp cận công việc phát triển phần mềm, bạn không chỉ cần kỹ thuật hay thủ thuật mà còn cần cả thái độ đúng. Ông cho rằng, lập trình viên cần phải làm việc với một sự trung thực, tự trọng và lòng kiêu hãnh, làm tốt và làm gọn ghẽ; truyền đạt và ước tính chính xác; đối diện với các quyết định khó khăn bằng một thái độ trung thực & rõ ràng; hiểu rằng kiến thức sâu rộng luôn đi kèm với trách nhiệm hành động.
#10. Soft Skills: The Software Developer’s Life Manual – John Sonmez
(Tạm dịch: Kỹ năng mềm: Cẩm nang sống của một nhà phát triển phần mềm)
23.2% tổng đánh giá (cùng bộ nên đọc với #11)
![Soft Skills: The Software Developer’s Life Manual là cuốn sách hướng dẫn bạn có một cuộc sống trọn vẹn & ưng ý với tư cách một chuyên gia công nghệ](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMTgiIGhlaWdodD0iMzk5IiB2aWV3Qm94PSIwIDAgMzE4IDM5OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Soft Skills: The Software Developer’s Life Manual là cuốn sách hướng dẫn bạn có một cuộc sống trọn vẹn & ưng ý với tư cách một chuyên gia công nghệ
Soft Skills: The Software Developer’s Life Manual là cuốn sách hướng dẫn bạn có một cuộc sống trọn vẹn & ưng ý với tư cách một chuyên gia công nghệ. Trong cuốn sách, lập trình viên và nhà tư vấn kỹ năng sống John Sonmez đưa ra lời khuyên dành cho các lập trình viên về các chủ đề “mềm” quan trọng như: sự nghiệp và hiệu suất công việc, tài chính cá nhân & đầu tư, thậm chí là rèn luyện sức khỏe & các mối quan hệ.
Nội dung cuốn sách được sắp xếp giống như một bộ sưu tập gồm 71 chương ngắn, văn phòng hài hước khiến bạn có thể dễ dàng đọc bất cứ nơi nào bạn muốn. Phần Hành Động Thực Tế ở cuối mỗi chương sẽ chỉ cho bạn cách đạt được kết quả nhanh chóng. Soft Skills hay các kỹ năng mềm giúp bạn trở thành một lập trình viên tốt hơn, một nhân viên giá trị hơn và một người sống khỏe mạnh. hạnh phúc hơn.
#9. Peopleware: Productive Projects & Teams – Tom DeMarco & Timothy Lister
(Tạm dịch: Nhân liệu: Các dự án & đội ngũ hiệu quả)
23.2% tổng đánh giá (cùng bộ nên đọc với #12)
![Peopleware là cuốn sách phổ biến về quản lý tổ chức phần mềm](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNDIiIGhlaWdodD0iNDk5IiB2aWV3Qm94PSIwIDAgMzQyIDQ5OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Peopleware là cuốn sách phổ biến về quản lý tổ chức phần mềm
Peopleware là cuốn sách phổ biến về quản lý tổ chức phần mềm. Chương đầu của cuốn sách khẳng định: “Vấn đề lớn nhất trong công việc của chúng ta không phải về mặt kỹ thuật công nghệ mà ở yếu tố xã hội. Cuốn sách tiếp cận các vấn đề xã hội hay các yếu tố “chính trị” như tính gắn kết, sự thấu hiểu của team, dòng chảy và sự im lặng trong môi trường làm việc hay chi phí doanh thu cao. Các chủ đề khác được đề cập tới trong sách gồm: những xung đột giữa quan điểm cá nhân trong công việc với hệ tư tưởng của doanh nghiệp, “entropy” doanh nghiệp, “teamicide” – sát thủ nhóm và lý thuyết công sở.
Các chủ đề trong cuốn sách được trình bày theo hình thức luôn có câu chuyện minh họa hoặc thông tin tham khảo đi kèm theo các nguyên tắc. Ví dụ, trong chương “Spaghetti Dinner”(Bữa tối với Spaghetti), , để nói về thành công đầu tiên của một team, tác giả đưa ra câu chuyện hư cấu về một quản lý mời các thành viên mới trong team của mình ăn tối, đồng thời, nhờ luôn những người này mua đồ và cùng chế biến các món ăn.
Một số chương khác đã sử dụng các câu chuyện có thật trong đời sống hoặc đưa ra nhiều trích dẫn để chứng minh cho các nguyên tắc được trình bày trong sách.
#8. Programming Pearls – Jon Bentley
(Tạm dịch: Chuỗi lập trình)
26.1% tổng đánh giá
![Lập trình máy tính có nhiều khía cạnh. Fred Brooks vẽ một bức tranh lớn trong The Mythical Man Month (Chuyện thần thoại về Man Month)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTYiIGhlaWdodD0iNzAwIiB2aWV3Qm94PSIwIDAgNTE2IDcwMCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Lập trình máy tính có nhiều khía cạnh. Fred Brooks vẽ một bức tranh lớn trong The Mythical Man Month (Chuyện thần thoại về Man Month)
Lập trình máy tính có nhiều khía cạnh. Fred Brooks vẽ một bức tranh lớn trong The Mythical Man Month (Chuyện thần thoại về Man Month); những bài luận của ông chủ yếu nhấn mạnh vai trò chính của việc quản lý trong các dự án phần mềm lớn. Ở khía cạnh nhỏ hơn, Steve McConnell chỉ ra các kiểu lập trình hay trong cuốn Code Complete. Các chủ đề trong những cuốn sách này đều là bí quyết giúp người đọc trở thành lập trình viên phần mềm chuyên nghiệp, làm ra được những phần mềm tốt. Vấn đề là, những nguyên tắc ứng dụng công nghệ có vẻ công phu không phải lúc nào cũng gây được ấn tượng, trừ khi chúng giúp cho một phần mềm được hoàn thành đúng hạn và chạy trơn chu.
Nội dung cuốn sách đề cập tới khía cạnh hấp dẫn hơn của chuyên ngành này, đó là: các chuỗi lập trình vượt ra ngoài biên giới của công nghệ nền tảng, tiến vào thế giới của sáng tạo & sự thấu hiểu từ bên trong. Giống như những viên ngọc trai trong tự nhiên được hình thành từ các hạt cát được kích thích sau lớp vỏ trai, chuỗi lập trình mà cuốn sách đề cập cũng ra đời từ các vấn đề thực tế đã được xử lý bởi các chuyên gia lập trình thực thụ. Các chương trình phần mềm được đưa vào cuốn sách khá hay, chúng cũng dạy ta nhiều kỹ năng lập trình quan trọng và cung cấp cho ta các nguyên tắc cơ bản trong thiết kế phần mềm.
#7. Working Effectively with Legacy Code – Michael Feathers
(Tạm dịch: Xử lý hiệu quả Mã Kế Thừa/Mã Di Sản)
27.5% tổng đánh giá (cùng bộ nên đọc với #6)
![Code của bạn có dễ thay đổi không? Bạn có thực sự nhận được phản hồi ngay tức thời khi bạn thay đổi nó không? Bạn có hiểu nó không?](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MjkiIGhlaWdodD0iNzAxIiB2aWV3Qm94PSIwIDAgNTI5IDcwMSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Code của bạn có dễ thay đổi không? Bạn có thực sự nhận được phản hồi ngay tức thời khi bạn thay đổi nó không? Bạn có hiểu nó không?
Code của bạn có dễ thay đổi không? Bạn có thực sự nhận được phản hồi ngay tức thời khi bạn thay đổi nó không? Bạn có hiểu nó không? Nếu câu trả lời của một trong những câu hỏi này là “không”, bạn đang sở hữu legacy code hay còn gọi là mã kế thừa, và nó là nguyên nhân bào mòn tiền bạc, thời gian và những nỗ lực của bạn trong quá trình phát triển sản phẩm.
Trong cuốn sách này, Michael Feathers cung cấp cho người đọc các chiến lược xử lý từ đầu tới cuối một cách hiệu quả hơn những cơ sở mã kế thừa lớn, chưa kiểm thử. Nội dung cuốn sách dựa trên tài liệu mà Michael sử dụng trong các hội thảo Object Mentor nổi tiếng của ông. Trong đó bao gồm các thủ thuật Michael đã dùng để hỗ trợ hướng dẫn hàng trăm lập trình viên, đội ngũ lãnh đạo kỹ thuật và các chuyên viên kiểm thử xử lý, kiểm soát hệ thống cũ, hỏng (legacy systems) của họ. Các chủ để bao gồm:
– Tìm hiểu về cơ chế sự thay đổi phần mềm: thêm tính năng, sửa lỗi, cải thiện thiết kế, tối ưu hiệu suất.
– “Thuần hóa” mã kế thừa (legacy code)
– Viết các bản test nhằm phòng ngừa & ngăn chặn các vấn đề mới phát sinh.
– Cung cấp các thủ thuật công nghệ có thể sử dụng với bất cứ loại ngôn ngữ hay nền tảng nào như Java, C++, C hay C#
– Xác định chính xác vị trí code cần thay đổi.
– Đối phó với các hệ thống cũ /hỏng (legacy systems) không điều hướng đối tượng.
– Giải quyết các ứng dụng không theo cấu trúc nào.
#6. The Mythical Man-Month: Essays on Software Engineering – Frederick P. Brooks.
(Tạm dịch: Thần thoại Man-Month: Các thử nghiệm trong kỹ thuật phần mềm)
27.5% tổng đánh giá (cùng bộ nên đọc với #7)
![Một trong số ít các cuốn sách về quản trị dự án phần mềm có sức ảnh hưởng bất chấp thời gian là The Mythical Man-Month.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NzAiIGhlaWdodD0iNzAwIiB2aWV3Qm94PSIwIDAgNDcwIDcwMCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Một trong số ít các cuốn sách về quản trị dự án phần mềm có sức ảnh hưởng bất chấp thời gian là The Mythical Man-Month.
Một trong số ít các cuốn sách về quản trị dự án phần mềm có sức ảnh hưởng bất chấp thời gian là The Mythical Man-Month. Với một chuỗi các tình huống thực về kỹ thuật phần mềm cùng những ý kiến đánh giá đáng chú ý, Fred Brooks đưa ra cái nhìn phân tích sâu cho những người đang đảm nhiệm vai trò quản lý các dự án phức tạp.
Những đánh giá thử nghiệm này dựa trên kinh nghiệm của chính ông khi làm quản lý dự án cho “đại gia đình” hệ thống máy tính trung tâm IBM System/360 và sau này là OS/360 cùng hệ thống phần mềm “khủng” của nó.
Giờ đây, 20 năm sau bản đầu tiên của cuốn sách, Brooks quay lại với các ý tưởng khởi nguồn và thêm nhiều ý tưởng cũng như lời khuyên mới cho cuốn sách, hỗ trợ nhiều cho cả người đọc đã từng đọc sách của ông lẫn những người mới đọc lần đầu tiên.
#5. Refactoring: Improving the Design of Existing Code – Martin Fowler
(Tạm dịch: Tái cấu trúc: Cải thiện thiết kế cho các đoạn mã sẵn có)
33.3% tổng đánh giá (cùng bộ nên đọc với #4)
![Suốt hơn 20 năm, các lập trình viên giàu kinh nghiệm trên khắp thế giới đã tin tưởng vào cuốn sách Refactoring của Martin Fowler để cải thiện các thiết kế cho những đoạn code sẵn có và để nâng cao khả năng duy trì phần mềm cũng như làm cho các đoạn mã sẵn có trở nên dễ hiểu hơn.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MTkiIGhlaWdodD0iNTMxIiB2aWV3Qm94PSIwIDAgNDE5IDUzMSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Suốt hơn 20 năm, các lập trình viên giàu kinh nghiệm trên khắp thế giới đã tin tưởng vào cuốn sách Refactoring của Martin Fowler để cải thiện các thiết kế cho những đoạn code sẵn có và để nâng cao khả năng duy trì phần mềm cũng như làm cho các đoạn mã sẵn có trở nên dễ hiểu hơn.
Suốt hơn 20 năm, các lập trình viên giàu kinh nghiệm trên khắp thế giới đã tin tưởng vào cuốn sách Refactoring của Martin Fowler để cải thiện các thiết kế cho những đoạn code sẵn có và để nâng cao khả năng duy trì phần mềm cũng như làm cho các đoạn mã sẵn có trở nên dễ hiểu hơn.
Ấn bản mới đáng chờ đợi của cuốn sách này cập nhật một cách đầy đủ những thay đổi quan trọng trong lĩnh vực lập trình. Refactoring, Second Edition (Tái cấu trúc, Ấn bản thứ 2) bổ sung một danh mục tái cấu trúc được cập nhật kèm theo các ví dụ code JavaScript cùng các ví dụ mới, thiết thực thể hiện tái cấu trúc mà không cần các lớp.
Giống bản đầu tiên, ấn bản này lý giải cho người đọc tái cấu trúc (refactoring) là gì; tại sao bạn nên tái cấu trúc; làm sao để nhận ra code cần được tái cấu trúc; và làm thế nào để thực sự tái cấu trúc thành công dù sử dụng ngôn ngữ nào đi nữa.
– Giúp người đọc hiểu được quy trình và các nguyên tắc chung của tái cấu trúc
– Ứng dụng nhanh chóng các tái cấu trúc hữu dụng để xây dựng một chương trình dễ hiểu, dễ thay đổi.
– Nhận ra “mùi” bất ổn trong code, báo hiệu cơ hội tái cấu trúc.
– Khám phá các mô hình tái cấu trúc với lý giải, động cơ thúc đẩy, cơ chế và các ví dụ đơn giản đi kèm.
– Xây dựng các bản kiểm thử căn bản cho các mô hình tái cấu trúc.
– Nhận ra cơ hội và chướng ngại tái cấu trúc.
#4. Design Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma, Richard Helm & Ralph Johnson
(Tạm dịch: Mẫu thiết kế: Yếu tố cơ sở của phần mềm định hướng đối tượng có thể tái sử dụng)
33.3% tổng đánh giá (cùng bộ nên đọc với #5)
![Cuốn sách này không phải bản giới thiệu về công nghệ hay thiết kế định hướng đối tượng (object-oriented),cũng không phải một bản chuyên luận nâng cao.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MzciIGhlaWdodD0iNTQ5IiB2aWV3Qm94PSIwIDAgNDM3IDU0OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Cuốn sách này không phải bản giới thiệu về công nghệ hay thiết kế định hướng đối tượng (object-oriented),cũng không phải một bản chuyên luận nâng cao.
Cuốn sách này không phải bản giới thiệu về công nghệ hay thiết kế định hướng đối tượng (object-oriented),cũng không phải một bản chuyên luận nâng cao. Nhiều cuốn sách khác đã làm tốt vai trò hay nhiệm vụ đó. Đây là cuốn sách về các mẫu thiết kế miêu tả một cách đơn giản, ngắn gọn các giải pháp cho những vấn đề chuyên biệt trong lĩnh vực thiết kế phần mềm định hướng đối tượng…
Khi bạn đã hiểu các mẫu thiết kế và thốt lên “À!” thay vì “Á!” khi tiếp cận với chúng, bạn sẽ thay đổi cách nghĩ về thiết kế định hướng đối tượng. Bạn sẽ biết cách làm cho thiết kế của mình trở nên linh hoạt, có thể thay thế hay trao đổi dễ dàng, có thể tái sử dụng và hết sức dễ hiểu. Đó cũng là lý do khiến bạn thích thú với công nghệ định hướng đối tượng ngay từ ban đầu, đúng không?
#3. Code Complete: A Practical Handbook of Software Construction – Steve McConnell
(Tạm dịch: Mã Hoàn Thành: Cẩm nang thực thành cho Xây Dựng Phần Mềm).
44.9% tổng đánh giá
![Được coi như một trong những cẩm nang hướng dẫn thực hành tốt nhất trong lĩnh vực lập trình, Cuốn Code Complete gốc của Steve McConnell đã giúp các lập trình viên viết phần mềm tốt hơn trong suốt một thập kỷ](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDEiIGhlaWdodD0iNTM4IiB2aWV3Qm94PSIwIDAgNDQxIDUzOCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Được coi như một trong những cẩm nang hướng dẫn thực hành tốt nhất trong lĩnh vực lập trình, Cuốn Code Complete gốc của Steve McConnell đã giúp các lập trình viên viết phần mềm tốt hơn trong suốt một thập kỷ
Được coi như một trong những cẩm nang hướng dẫn thực hành tốt nhất trong lĩnh vực lập trình, Cuốn Code Complete gốc của Steve McConnell đã giúp các lập trình viên viết phần mềm tốt hơn trong suốt một thập kỷ. Giờ đây, cuốn sách kinh điển này đã được cập nhật và chỉnh sửa, bổ sung đầy đủ với các ví dụ thực tế tiêu biểu và hàng trăm các mẫu code mới đại diện cho lĩnh vực khoa học n xây dựng phần mềm.
Tiếp nhận và phát huy các kiến thức thu được từ nghiên cứu, học tập và kinh nghiệm làm việc thực tế hàng ngày, McConnell tổng hợp được hầu hết các kỹ năng chuyên môn hiệu quả cũng như các nguyên tắc căn bản và kết hợp thành một bản hướng dẫn có tính ứng dụng cao.
Bất kể kinh nghiệm của bạn nhiều hay ít, dự án lớn hay nhỏ, cuốn sách này cũng sẽ cung cấp thông tin và kích thích tư duy của bạn, giúp bạn xây dựng được các đoạn mã code có chất lượng cao nhất.
- Cuốn sách giúp bạn khám phá các kỹ năng và chiến lược sẽ hỗ trợ bạn lâu dài.
- Giúp bạn có tư duy thiết kế sáng tạo mà ít phức tạp nhất có thể.
- Giúp bạn gặt hái được lợi ích phát triển tương hỗ.
- Giúp bạn áp dụng kỹ năng lập trình phòng vệ nhằm giảm bớt và loại bỏ lỗi.
- Giúp bạn khám phá các cơ hội tái cấu trúc hay cải tiến code một cách an toàn.
- Giúp bạn sử dụng các mô hình xây dựng thực tế phù hợp với dự án của mình.
- Xử lý vấn đề phát sinh nhanh chóng và hiệu quả
- Giải quyết sớm các vấn đề (issues) quan trọng trong cấu trúc một cách chính xác
- Xây dựng chất lượng ngay từ bước đầu, giữa và cuối của dự án.
Amazon
#2. The Pragmatic Programmer: From Journeyman to Master – Andrew Hunt & Dave Thomas
(Tạm dịch: Lập trình viên thực tế: Từ thợ lành nghề tới chuyên gia)
47.8 % tổng đánh giá.
![Các lập trình viên chính là những nghệ nhân được đào tạo để sử dụng một số bộ công cụ nhất định (biên tập, quản lý đối tượng, kiểm soát phiên bản) nhằm mục đích tạo ra một loại sản phẩm cụ thể (các chương trình)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDUiIGhlaWdodD0iNTU4IiB2aWV3Qm94PSIwIDAgNDQ1IDU1OCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Các lập trình viên chính là những nghệ nhân được đào tạo để sử dụng một số bộ công cụ nhất định (biên tập, quản lý đối tượng, kiểm soát phiên bản) nhằm mục đích tạo ra một loại sản phẩm cụ thể (các chương trình)
Các lập trình viên chính là những nghệ nhân được đào tạo để sử dụng một số bộ công cụ nhất định (biên tập, quản lý đối tượng, kiểm soát phiên bản) nhằm mục đích tạo ra một loại sản phẩm cụ thể (các chương trình). Các sản phẩm này sẽ được vận hành trong một số môi trường (các hệ thống vận hành hay một nhóm phần cứng).
Giống như các lĩnh vực thủ công khác, các lập trình viên máy tính trở nên thành thạo, lành nghề là nhờ vào những mảng kiến thức không được dạy trong trường đại học hay các lớp chứng chỉ nào. Đại đa số họ đều hoàn thiện kỹ năng của mình thông qua những thử nghiệm độc lập trong quá trình làm việc.
Trong cuốn The Pragmatic Programmer, Andrew Hunt và David Thomas dùng ngôn ngữ lập trình để kể lại những câu chuyện có thật mà họ đã khám phá ra trong suốt sự nghiệp của mỗi người với tư cách các nhà thiết kế phần mềm và các tác giả ngôn ngữ lập trình.
Một số kinh nghiệm quý báu của các tác giả rất thực tế. Các bước thực hành rất rõ ràng. Họ khuyên người đọc nên tìm hiểu về một trình soạn thảo/biên tập văn bản nào đó và sử dụng nó trong mọi việc.
Họ cũng khuyến nghị mọi người nên sử dụng phần mềm theo dõi phiên bản đối với cả những dự án nhỏ nhất và ca ngợi giá trị của việc tìm hiểu các cú pháp biểu đạt chính thống hay một loại ngôn ngữ thao tác văn bản.
Lời khuyên khác (chắc hẳn có giá trị hơn) là thoải mái, vui vẻ. Trong phần debug (tìm & khắc phục lỗi) có viết: “Nếu bạn thấy các dấu chân, hãy nghĩ tới ngựa, đừng nghĩ tới ngựa vằn.” Nghĩa là, bạn nên nghi ngờ mọi thứ nhưng phải bắt đầu tìm kiếm vấn đề ở nơi hiển nhiên nhất.
Ngoài ra, có một số lời khuyên giúp bạn đưa ra đánh giá về thời gian và chi phí, cũng như cách tích hợp quá trình kiểm thử vào quy trình phát triển chung.
Bạn sẽ muốn có một cuốn The Pragmatic Programmer vì hai lý do:
Cuốn sách trình bày những hiểu biết thông thái lộn xộn của bạn một cách gọn ghẽ, mạch lạc hơn bạn trình bày.
- Nó đưa ra cho bạn các phương pháp làm việc có thể bạn chưa từng nghĩ tới.
- Đây là cuốn sách những ai đang làm lập trình viên đều muốn có.
- David Wall trên Amazon.com –
#1. Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. “Uncle Bob” Martin.
(Tạm dịch: Mã sạch: Sổ tay cho các “nghệ nhân” phần mềm Agile)
52.2 tổng đánh giá.
![Các đoạn code tệ vẫn có thể hoạt động được nhưng nếu code không sạch sẽ, gọn gàng, nó sẽ phá sự phát triển của một tổ chức](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NTIiIGhlaWdodD0iNTkwIiB2aWV3Qm94PSIwIDAgNDUyIDU5MCI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=)
Các đoạn code tệ vẫn có thể hoạt động được nhưng nếu code không sạch sẽ, gọn gàng, nó sẽ phá sự phát triển của một tổ chức
Các đoạn code tệ vẫn có thể hoạt động được nhưng nếu code không sạch sẽ, gọn gàng, nó sẽ phá sự phát triển của một tổ chức. Mỗi năm, vô số thời giờ và các nguồn quan trọng mất đi một cách vô ích và phi lý chỉ vì các đoạn code được viết một cách cẩu thả.
Chuyên gia phần mềm Robert C. Martin trình bày một mô hình mang tính cách mạng trong cuốn Clean Code: A Handbook of Agile Software Craftsmanship. Martin đã cùng với các đồng nghiệp của ông trong chương trình Object Mentor chắt lọc ra những bước thực hành tốt nhất để tạo ra những đoạn mã sạch rồi tổng hợp vào cuốn sách này. Nó sẽ mang lại những giá trị cho bạn những giá trị tinh túy từ một “nghệ nhân” phần mềm và giúp bạn trở thành một lập trình viên giỏi – dĩ bạn phải là lập trình viên đã.
Bạn sẽ làm gì với cuốn sách? Đọc code, rất nhiều đoạn mã code. Và bạn sẽ được thử thách, buộc phải suy nghĩ xem cái gì trong đoạn bạn vừa đọc là đúng và cái gì là sai. Quan trọng hơn, bạn phải đánh giá lại gi lại giá trị độ lành nghề của bản thân và những cam kết của bạn với nghề.
Clean Code được chia làm 3 phần.
Phần đầu miêu tả các nguyên tắc cơ bản, các mô hình và bước thành hành chính trong việc viết các đoạn mã sạch.
Phần hai tổng hợp một số trường hợp tiêu biểu có độ phức tạp cao hơn. Mỗi trường hợp là một bài tập làm sạch code, theo kiểu, chuyển một đoạn code vẫn còn tồn đọng vài vấn đề sang thành một đoạn code êm ái, hiệu quả hơn.
Phần ba sẽ xuất hiện phần thưởng cho bạn: phần duy nhất cung cấp cho bạn danh sách các phương pháp giải quyết trong khi vẫn tạo ra các case study. Kết quả thu được là một lượng kiến thức căn bản miêu tả những gì ta tư duy khi viết, đọc và làm sạch mã code.
Thông qua cuốn sách, người đọc sẽ hiểu được:
- Cách phân biệt giữa code hay và code dở (good code & bad code)
- Cách viết các đoạn code hay và cách chuyển từ mã code dở sang mã code hay.
- Cách tạo ra tên (name), tính năng (function), đối tượng (object) hay lớp (class) hay.
- Cách định dạng mã code cho khả năng đọc tối đa
- Cách thực hiện các bước hoàn thành xử lý lỗi mà không làm mất logic code
- Cách test đơn vị (unit test) và thực hành phát triển test-driven.
Đây là cuốn sách cần thiết cho mọi lập trình viên, kỹ sư phần mềm, quản lý dự án , team leader hay phân tích hệ thống hoặc bất cứ ai quan tâm tới việc sản xuất ra những đoạn mã hay ho hơn.
Tỷ lệ đánh giá được đánh giá phía trên là phần lấy từ tất cả các danh sách khảo sát có chứa cuốn sách được đánh giá. Vì vậy, ngay cả một cuốn chỉ có “12.5% tổng đánh giá” thì cũng đồng nghĩa với việc, trên thực tế, cứ 8 lập trình viên sẽ có 1 người đọc cuốn này và giới thiệu nó cho người khác. Mọi cuốn sách trong danh sách này đều qua ngưỡng 1 trong 8 nói trên.
Ngạc nhiên hơn phải kể đến những cuốn sách trong Top 10. Cứ 4 lập trình viên thì có 1 người đánh giá và giới thiệu các cuốn từ số 6 đến số 10. Cứ 3 lập trình viên lại có 1 người giới thiệu và đánh giá cuốn số 4 và số 5.
Đặc biệt, 3 cuốn Code Complete, The Pragmatic Programmer, Clean Code được mọi lập trình viên đánh giá và giới thiệu. Sức ảnh hưởng này có thể gọi là kỳ tích ở một trong những ngành nghề quan trọng của xã hội hiện đại. Nếu bạn đang muốn cải thiện, nâng cao kiến thức phát triển phần mềm mà lại chưa đọc một trong 3 cuốn này thì xin đảm bảo rằng nửa số cộng sự của bạn sẽ khuyên bạn nên làm thế.
Nguồn: Internet
Đã đọc:
2,512