In trang

Lập trình tác động đến não bộ của chúng ta như thế nào?
Cập nhật lúc : 09:41 03/08/2018

Giống như nghệ thuật có thể định hình tâm trí của bạn bằng nhiều cách khác nhau, lập trình cũng ảnh hưởng đến cách bạn nghĩ - có lẽ theo cách mà bạn không mong đợi.

Code định hướng các mô hình tâm trí của bạn

Điều này có vẻ như không "công bằng"? Sau tất cả, hầu hết chúng ta đều biết đến ngôn ngữ lập trình đầu tiên tại trường học và chúng ta không có cơ hội tự lựa chọn ngôn ngữ lập trình cho mình. Tôi - tác giả bài viết, bắt đầu bằng ngôn ngữ lập trình C. Những người lớn tuổi hơn tôi có thể bắt đầu với FORTRAN, COBOL hoặc BASIC. Còn bạn, chắc hẳn là một lập trình viên mới vào nghề? Bạn có thể bắt đầu bằng Java hoặc Python.

Chẳng còn nghi ngờ gì: Thiết kế của ngôn ngữ lập trình định hình cách bạn suy nghĩ. Edsger Dijkstra, một trong những nhà khoa học máy tính có ảnh hưởng nhất trong lịch sử, cho biết điều này khi ông nói:

"Các công cụ mà chúng ta sử dụng có ảnh hưởng sâu sắc (và liên quan) tới thói quen suy nghĩ hàng ngày và do đó, ảnh hưởng đến về khả năng tư duy."

Edsger Dijkstra tiếp tục nói:

"Việc sử dụng COBOL làm tê liệt tâm trí. Do đó, việc giáo dục nó nên được coi là một tội phạm hình sự."

Và:

"Trên thực tế, không thể dạy lập trình tốt cho những sinh viên đã từng tiếp xúc với BASIC: như các lập trình viên tiềm năng đã bị tổn thương về mặt tinh thần vượt quá khả năng phục hồi hy vọng."

Theo một ý nghĩa nào đó, tất cả ngôn ngữ lập trình đều có khả năng tương đương với ngôn ngữ lập trình hàm đa mục đích (Turing-complete). Nhưng theo một ý nghĩa khác, việc làm chủ một ngôn ngữ có thể dẫn tới sự phá hoại một ngôn ngữ khác. Lập trình Javavà lập trình Python là hai con thú khác nhau, họ tiếp cận code cũng bằng hai cách hoàn toàn khác nhau.

Nói cách khác, các mô hình và thành ngữ của ngôn ngữ lập trình đầu tiên ảnh hưởng và thậm chí chỉ ra cách bạn suy nghĩ về cấu trúc dữ liệu, các thuật toán, v.v...

Thật vậy, thực tế nó có thể lấy code ẩn danh và xác định ai đã viết nó dựa trên cách tiếp cận nhiệm vụ và cách viết code. Nhiệm vụ càng khó khăn, "de-anonymize" càng dễ dàng.