[Sách] The clean coder – Trở thành một lập trình viên chuyên nghiệp!
Dạo gần đây thì mình có tăng cường việc đọc sách, thang lang trên mạng tình cờ thấy được vài lời giới thiệu về cuốn sách này bèn mon men tìm đọc thử. Đọc xong mới thấy là đáng ra mình phải tìm đọc cuốn này từ rất rất lâu trước rồi mới phải, phải nói là nó quá hay và những lời khuyên nó mang lại cực kì hữu ích với hầu như tất cả mọi developer nào, từ những người mới đang tò mò tìm hiểu, hay người mới chập chững vào nghề cho tới người đã có hàng chục năm kinh nghiệm. Sau một thời gian đọc cuốn sách và chiêm nghiệm, thì mình quyết định sẽ giới thiệu nó với mọi người, sách hay tới độ mình chỉ muốn nói rằng: bạn sẽ hối tiếc nếu không đọc nó.
Không cần nhiều lời quảng cáo hay trích dẫn những lời khen tặng cuốn sách này để có thể thuyết phục mọi người đọc nó, có lẽ tên tác giả thôi cũng đủ sức lôi cuốn rồi. Tác giả cuốn sách này là Robert Cecil Martin – còn được gọi với tên thân mật hơn là “Uncle Bob” – người viết ra cuốn sách cũng rất nổi tiếng khác là “Clean code – A handbook of agile software craftsmanship“. Với hơn 40 năm kinh nghiệm, đã trả qua hầu hết các vị trí quan trọng trong ngành công nghệ phần mềm như developer, team leader, manager, CEO, … chắc chắn những kinh nghiệm được chia sẻ trong cuốn sách này sẽ hữu ích với hầu hết mọi người ở nhiều vị trí khác nhau. Cuốn sách sẽ giúp bạn trả lời phần nào đó câu hỏi “Làm thế nào để trở thành một nhà phát triển phần mềm chuyên nghiệp?”.
Khái quát nội dung sách
Nội dung của cuốn sách này rất rõ ràng: The clean coder – A code of conduct for PROFESSIONAL programmers. Cuốn sách trình bày các vấn đề cần giải quyết trong quá trình phát triển của một lập trình viên chuyên nghiệp. Cuốn sách này định nghĩa một cách cụ thể và rõ ràng khái niệm “professional” là như thế nào, và mọi người cần phải làm gì để đạt tới nó. Có thể tóm tắt ngắn gọn nội dung như sau:
Khái quát sơ lược về “tinh thần chuyên nghiệp – professionalism”, nó là một thứ gì đó vượt ra ngoài phạm vi của những dòng code, nó là bao gồm cả thái độ để bắt đầu làm việc và trách nhiệm để xử lí công việc một các tốt đẹp nhất.
Một người chuyên nghiệp không phải lúc nào cũng “say YES”, họ biết khi nào và cách để “say NO”, đôi khi “say NO” còn mang lại nhiều lợi ích hơn “say YES”, có những dẫn chứng rất cụ thể để minh hoạ cho điều này. Tóm lại thì một người “chuyên nghiệp” phải đủ kĩ năng để “say YES”, nhưng cũng đủ kinh nghiệm và trách nhiệm để “say NO”. Cụ thể thế nào thì các bạn tự đọc và chiêm nghiệm nhé.
Tất nhiên một người được gọi là professional thì phải có kĩ năng coding tốt, tác giả đưa ra nhiều phương pháp có cả technical và non-technical để có thể giải quyết những rắc rối hay gặp phải và nâng cao kĩ năng code. Trong một ngành công nghiệp mà mọi thứ thay đổi nhanh một cách chóng mặt – tác giả so sánh những chiếc máy tính 8bit được lập trình bằng ngôn ngữ assembly ở những ngày làm việc đầu tiên của tác giả với những thiết bị cao cấp đang dùng hiện nay để chứng minh điều này – thì những kĩ năng gì bất biến hoặc thay đổi rất ít với thời gian là những gì mà mọi người professional cần phải nắm, tác giả có đề cập tới những thứ này trong sách, mọi người đọc sẽ rõ. Bạn có thể cho rằng các kiến thức dạy ở trường đại học thật là lạc hậu và nhàm chán, nhưng thật ra thì nó lại rất quan trọng đó. Mình cũng đã gặp nhiều người quá chú trọng vào công nghệ mà không trao dồi những kiến thức này, điều này khiến cho họ sẽ sớm bị lạc hậu trong thời đại mà công nghệ thay đổi còn nhanh hơn chong chóng quay nữa.
Tác giả cũng khuyên mọi người thường xuyên luyện tập việc coding để giữ cho kĩ năng của mình được nhạy bén. Ông cũng không quên giới thiệu các phương pháp luyện tập coding dojo để giúp mọi người luôn giữ vững và rèn luyện thêm các kĩ năng coding vốn có của mình.
Các kĩ năng ngoài coding khác như: quả lí thời gian, estimation, giải quyết áp lực công việc, hợp tác và làm việc nhóm … cũng sẽ được tác giả trình bày và đưa ra nhiều phương pháp để bổ trợ: phương pháp PERT để estimate, phương pháp “Pomodoro” để quản lí thời gian … Phát triển phần mềm là một công việc mang tính tập thể chứ không phải cá nhân, do đó những kĩ năng này sẽ rất cần thiết trong công việc của các bạn.
Phát triển phần mềm không phải là việc của riêng 1 người mà là một team, do đó tác giả cũng đưa ra vài lời khuyên khi làm việc nhóm để giúp chúng ta có thể cộng tác tốt hơn, điều gì là quan trọng nhất của 1 team, nên tập trung xây dựng team hay tập trung vào product, …
Cuối sách, tác giả cũng đề cập 1 chút tới “growing-path” của một người từ lúc bắt đầu tới professional là như thế nào. Thử xem mình đang ở giai đoạn nào để còn định hướng phát triển hiệu quả hơn nhé.
Mình có thể nói với các bạn rằng: Nếu như cuốn “Clean code” làm thay đổi tư duy lập trình của những người đọc nó, thì cuốn “The clean coder” này có thể làm thay đổi thái độ, phong cách hay thậm chí là định hướng của những người cầm trên tay cuốn sách này. Mọi người nên đọc qua để có thể định hướng chính xác nhất con đường phát triển cho riêng mình. Cuốn sách xứng đáng tới từng phút bạn dành ra để đọc nó.
Đối tượng cuốn sách hướng tới:
Bất cứ ai cũng đều có thể đọc cuốn sách này, người chưa có nhiều kinh nghiệm thì đọc để học hỏi, người nhiều kinh nghiệm rồi thì đọc để suy ngẫm. Những bạn sinh viên nên đọc để có thể định hướng được các kiến thức mình cần phải học. Nếu có thể, mình khuyên là nên đọc cuốn này lúc còn sinh viên, lúc ra trường đi làm thì đọc lại lần nữa, vài năm sau lại đọc tiếp lại nó để xem mình đã làm được những gì. Đây là cuốn sách dạng nên đọc nhiều lần trong đời.
Cuốn sách nên đọc kèm theo cuốn này: Cặp đôi hoàn hảo sẽ là ( “The art of readable code” hoặc “Clean code” ) + “The clean coder”. Một cuốn để cải thiện kĩ năng code, một cuốn để thay đổi thái độ code. Đọc xong combo này bạn sẽ có thể thấy mình tự tin hơn mà nhìn đời rồi đó 🙂
Ước lượng thời gian: 14+1 chương x 1h = 15h. Nếu mỗi ngày bạn dành 1 tiếng đồng hồ để đọc sách thì bạn chỉ mất 2-3 tuần để đọc và suy ngẫm nó. Chú ý: Coi chừng mất ngủ vì sách nói hay quá, bạn say sưa đọc và tâm đắc tới mức quên cả ngủ đấy ^^
Cách đọc: Sách về IT nhưng không có một dòng code nào, vậy nên cũng không khó để đọc. Đọc “The art of readable code” nhức đầu thì có thể lôi cuốn này ra đọc giải trí.
Trong quá trình đọc nếu thấy tâm đắc đoạn nào thì hãy comment chia sẻ với mọi người nhé! Chúc mọi người đọc sách vui.