Lập trình viên: Một nghề chân chính, một nghề cần vinh danh?
Ở Việt Nam, chưa ai viết sách về Lập trình viên (gọi bình dân là coder) và ca ngợi nghề lập trình thì phải? Có chăng chỉ là một vài trang ca ngợi hời qua quýt, vài bài ca cẩm hời hợt, cùng lắm là một bộ phim nhàn nhạt có tên “Lập trình trái tim” vốn chả dính dáng gì tới nghề Lập trình.
Dĩ nhiên ở Mĩ thì khác hẳn: phim làm về các lập trình viên rất rất thú (như phim về Bill Gates hay Mark Zuckerberg chẳng hạn), sách viết về lập trình viên, lập trình viên tự viết, hay viết cho lập trình viên thì rất nhiều.
Thử lấy ví dụ về vụ FlappyBird ầm ĩ gần đây thì thấy sự khác nhau rất rõ: trong khi báo chí trong nước chỉ biết xào đi xáo lại vài mẩu tin cũ từ tạp chí nước ngoài, thì hàng loạt hãng tin có tiếng như CNN, Forbes đưa tin, phỏng vấn trực tiếp; thậm chí tờ báo rất oách Rolling Stones thuê hẳn một cây viết có tiếng David Kushner viết thật chi tết về một chân dung coder thứ thiệt đầy đam mê và sức trẻ. Một coder học tập, lớn lên và thành danh ở chính quê hương Hà Đông của mình, nhưng lại được vinh danh ở những chỗ trang trọng nhất trên những diễn đàn nổi tiếng nhất của miền đất hứa của dân Lập trình.
Cho đến giờ, coder ở Việt Nam phần nhiều chỉ coi mình là những “cu-li” của thời đại số, coi nghề lập trình chỉ như chỗ ghé chân thoảng qua trong sự nghiệp. Đấy quả là một não trạng đầy u ám và không nên duy trì lâu trên một quốc gia muốn lấy CNTT làm “bàn đạp” để tiến ra thế giới. Có thể những Nguyễn Hà Đông sẽ giúp cải thiện phần nào tình hình, nhưng những cánh én ấy chỉ mang lại những cảm hứng, chứ để định hình cả một nghề nghiệp tử tế thì còn nhiều việc phải làm và phải chờ một thời gian nữa.
Chú Bob (“Uncle Bob”, tên “đường phố” của Robert C. Martin, một tay tổ trong giới lập trình, tác giả của hàng loạt tập sách thuộc loại gối đầu giường cho coder, đồng tác giả của Tuyên ngôn Agile (Manifesto for Agile Software Development) trứ danh – một văn bản định hình lại văn hóa lập trình hơn một thập kỉ qua) là người nhiệt thành đến cực đoan trong việc thúc đẩy một quan điểm “nâng tầm” nghề lập trình, đòi hỏi cả coder lẫn những người khác phải nhìn nhận lập trình như một nghề chuyên nghiệp đáng trân trọng, và phải đầu tư nghiêm túc, từ chuyên môn tới trách nhiệm và đạo đức. Cuốn sách mới nhất của Chú Bob, cuốn “Clean Coder: A Code Of Conduct for Professional Programmers” hiển hiện rất rõ như là một “kinh điển” mà một coder cần phải mang theo, từ lúc còn tập tọe viết “Hello World” cho tới lúc đã 10 năm kinh nghiệm lập trình. Với cuốn sách này, Chú Bob tiếp tục thể hiện mình là một lãnh đạo tư tưởng (thought leader) xứng đáng của giới viết mã.
Chương 1 bắt đầu như thể để nối liền tựa sách: Professionalism. Chú Bob bắt đầu thảo luận trước hết về đạo đức nghề nghiệp, những điều suy nghĩ nghiêm túc về trách nhiệm của một coder. Trong tiểu mục có lẽ là quan trọng nhất của chương, lấy tựa kiểu như một tín điều trong Kinh thánh “First, Do No Harm”, Chú Bob chỉ rõ các quy tắc và yêu cầu cụ thể đối với một coder thứ thiệt, như: không để lại bug, viết code phải sạch mã đến mức QA không thể tìm thấy gì, coder phải biết rõ là code mình chạy tốt chứ không cần nhờ đến tester hay ai khác “kiểm thử” giúp. Đó là những quan điểm nhất quán được Chú Bob đặt như là một trong những nền tảng đạo đức quan trọng nhất của nghề viết mã. Hai chương tiếp theo tiếp tục làm rõ những tình huống cần nói Không và Có, như là cụ thể hóa các ranh giới đạo đức nghề nghiệp mà một coder cần phải vạch ra.
Năm chương 4, 5, 6, 7, 8 bàn kĩ về các khía cạnh kĩ thuật mà một coder phải thành thục hằng ngày: viết mã, kiểm thử, đảm bảo chất lượng, và luyện tập nâng cao tay nghề liên tục. Thông điệp của những chương này hẳn là rất rõ: coder cần đảm bảo tay nghề luôn vững và tăng trưởng liên tục, trong khi luôn tạo ra những đoạn mã chất lượng cao và sạch lỗi (clean code), những phần mềm có chất lượng tự thân và không làm phiền QA. Chương 9 là một chương hết sức thú vị về quản lí thời gian, từ chuyện họp hành, tới những điều nhỏ nhặt nhưng gần gũi và không kém phần quan trọng như chuyện uống cà phê, chuyện tập trung khi làm việc hay nghỉ ngơi như thế nào. Nếu được góp ý với Chú Bob, chắc là tôi thích gọi chương này cùng với chương bàn về áp lực (Ch11: Pressure) là “Quản lí năng lượng” (managing energy) thay vì tách ra và gọi riêng như tác giả đã dùng. Những điều này cực kì quan trọng đối với một coder, để thoát ra khỏi cái định kiến về một giới thường hay ngồi xó văn phòng, đầu to mắt cận da bọc xương ít giao tiếp xã hội. Trong quan điểm của Chú Bob, coder hoàn toàn là những người bình thường như bao người khác.
Sau một chương hơi kĩ về kĩ thuật ước tính (Estimation), các chương tiếp theo tác giả bàn quanh chuyện cộng tác và làm việc trong nhóm; có thể coi như những dẫn giải kĩ lưỡng về nguyên lí đã từng được viết cô đặc trong Tuyên ngôn Agile: ”Individuals and interations over process and tools”, và “Customer collaboration over contract negotiation”, sự khác biệt ở đây là tác giả chỉ rất rõ cái “How” cho những độc giả còn chưa quen Agile Software Developent (Phát triển Phần mềm Linh hoạt). Chú Bob kết thúc phần chính của quyển sách của mình với từ khóa quan trọng nhất cho một trào lưu hậu-Agile: :Software Craftsmanship (Nghề Thủ công Phần mềm) với các chủ điểm ngắn gọn về kèm cặp(mentoring), học việc (apprenticeship) và một nghệ nhân phần mềm (craftsman). Phần phụ lục có khi lại là phần đắc địa với nhiều người nhất khi Chú Bob liệt kê đầy đủ “dao kéo” (tools) cho một coder thứ thiệt như ông đã nhắc tới trong suốt cả cuốn sách.
Được viết với một văn phong giản dị và dễ hiểu, những từ khóa không mấy hấp dẫn như “trách nhiệm”, “đạo đức”, “những điều răn” … được Chú Bob dẫn nhập một cách có lí có tình và thật nhiều hướng dẫn thi triển cụ thể. Cộng thêm những suy tư cá nhân của riêng một người có thâm niên gõ bàn phím được dàn đầy trong các trang sách, với các coder chân chính “The Clean Coder” xứng đáng là cuốn sách cần đọc lòng và ngẫm nghĩ thường xuyên.
(Hanoiscrum)
Có thể bạn quan tâm:
Hướng dẫn lập trình nhận dạng hình ảnh với Opencv
Sách hướng dẫn lập trình game trên Android, Beginning Android 4 ...
Tài liệu lập trình, tài liệu triển khai CRM, tài liệu triển khai ERP, tài ...
Begining Android, sách hướng dẫn lập trình Android cho người mới ...
Tài liệu lập trình mạng xã hội với Open Social
Giá gia công phần mềm, giá viết ứng dụng, giá thiết kế website
Thực tập lập trình C++ và Objective-C
IoT là gì? ứng dụng của IoT trong cuộc sống hiện đại
The Tar Pit – Vũng “đen” trong nghề lập trình
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>