“Premature optimization is the root of all evil.”
— Donald Knuth
Một khi có mục tiêu nào đó, chúng ta vẫn thường hay đồng ý với nhau rằng phải cố gắng hết sức để đạt được nó. Rằng cần phải quyết tâm cao độ, toàn tâm toàn ý, ngày qua ngày, tiến bộ từng chút một. Nhưng thế không có nghĩa là ta bán luôn cuộc đời mình cho mục tiêu ấy.
Ý “bán cuộc đời” ở đây là việc hiểu sai về sự “toàn tâm toàn ý” mang tính cực đoan, làm việc học tập ngày đêm, đánh mất cân bằng trong cuộc sống.
Có một dạo mình xem khá nhiều văn hoá phẩm tạo động lực, cổ vũ tinh thần làm việc năng suất, lối sống đầy mục đích. Cảm thấy cần phải “tối ưu hoá” cuộc sống của bản thân, rằng từng giây phút từ lúc thức dậy tới lúc đi ngủ phải là những thời gian hiệu quả, làm việc có mục đích. Và như một điều tất yếu, đôi khi mình lỡ “trôi đi” khỏi thứ ban đầu định làm để làm thứ khác, hay không làm gì cả, mình lại thấy vô cùng tội lỗi. Mặc dù nhiều lúc cái thứ khác mà mình làm ấy cũng không phải là vô bổ, mà thậm chí là còn đem lại khá nhiều điều có ích. Đang làm bài thì chán quá giở quyển sách ra đọc, rồi đọc miết. Đang tìm trên Google một vấn đề này, sau đó ngấu nghiến liền mấy trang Wikipedia liên quan. Đang nháp code nghĩ mãi không ra, lại vẽ vẩn vơ. Lúc nhận ra thì đã vẽ kín cả nháp, lại lật đật thay tờ khác rồi vỗ mặt quay về làm tiếp.
Mình vẫn yêu thích văn hoá năng suất, “hustle”, theo đuổi mục tiêu đầy năng lượng và sáng tạo của thế hệ trẻ. Chỉ có điều đã có một thời gian nó làm cho bản thân mình nghi ngờ nhiều thứ. Nó vẽ ra bản thân mình của hiện tại, vạch một đường thẳng đi tới người mà mình muốn trở thành. Và dạy rằng việc mình đi trên đúng đường thẳng ấy mới là “hiệu quả”, mới là con đường hạnh phúc.
Nhưng đã có nhiều thứ xảy đến, như cuộc sống hàng nghìn năm nay vẫn vậy, xô mình đi chệch khỏi phương hướng ban đầu. Đi chệch đi có phải là thất bại hay không? Đi lòng vòng mãi mới tới đích có phải là thất bại hay không? Văn hoá kia nói với mình rằng “Có”, trong khi bản thân mình cảm thấy rằng những lúc ấy cuộc đời mới bắt đầu trở nên thú vị. Thức dậy lúc 6h sáng, làm “morning routine”, vừa phát triển bản thân, vừa tạo cảm giác tích cực rằng mình đã đạt được nhiều điều ngay trong những giờ đầu tiên trong ngày – theo mình – là một điều tốt. Nhưng thỉnh thoảng, nhấc điện thoại lên gọi cho ai đó và tâm sự, đi chơi vẩn vơ không kế hoạch chỉ vì đó là một ngày đẹp trời, hay chỉ nằm và đọc sách cả một ngày cũng không phải là ý tưởng tồi tệ lắm.
Cuộc sống có mục đích, làm việc hiệu quả, và phấn đấu, tiến bộ mỗi ngày vẫn rất tuyệt vời. Nhưng nó cũng không cần phải lúc nào cũng cần phải được “tối ưu hoá”. Đôi khi cứ chân phương, giải quyết bằng những thuật toán bình thường, dễ đọc, dễ bảo trì, vẫn là tốt nhất.
Trong giới lập trình viên người ta vẫn thường hay nhắc nhở nhau rằng tối ưu hóa sớm là một trong những antipattern cần phải tránh. Nếu chúng ta tối ưu hóa hiệu suất trước khi thiết lập một kiến trúc hiệu quả, khả năng đọc của mã nguồn sẽ giảm, làm cho việc gỡ lỗi và bảo trì trở nên khó khăn hơn, đồng thời thêm các phần thừa vào code.
Tương tự như vậy, mình nghĩ rằng, việc dành thời gian cho bản thân, hỏi lại mình thực sự muốn gì khi trong quá trình phấn đấu cho một mục tiêu nhất định, cũng chính là cách xác định “một kiến trúc hiệu quả”. Việc biết rõ la bàn của bản thân quan trọng hơn nhiều so với việc cố gắng chạy thật nhanh tới một cái đích mà đôi khi, nó thực sự không đóng góp quá nhiều tới sự phát triển toàn diện của chính bạn.