Bài viết guest post của bạn Thành Nguyễn

Tạo ra sự ràng buộc sẽ giúp code có quy chuẩn và dễ debug hơn, ví dụ như quy định kế thừa class, quy định về tham số và kiểu dữ liệu truyền vào hàm. Phá vỡ ràng buộc tạo ra linh động, ví dụ không kế thừa class thì lỏng lẻo hơn chỉ cần interface, hoặc phá luôn interface và chuyển qua map/dict/hash table, không ràng buộc chặt chẽ tham số truyền vào hàm thì variable arguments, không ràng buộc kiểu dữ liệu thì generics, template. Tăng cường code reuse, nhưng lại đánh đổi bằng coulping. Thiết kế code làm sao để ràng buộc chỗ này, linh động chỗ kia, được cái này, phải đánh đổi cái kia, là một vấn đề khó.

Dù là vòng lặp, hàm hay mảng, dù là bất kỳ một công nghệ nào, đều có thể vận dụng linh hoạt như nước chảy từ trên xuống dưới, gặp vách đá thì nước luồn lách sang chỗ khác. Kỹ thuật lập trình càng cao thì càng có nhiều sự lựa chọn, càng biến hóa.

Viết code in ra trái tim lấp lánh để tặng bạn gái lại còn khoe trên nhiều group lập trình, nhưng bạn gái không care, bạn gái thích đi ăn và đi chơi hơn. Viết code nên tập trung vào những giá trị đích thực, ngữ cảnh business là thiết thực, requirements là thiết thực, sự chuyên sâu và những cái hay của giải pháp là thiết thực.

Tôn trọng lý thuyết, không được xem thường nó. Quá nhiều bạn trẻ chỉ code theo hướng dẫn như robot nhưng quên lãng cơ sở lý thuyết đi kèm. Cơ sở lý thuyết chủ yếu từ sách và references từ trang chủ. Sách là nơi cung cấp lý thuyết vững chắc, được tổng hợp bởi những chuyên gia. Không phải ai cũng có thể lĩnh hội được từ sách (vì chưa đủ trình, chưa đủ nội lực, chưa đúng thời điểm để lĩnh hội).

Tôn trọng và học hỏi tiền nhân, học hỏi những thành quả đã có trên thế giới trước khi bắt tay sáng tạo một cái gì đó mới mẻ.