Giải mã mã máy tính và hoạt động của não bộ
Ngôn ngữ và nhận thức
- Học lập trình máy tính tương tự như học một ngôn ngữ mới.
- Các nhà thần kinh học tại MIT phát hiện rằng việc đọc mã máy tính không kích hoạt các vùng não liên quan đến xử lý ngôn ngữ.
- Thay vào đó, nó kích hoạt mạng lưới đa nhu cầu, vốn được kích hoạt khi thực hiện các tác vụ nhận thức phức tạp.
Phương pháp nghiên cứu
- Các nhà nghiên cứu đã tiến hành thí nghiệm bằng hai ngôn ngữ lập trình là Python và ScratchJr.
- Những người tham gia thí nghiệm nằm trong máy quét fMRI, xem các đoạn mã và dự đoán đoạn mã đó sẽ thực hiện hành động gì.
- Kết quả nghiên cứu cho thấy hầu như không có phản ứng ở các vùng não liên quan đến ngôn ngữ, trong khi mạng lưới đa nhu cầu là nơi được kích hoạt chủ yếu.
Tác động của kinh nghiệm
- Các nhà nghiên cứu cho biết những người chuyên tâm vào lập trình có thể sẽ chuyên biệt hóa một số vùng não nhất định khi tích lũy thêm kinh nghiệm.
- Tuy nhiên, trong nghiên cứu hiện tại, sự chuyên biệt hóa này không xuất hiện ở những người có kinh nghiệm lập trình tương đối ít.
Kết luận
- Chưa có câu trả lời rõ ràng về việc nên dạy lập trình như một kỹ năng dựa trên toán học hay dựa trên ngôn ngữ.
- Các nhà giáo dục khoa học máy tính cần phát triển cách tiếp cận riêng để dạy lập trình hiệu quả nhất.
Ý kiến của GN⁺
- Mối quan hệ giữa coding và não bộ: Nghiên cứu này thú vị ở chỗ nó cho thấy coding kích hoạt những vùng não khác với xử lý ngôn ngữ. Điều này có thể mang lại một góc nhìn mới cho phương pháp giảng dạy lập trình.
- Cách tiếp cận giáo dục: Khi dạy coding, cần cân nhắc cả cách tiếp cận toán học lẫn ngôn ngữ. Điều này mở ra cơ hội cung cấp giáo dục phù hợp cho nhiều kiểu người học khác nhau.
- Tầm quan trọng của kinh nghiệm: Việc một số vùng não có thể trở nên chuyên biệt hơn khi kinh nghiệm lập trình tăng lên nhấn mạnh tầm quan trọng của học tập dài hạn và tích lũy trải nghiệm.
- Mạng lưới đa nhu cầu: Vì mạng lưới này tham gia vào nhiều tác vụ nhận thức khác nhau, coding có thể giúp phát triển năng lực giải quyết vấn đề phức tạp chứ không chỉ đơn thuần là học một kỹ năng.
- Hướng nghiên cứu trong tương lai: Cần có thêm nghiên cứu với các lập trình viên có nhiều kinh nghiệm hơn, và điều này có thể cung cấp dữ liệu quan trọng để tối ưu hóa giáo dục lập trình.
1 bình luận
Ý kiến Hacker News
Không có liên kết đến bài báo được cung cấp, nhưng có lẽ là bài này. Các nhà nghiên cứu đã cho các lập trình viên xem các đoạn mã và yêu cầu họ dự đoán đoạn mã đó sẽ hoạt động như thế nào.
Theo bài viết được liên kết, một số vùng nhất định của não sẽ được kích hoạt khi đọc mã, và đó là những vùng dùng để giải quyết cẩn thận các vấn đề không quen thuộc. Tuy nhiên, điều này có thể không khái quát được với những người có hơn 30 năm kinh nghiệm lập trình.
Lex Fridman gần đây đã phỏng vấn nhà ngôn ngữ học Edward Gibson, trong đó có đề cập rằng việc đọc mã kích hoạt những phần não khác với ngôn ngữ.
Những nỗ lực nhằm biến ngôn ngữ lập trình thành giống ngôn ngữ của con người là một sai lầm sơ đẳng. Ngôn ngữ lập trình chủ yếu gần với việc xây dựng một cấu trúc nào đó hơn, và điều này khác với giao tiếp.
Sự khác biệt giữa ngôn ngữ lập trình và ngôn ngữ con người là lập trình gần với việc tạo ra một cấu trúc nào đó hơn. Ngôn ngữ con người có thể được dùng cho giao tiếp với nhiều mục đích khác nhau.
Sẽ thú vị hơn nếu so sánh hoạt động của não giữa việc đọc mã và đọc ngôn ngữ con người đã được hình thức hóa, hoặc giữa việc đọc ngôn ngữ hình thức và ngôn ngữ phi hình thức.
Điều giúp tôi nhiều nhất để viết mã sạch là học một lớp về viết học thuật. Việc dự đoán mã giống với các tác vụ lập kế hoạch hơn là với trung tâm ngôn ngữ.
Tôi đọc mã của các dự án mã nguồn mở trên kênh YouTube. Nó giống với việc đọc nhạc bằng thị giác. Các nhà nghiên cứu hầu như không thấy phản ứng nào ở vùng ngôn ngữ.
Tôi chủ yếu làm việc tại nhà, nghe nhạc và hát khi lập trình. Nhưng khi đọc thì tôi không thể hát. Khi viết mã thì có thể.
Đọc mã khác với đọc văn xuôi hay làm toán. Nó giống như giải câu đố. Bạn phải kết nối và diễn dịch nhiều thứ theo thời gian thực.
Đọc mã giống như nhìn vào một bức ảnh chụp các bánh răng và bị hỏi rằng "bánh răng A quay theo chiều kim đồng hồ hay ngược chiều kim đồng hồ". Cảm giác như đang nghiên cứu một cơ chế.
Khi đọc mã, tôi không nghe thấy giọng người dẫn chuyện trong đầu.