Phân biệt kỹ thuật lập trình và nghệ thuật lập trình
Đây là cách phân biệt kỹ thuật lập trình và nghệ thuật lập trình, và sự khác nhau giữa kỹ thuật và nghệ thuật nói chung.
Kỹ thuật lập trình là gì?
Kỹ thuật lập trình (programming techniques) nhấn mạnh vào cách làm đúng và làm được:
Các Đặc điểm
-
Dựa trên quy tắc, cấu trúc, thuật toán, khuôn mẫu (patterns).
-
Có thể dạy, học, đo, kiểm thử.
-
Tập trung vào:
-
Cú pháp ngôn ngữ
-
Giải thuật (algorithm)
-
Tối ưu hoá hiệu năng
-
Cấu trúc dữ liệu
-
Quy trình phát triển phần mềm
-
Debug, kiểm thử, viết code sạch
-
Ví dụ
-
Áp dụng nguyên tắc SOLID.
-
Viết code theo mô hình MVC.
-
Dùng stack, queue, tree, graph.
-
Viết sort O(n log n).
Tóm lại: Kỹ thuật lập trình = “làm đúng, làm chắc, làm được việc.”
Nghệ thuật lập trình là gì?
Nghệ thuật lập trình (the art of programming) hướng đến cách làm hay, làm tinh tế, làm đẹp, làm tối giản.
Các Đặc điểm
-
Nhấn mạnh cảm quan, tư duy, phong cách cá nhân.
-
Tìm cách giải quyết đẹp, tinh gọn, thanh lịch (elegant).
-
Khả năng tư duy sáng tạo, chọn giải pháp tối ưu nhất, nhìn bài toán theo góc độ mới.
Ví dụ
-
Chọn thuật toán không chỉ chạy đúng mà còn đẹp và tinh tế, dễ đọc.
-
Giải quyết bài toán bằng cách đổi mô hình tư duy, chứ không chỉ cắm đầu code.
-
Thiết kế code tạo cảm giác “rõ ràng ngay từ cái nhìn đầu tiên”.
-
Tạo ra API dễ dùng đến mức người khác “mỉm cười” khi dùng.
Tóm lại: Nghệ thuật lập trình = “làm hay, làm đẹp, làm thông minh.”
Giống như Donald Knuth nói:“Lập trình là nghệ thuật kết hợp giữa logic và sự sáng tạo.”
3. Kết luận cô đọng
Kỹ Thuật đưa bạn đến mức làm được.
Nghệ thuật đưa bạn đến mức làm xuất sắc.
