# 58: Thông điệp cho tương lai

Có lẽ bởi hầu hết là những người thông minh, trong tất cả những năm tôi dạy và làm việc cùng với các lập trình viên, có vẻ như phần đông nghĩ rằng vì những vấn đề họ gặp phải khá khó khăn nên các giải pháp cũng cần phải phức tạp theo với mọi đối tượng (thậm chí có thể là chính họ một vài tháng sau khi hoàn thành code).

Tôi nhớ một câu chuyện với Joe, một sinh viên lớp cấu trúc dữ liệu của tôi, đã đến để cho tôi xem những gì anh ấy đã viết. Anh ấy nói rằng “Betcha không thể đoán nó làm gì!

Bạn nói đúng”, tôi đồng ý ngay mà không cần dành quá nhiều thời gian đọc ví dụ của anh ấy và tự hỏi làm thế nào để giải thích dễ hiểu một vấn đề quan trọng. “Tôi chắc chắn bạn đã làm việc chăm chỉ. Tuy nhiên, tôi tự hỏi, liệu bạn có quên mất một điều quan trọng. Nói đi, Joe, bạn có cậu em trai nào không?

Có chứ. Chắc chắn rồi! Phil! Em ấy đang theo học lớp khởi đầu của bạn. Nó cũng đang học lập trình!” Joe tự hào tuyên bố.

Thật tuyệt” tôi trả lời. “Tôi tự hỏi liệu cậu ấy có thể đọc hiểu đoạn code này.

Không đời nào!” Joe nói. “Đây là một đoạn code khó!

Giả sử,” tôi nói, “đoạn code này thực sự đi vào hoạt động vài năm sau và Phil được thuê để thực hiện cập nhật. Và xem bạn đã làm gì này?” Joe nhìn tôi chớp mắt. “Chúng ta đều biết rằng Phil thực sự thông minh, phải không?” Joe gật đầu. “Và dù ghét phải nói điều này, nhưng tôi cũng khá thông minh!” Joe cười toe toét.

Vì vậy, nếu tôi không thể hiểu những gì bạn đã làm và cậu em thông minh của bạn có vẻ cũng sẽ chật vật với nó, thì những gì bạn đã viết còn nghĩa lý gì nữa đây?” Joe có vẻ đã có cái nhìn khác với đoạn code của anh ấy. “Thế này thì sao,” tôi gợi ý, “Hãy coi mỗi dòng code bạn viết như thể một tin nhắn gửi đến ai đó trong tương lai- có thể là em trai của bạn. Hãy giả vờ bạn đang giải thích cho người ấy cách để giải quyết vấn đề khó nhằn này.

Đây có phải là những gì bạn muốn không? Rằng trong tương lai, một lập trình viên nào đó sẽ thấy đoạn code này của bạn và thốt lên, “Wow! Thật tuyệt vời! Tôi hoàn toàn hiểu được những gì được thực hiện ở đây và tôi ngạc nhiên về sự thanh lịch- không- sự đẹp đẽ của đoạn code này. Tôi sẽ cho những người khác trong nhóm xem. Quả là một kiệt tác!

Joe, bạn nghĩ liệu bạn có thể viết code giải quyết vấn đề khó khăn này đẹp đẽ như một lời ca không? Chính xác nó sẽ giống như một giai điệu bắt tai. Tôi nghĩ rằng bất cứ ai có khả năng đưa ra giải pháp phức tạp như cái bạn có ở đây cũng có thể viết một cái gì đó đẹp đẽ. Tôi tự hỏi liệu tôi có nên bắt đầu chấm điểm cả cái đẹp không? Bạn nghĩ sao, Joe?

Joe nhận lại đoạn code của anh ấy và nhìn tôi với một nụ cười thấp thoáng trên môi. “Tôi hiểu rồi, thưa giáo sư, tôi sẽ khiến thế giới tốt đẹp hơn cho Phil. Cảm ơn.