Khi lập trình viên... tập làm văn

4 months ago Writing

Bạn có thích viết tài liệu không? Hay thích viết mã hơn? Khi nhận yêu cầu, bạn thường suy nghĩ luôn giải pháp, rằng mình sẽ làm như này, viết như này, từng dòng if...else hiện ra một cách tự nhiên trong đầu, hay nghĩ về nghiệp vụ, những phần có liên quan hoặc thay đổi có ảnh hưởng gì đến cái hiện có trong hệ thống không?

Từ lúc mới biết lập trình, tôi không có khái niệm về viết tài liệu, thậm chí đọc tài liệu cũng không. Tất cả những gì làm là đọc bài viết từ người khác, được họ chỉ cho từng bước làm thế này, sau đó chỉ cần làm theo là được. Nếu gặp khó khăn thì tìm kiếm trên mạng không mất quá nhiều thời gian. Tóm lại là chỉ cần đủ, không cần thừa, còn lại nhờ thời gian tích luỹ thêm kinh nghiệm cho ta.

Điều đó đeo bám một thời gian dài sau đó. Đọc đã lười, viết còn lười hơn. Nhiệm vụ của lập trình viên là gì? Là viết ra những đoạn mã thay đổi thế giới chứ không phải là cặm cụi cho ra chữ như thời học sinh thực hành với môn ngữ văn. Nó tốn quá nhiều thời gian, mà hơn hết, trong quá khứ, mình còn ghét môn văn nữa chứ! Vì thế tôi thường bắt tay vào viết mã khi nhận được yêu cầu làm tính năng mới. Còn gì tuyệt vời hơn khi giải được bài toán hóc búa mà mới ít phút trước còn đang cắn môi?

Sau này khi có nhiều kinh nghiệm làm việc, tôi bắt đầu suy nghĩ đến cách làm thế nào để viết mã sao cho dễ hiểu, dễ bảo trì, cho dù một thời gian sau quay lại ít nhất đọc vẫn hiểu. Ở một khía cạnh nào đó, tôi cải thiện được một chút kỹ năng của mình. Nhưng cho dù cố gắng bao nhiêu thì nhiều lần đọc lại đoạn mã chỉ mới viết ra cách đó không lâu cũng tốn kha khá thời gian để hồi tưởng lại tại sao lúc đó lại làm như thế.

Giao tiếp là một vấn đề tưởng chừng dễ nhưng lại khó. Nhớ lại xem bạn đã từng nói bao nhiêu lần về một vấn đề để cho đồng nghiệp của mình hiểu? Hoặc khi được yêu cầu trình bày ý tưởng ra giấy hay lên bảng trắng, phải thử đi thử lại bao nhiêu lần tẩy xoá để mọi người có thể thốt ra: "À hoá ra là như vậy"? Trong suốt thời gian đi làm, đi họp, tôi chứng kiến nhiều cuộc tranh luận không đi đến hồi kết, kéo dài và ai nấy đều mệt mỏi khi không hiểu hết ý của nhau. Điều đó gây ra một sự lãng phí rất lớn về thời gian và cả tiền bạc.

Khi nghiêm túc với công việc viết blog, tôi dần nhận ra sự thay đổi rõ rệt trong tư duy của mình, về tư tưởng và cả cách suy nghĩ về một vấn đề so với trước đó. Không còn vùi đầu vào viết mã sau khi tiếp nhận yêu cầu, không suy nghĩ bằng những dòng if...else cùng với thuật toán mang đầy tính thử thách. Thay vào đó diễn đạt mọi thứ dưới dạng văn bản, nghĩ chậm lại, làm sáng tỏ vấn đề, những gì có liên quan, đánh giá mức độ hiểu biết và rất nhiều thứ khác. Viết mã không còn quá quan trọng, vấn đề là tại sao nên viết những dòng đó.

Thực tế viết mang lại nhiều lợi ích bất ngờ. Việc viết (nhất là viết học thuật, viết phân tích, viết luận) buộc người viết phải tổ chức ý tưởng, sắp xếp logic, lập luận, lựa chọn từ và cấu trúc, rèn luyện kỹ năng phân tích & tư duy phản biện. Nhiều nghiên cứu cho ta thấy kết quả đó. Mới đây nhất là bài báo nghiên cứu tác động của kỹ năng ngôn ngữ và tư duy phản biện đến khả năng viết của sinh viên không chuyên tiếng Anh (hệ đại trà) tại Học viện Chính sách và Phát triển. Kết quả chỉ ra rằng sinh viên sở hữu nền tảng ngôn ngữ vững chắc, bao gồm từ vựng và ngữ pháp, cùng với khả năng tư duy phản biện tốt, có xu hướng viết bài luận mạch lạc và thuyết phục hơn.

Viết ra những dòng này vì gần đây tôi được giao nhiệm vụ cơ cấu lại cơ sở hạ tầng kiến trúc hệ thống tại nơi làm việc. Công việc chủ yếu là tái thiết lập lại một số máy chủ, dịch vụ chạy trong máy chủ và viết tài liệu cho chúng. Nhờ đó hệ thống dần trở nên minh bạch hơn trong mắt người khác. Nhiều người cảm thấy không còn mù mờ về sự tồn tại của chúng. Với cả sau này nói chuyện thì còn có cái mang ra mà đối chứng.

Tóm lại bạn sẽ không nhận ra được giá trị của một điều gì đó nếu không thực sự bắt tay vào làm. Giao tiếp là một điều tưởng chừng dễ nhưng lại khó. Hầu hết mọi rắc rối phát sinh do chúng ta không hiểu nhau, điều đó tiêu tốn rất nhiều thời gian và tiền bạc. Vì vậy nếu muốn cải thiện kỹ năng diễn đạt vấn đề, thuyết phục người khác thì hãy bắt đầu viết ngay từ hôm nay!