Viết Bừa Bãi - nói dối e blog

Viết Bừa Bãi

Những năm gần đây, thư từ độc giả gửi đến vẫn thường xuyên như cũ, dù cuốn sách tôi viết từ khá lâu rồi đã ngưng tái bản. Có nhiều bạn trẻ than phiền rằng không thể tìm mua được bản in, thậm chí có người còn mong tôi trực tiếp gửi tặng một quyển. Tôi chỉ biết cảm kích mà đáp lại rằng bản thân cũng chẳng còn lưu giữ quyển nào nữa. Có lẽ nhà xuất bản cũng không còn ý định in lại nữa rồi. Nếu thực sự không thích đọc bản điện tử, các bạn có thể đến thư viện để photo lại một bản dùng tạm. Thực ra những người từng trải qua việc viết sách kỹ thuật đều hiểu rõ rằng đây không phải là công việc dễ dàng, cũng không thể coi đó là nguồn thu nhập chính. Công sức bỏ ra thường không tương xứng với lợi ích vật chất nhận được. Giá trị thực sự có lẽ nằm ở việc chia sẻ tri thức và mở rộng thêm những mối quan hệ mới.

Nói về cuốn sách năm xưa, bản thân tôi cũng không thực sự hài lòng. Khi viết vào năm 2004, tôi chỉ có thể tổng kết lại những kinh nghiệm tích lũy được trước năm 2003, vẫn còn thiếu sót nhiều mặt. Lúc mới hoàn thành tự đánh giá 70 điểm, nhưng càng về sau càng thấy chỉ đáng 60 điểm là cùng - coi như vừa đủ qua môn. Những năm gần đây, trong quá trình làm các dự án thực tế, tôi luôn nhen nhóm ý định viết một cuốn sách mới. Tuy nhiên, dù đã thử dịch một cuốn sách về ngôn ngữ C nhưng phải bỏ dở vì độ dày “khủng khiếp” của nó. Một số đồng nghiệp khuyên tôi nên tự viết thay vì dịch. Thực ra tôi cũng từng nghĩ đến chuyện đó, nhưng khi lật qua lật lại các tài liệu hiện có, đặc biệt là cuốn “Giáo trình ngôn ngữ C” kinh điển của giáo sư Tan, tôi chỉ biết im lặng. Nghe nói nhiều người muốn viết lại một cuốn mới, nhưng tôi quyết định không tham gia vào cuộc đua này nữa - làm sao mà vượt qua được bộ đôi Kernighan & Ritchie với tác phẩm “The C Programming Language” đây?

Thực tế mà nói, việc viết về ngôn ngữ lập trình chỉ là vấn đề thứ yếu. Ngoài C++, tôi nghĩ chẳng có ngôn ngữ nào cần đến hàng loạt sách hướng dẫn làm rõ nữa. Cốt lõi vấn đề nằm ở chỗ sử dụng ngôn ngữ như một công cụ để bàn luận về những vấn đề sâu sắc hơn. Vấn đề không phải là chúng ta không sử dụng thành thạo ngôn ngữ, mà là chưa tìm ra cách giải quyết bản chất của sự phức tạp.

Chúng ta có nhiều phương pháp tiếp cận để giải quyết vấn đề, nhưng không tồn tại một “bí kíp” vạn năng nào. Tuy nhiên, bất kỳ lập trình viên nào có trên 10 năm kinh nghiệm, miễn là không rơi vào vòng xoáy lặp lại công việc cũ mỗi ngày, chắc chắn sẽ hình thành được hệ thống phương pháp riêng. Những điều này hoàn toàn xứng đáng được chia sẻ với cộng đồng - từ thói quen lập trình, phong cách mã hóa, các mẫu thiết kế thường dùng đến những lỗi sai cố ý tránh né.

Trong ba năm trở lại đây, tôi đã viết hàng chục nghìn dòng mã bằng ngôn ngữ C, suy ngẫm rất nhiều vấn đề. Cộng thêm 19 năm kinh nghiệm (từ 1991 đến 2010) sử dụng C/C++, cuối cùng cũng cảm thấy đã chạm đến một chút bản chất của vấn đề. Thở dài một tiếng, dự án gần đây quá bận rộn khiến tôi chưa thể bắt tay vào viết. Nhưng sau khi hoàn thành, tôi nhất định sẽ tổng kết lại những kinh nghiệm tích lũy được. Thoát khỏi những lớp vỏ hào nhoáng của các ngôn ngữ hiện đại, dùng chính công cụ C tưởng chừng thô sơ để xây dựng nên những dự án phức tạp đòi hỏi sự hợp tác của nhiều người, đó là một thử thách vô cùng thú vị.

Bản chất của vấn đề thường không nằm ở việc bạn có tìm được cấu trúc tinh xảo nào để diễn đạt hoàn hảo nó hay không, mà là ở chỗ bạn có thể tìm ra cách tiếp cận đơn giản, dễ hiểu nhất, giúp đồng đội không phải gánh thêm gánh nặng học tập mới. Đó chính là đạo lý “đại xảo nhược truật” (cái khéo lớn giống như vụng về) mà cổ nhân từng nói.

0%