Học Lập trình cũng giống như học ngoại ngữ

Ngày đăng: 22/08/2018   -    Cập nhật: 27/09/2018

hoc-ngon-ngu-lap-trinh-giong-nhu-hoc-ngoai-ngu-1


Tôi đã nghe nói rằng ngữ pháp và cú pháp của các ngôn ngữ lập trình cũng giống như ngoại ngữ, nhưng đối với tôi, các khóa học ngoại ngữ vẫn dễ hơn khóa học về lập trình. Điều đó đã thúc đẩy tôi chọn học tiếng Ý ở trường đại học, đấy là một lựa chọn không thực tế nếu muốn tìm tìm kiếm một công việc tốt, nhưng tôi tin rằng nó đã giúp tôi rất nhiều khi tôi quyết định học Java.

Điều này không có nghĩa là bạn phải học "ngoại ngữ" tốt mới có thể kết nối với học lập trình tốt, nhưng đây để trình bày một cách chung cho việc học lập trình cũng tương tự như học ngoại ngữ (bạn sẽ thể thấy điều này hữu ích cho việc học ngoại ngữ!)
 

Học ngoại ngữ


Khi chúng ta bắt đầu học ngoại ngữ, ngay lập tức, chúng ta nắm bắt những điều có thể dịch trực tiếp, như “ciao” cho “hello”. Chúng ta bắt đầu học các quy tắc và các khái niệm như các đại từ khác nhau giúp chúng ta ghép các phần khác lại với nhau: Có thể nói "un cane" cho "Một con chó" và "il cane" cho "con chó".

Chúng ta học cách kết hợp động từ cho phép chúng ta tạo ra câu, như "Ho un cane" (tôi có một con chó) và "Hai un cane” (Bạn có một con chó). Những mảnh ghép này hoạt động như những viên gạch mà chúng ta có thể xếp chồng lên nhau để tạo thành các cấu trúc. Khi chúng ta có thêm nhiều viên gạch, chúng ta có thể xây dựng các cấu trúc lớn hơn và sáng tạo hơn.

Trong giai đoạn đầu của việc học ngoại ngữ, đôi khi chúng tôi muốn có thể nói điều gì đó mà chúng ta chưa học ngữ pháp. Vào ngày đầu tiên của tôi về tiếng Ý, tôi đã học cách tự giới thiệu mình với "Mi chiamo Jo" (tên tôi là Jo), nhưng tôi chưa học được cách liên hợp động từ hoặc xử lý đại từ phản xạ. Tôi chấp nhận cụm từ này như một cụm từ có ý nghĩa cụ thể, nhưng những viên gạch riêng lẻ thì vẫn chưa có ý nghĩa.

Không hiểu nghĩa những viên gạch thì sẽ không thấy thoải mái (tôi thấy nó rất khó chịu), nhưng với thời gian, chúng ta học cách phá hủy cấu trúc này và sử dụng gạch của chúng một cách sáng tạo hơn trong cấu trúc của chúng ta.

Chúng ta có thể ưu tiên một số mẫu câu nhất định trong quá trình này và tránh sử dụng tất cả cùng với nhau, nhưng chúng ta càng trải nghiệm các cấu trúc, cả mới và cũ, chúng ta càng trở nên thoải mái hơn với cách sử dụng nó.

Sự lưu loát của chúng ta là thước tiến bộ trong học ngoại ngữ. Đó là, khả năng và sự tự tin của chúng ta để sử dụng từ và cấu trúc (mà chúng ta có thể không hoàn toàn hiểu được) mới để giao tiếp.
 

Học một ngôn ngữ Lập trình


Sự khác biệt đáng kể nhất giữa việc học một ngôn ngữ lập trình và học một ngoại ngữ là bản chất trừu tượng của các ngôn ngữ lập trình.

Tôi nghĩ bằng tiếng Anh theo cách mà người Ý nghĩ bằng tiếng Ý, vì vậy việc lập bản đồ các ngôn ngữ này với nhau là tự nhiên. Tôi không suy nghĩ như một chiếc máy tính, vì vậy giai đoạn đầu của việc học một ngôn ngữ máy tính sẽ rất khác.

Chúng ta phải chấp nhận rằng đôi khi chúng ta có thể không hiểu tại sao chúng ta phải học một số khái niệm hoặc thậm chí chẳng hiểu lý do tại sao nó tồn tại.

Tuy nhiên, chúng ta vẫn có thể tập trung vào những mảnh ghép. Chúng ta có thể không hoàn toàn hiểu tại sao chúng ta truyền các bit thông tin trong các biến, nhưng chúng ta có thể học cách tạo ra chúng và hiểu sự khác biệt giữa các biến (variable) và các hằng số (const). Sau đó chúng ta có thể tìm hiểu cú pháp để sử dụng mảng, cấu trúc, vòng lặp, v.v. khá dễ dàng.

Khi nói đến các cấu trúc lớn hơn — như tạo các hàm (function), học những thứ phức tạp như lập trình hướng đối tượng - chúng ta có thể phải sao chép các code mẫu từ các bài hướng dẫn trong một thời gian trước khi chúng ta thực sự hiểu nó.

Việc sao chép code mẫu có thể không tốt lắm, như khi tôi chưa học đại từ phản xạ nhưng đã biết giới thiệu bản thân mình bằng tiếng Ý. Tuy nhiên, dần dần, chúng ta sẽ cải thiện cho đến thời điểm “À ,ra thế” xuất hiện.

Đến lúc đấy chúng ta có thể hiểu một cấu trúc mới và có thể sử dụng thành phần của nó một cách độc lập để sáng tạo ra cách code của riêng chúng ta.

Ví dụ, tôi thực phải đau đầu rất nhiều lần với tính bao đóng (closures) trong Java, nhưng qua một thời gian, tôi đã sử dụng nó đơn giản chỉ bằng cách làm theo các đoạn code mẫu mà tôi đã thấy trong các bài hướng dẫn. Một ngày, tôi bất chợt bật ra với một ý nghĩ "À, ra thế", và từ lúc đấy tôi thực sự hiểu tính bao đóng trong Java.
 

Tìm tài nguyên học lập trình tốt nhất của bạn


Khi bắt đầu cuộc hành trình học Java, mọi người đều nói tài liệu sẽ là tài nguyên tốt nhất và chuẩn nhất để học, nhưng tôi sẽ đưa ra lời khuyên khác cho những người mới bắt đầu.

Cũng giống như cách bạn không nhận một cuốn từ điển được viết bằng tiếng Ý vào ngày đầu tiên của một lớp học tiếng Ý, bạn không nên dựa hoàn toàn vào tài liệu khi bạn chưa có từ vựng nhất định về lập trình. Bạn phải tìm tài nguyên hướng dẫn khác mà có thể giúp bạn dần dần có thể hiểu được.

Tài liệu sẽ có ích cho bạn vào một ngày nào đó, nhưng cho đến lúc đó, hãy tham khảo nó và ghi nhớ chỗ nào mình hiểu được. Đừng để nó làm cho bạn nảy sinh ý nghĩ rằng bạn không thể học lập trình. Phát triển kỹ năng lập trình của bạn cần phải có thời gian. Và nên bắt đầu từng những tài nguyên dễ hiểu với bạn như video, các tutorial về lập trình...

Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!