Lập trình viên “trình cao” thì nên đọc sách gì? - Phần 1
Đầu tiên, xin hứng chịu gạch đá từ nhiều bạn rằng: developer thì cần gì phải đọc sách, code nhiều là giỏi thôi. Vâng, các cậu có cu, nhầm, các cụ đã có câu là "practice make perfect", cứ làm hoài là giỏi. Tuy nhiên, phải làm đúng cách thì mới giỏi được, code dở mà không chịu tìm cách cải thiện kĩ ...
Đầu tiên, xin hứng chịu gạch đá từ nhiều bạn rằng: developer thì cần gì phải đọc sách, code nhiều là giỏi thôi. Vâng, các cậu có cu, nhầm, các cụ đã có câu là "practice make perfect", cứ làm hoài là giỏi. Tuy nhiên, phải làm đúng cách thì mới giỏi được, code dở mà không chịu tìm cách cải thiện kĩ năng code, cứ code hoài 1 kiểu cũ thì bao giờ mới giỏi được.
Về sách lập trình mình đọc cũng được kha khá, sách hay có dở có. Tuy nhiên mỗi cuốn sách hay hay dở đều làm mình ngộ ra được vài điều. Khảo sát trong cuốn Code Complete cho thấy trung bình 1 developer đọc ít hơn 1 cuốn sách mỗi năm. Chỉ cần các bạn làm theo mình, mỗi năm đọc ít nhất một cuốn, các bạn sẽ giỏi hơn khoảng 90% developer còn lại rồi nhé.
Trong danh sách mình giới thiệu tiếp theo, có cuốn mình đã đọc, có cuốn mình đọc nửa chừng rồi bỏ, có cũng cuốn mình chưa đọc. Những cuốn đã đọc mình sẽ chia sẻ cảm nhận của mình, còn cuốn nào chưa đọc xin phép dịch nhận xét của những người khác vậy, các bạn thông cảm. Dưới đây là danh sách những cuốn sách developer nên đọc, được giới thiệu bởi codinghorror, một blog IT khá nổi tiếng:
1. Code Complete (Đã đọc, drop nửa chừng)
Nếu bạn muốn theo đuổi công việc lập trình một cách nghiêm túc, bạn nên đọc cuốn này. Mình được một ông anh giới thiệu (mà chắc lão cũng chẳng đọc hết). Có thể nói là đọc tới đâu ngộ ra tới đấy. Trong quá trình code, có lúc bạn sẽ gặp các trường hợp như: tách method thế nào, chia class ra sao, đặt tên biến thế nào, … Cuốn sách này sẽ là người thầy, người anh của bạn, với vô số hướng dẫn từ tổng quan như: xây dựng kiến trúc, liên hệ giữa các component, … cho tới chi tiết như: cách tổ chức function, cách đọc tên biến.
Đọc tới giữa sách, do nó hơi sa đà vào C++, vả lại con Kindle Fire của mình vừa bị hư nên mình đành drop, chưa có thời gian đọc lại.
2. The Mythical Man-month (Đã đọc, drop sau khi đọc xong 14/20 chương)
Đây là một cuốn sách về khủng long trong ngành IT? Đùa đấy! Nó là một cuốn sách khá nổi tiếng (Không thua Kinh Thánh) trong giới manager và PM ngành IT. Như lời cuốn sách đã nói: **Máy tính có thể thay đổi, nhưng con người thì không. **Bằng chứng là những điều cuốn sách nói cách đây 30 năm bây giờ vẫn còn đúng trong ngành phần mềm:
- Phép tính man-month: 1 project cần 3 người là trong 4 tháng tức 3 x 4=12 man month. Nếu tính theo cách bình thường thì 6 người sẽ cần 12/6 = 2 tháng. Tuy nhiên, man-month là một thứ kì quái, thêm người vào dự án chưa chắc sẽ tăng tốc độ dự án (Thời mình làm bên FSoft lắm cụ ko biết điều này >.<).
- Vấn nạn document: Việc quản lý document rất mất thời gian và vô cùng phức tạp, có 1 số dự án document còn dài + rắc rối hơn cả code (Thời nay áp dụng Agile thì đỡ…).
Nói chung, cuốn sách này sẽ không giúp bạn code giỏi hơn, nhưng nó giúp bạn có cái nhìn tổng quan về những mặt khuyết thiếu của ngành phần mềm. Những kiến thức này sẽ rất có ích nếu bạn leo lên vị trí manager hoặc PM v…v. Khuyến cáo: Sách dùng ngôn từ hơi cổ, có đôi lúc giống tiểu thuyết, mình đọc còn xây xẩm.
3. Don't make me think (Đã đọc hết)
Một cuốn sách rất hay về thiết kế giao diện. Nó đưa ra một qui tắc rất đơn giản và hữu dụng trong thiết kế UI: Người dùng rất lười, hãy thiết kế sao cho người dùng ít suy nghĩ nhất. Cuốn sách không hướng dẫn cách thiết kế đẹp, nhưng hướng dẫn cách thiết kế đơn giản nhất, dễ sử dụng nhất, đỡ tốn công sức người dùng.
Sách còn hướng dẫn một số control nên dùng khi thiết kế web: form, checkbox, radio, dropdown, … và cách sử dụng những control này hợp lý. Ngoài ra còn có 1 câu chuyện về "1 button đáng giá 500.000$" trong sách, về sự đắt giá của thiết kế UI. Chỉ thêm 1 nút vào trang web có thể tăng doanh thu lên đến 500.000$ trong 1 năm, các bạn có thể tìm hiểu đọc thử.
Quên, sau này thấy thằng nào thiết kế giao diện loằng ngoằng, rắc rối, nhiều bước khó sử dụng, hay cầm cuốn này đập vào mẹt nó nhé.
4. Rapid development (Đang đọc)
Ngày xửa ngày xưa, khi mà nhà nhà dùng waterfall, người người dùng waterfall, công việc của developer khá đơn giản, chỉ là code theo design. Thế rồi requirement ngày càng đổi xoành xoạch, các project waterfall chết hàng loạt, do đó người ta chuyển qua Agile.
Thế nhưng chuyển qua Agile, vẫn có vô số project IT bị chết. Cuốn sách này là một trong những cuốn sách đi đầu trong trào lưu Agile. Nó đưa ra những cách áp dụng Agile hợp lý, chỉ ra những sai lầm thường gặp trong quá trình sử dụng Agile như: Phình requirement, code xuống cấp, … cũng như đưa ra 1 số case study để học hỏi.
Bản thân mình chưa đọc, nhưng sau khi xem giới thiệu có lẽ sẽ tải về đọc thử.
5. Peopleware (Đã đọc hết)
Cuốn này mình chợt thấy khi đang tìm ebook trên it-ebook. Thấy review trên amazon có vẻ cao nên xem thử.
Cuốn sách này không nói gì về code, mà tập trung vào yếu tố con người – yếu tố quan trọng nhất, trong quá trình phát triển phần mềm. Nó đáng là cuốn sách gối đầu giường của các team leader, PM, manager. Một số nội dung trong sách: Tạo môi trường làm việc thuận lợi cho developer, cách estimate dự án, cách xây dựng một team mạnh và vững chắc, ….
Vì mình vẫn còn là junior developer nên đọc cuốn này cũng không thấy hữu dụng lắm, đọc cho biết + giải trí thôi, coi như chuẩn bị kiến thức cho con đường manager sau này =)).
Bản gốc: Blog Tôi đi code dạo.