Tôi có dự định viết một loạt khoảng 5 bài chia sẻ quan điểm, kinh nghiệm cá nhân về việc dạy thiếu nhi (9-16 tuổi) bắt đầu học lập trình. Làm sao để học vui, hiệu quả, trẻ thực sự tích luỹ được kỹ năng, kinh nghiệm, không chạy theo hình thức, thành tích vô bổ. Những kinh nghiệm trong bài được tích luỹ từ năm 2015 khi Techmaster bắt đầu dạy những lớp lập trình Arduino cho thiếu nhi. Hy vọng series bài viết này sẽ đến được tay nhiều các bố mẹ muốn định hướng cho con theo chuyên ngành kỹ thuật, công nghệ.

Tại sao thiếu nhi cần học lập trình sớm?

Ngày hôm nay xung quanh chúng ta đều được vận hành bởi máy tính, mạng máy tính, điện toán đám mây và các thiết bị vi điều khiển IOT. Mọi ngành nghề sản xuất, giao thông, ngân hàng, tài chính, thương mại, thực phẩm, y tế, giao thông, giáo dục, quân sự…đều được số hoá để máy tính giảm bớt sức lao động của con người.

Để máy tính, vi điều khiển, các hệ thống, dịch vụ chạy được cần phải lập trình. Có gần 50 ngôn ngữ lập trình phổ biến và hàng trăm nghìn thư viện phần mềm dùng để tạo ra các phần mềm. Toán dạy cách tư duy logic, dựa trên các tiên đề, định luật, định lý để giải các bài toán. Vật lý, Hoá học dạy các quan sát, phân tích, kết nối các quy luật. Thì học lập trình học cách sử dụng cú pháp viết lệnh điều khiển máy tính làm theo yêu cầu của con người. Cao hơn nữa lập trình AI để máy tính chủ động ra quyết định “thông minh" như con người.

Ở những quốc gia phát triển như Mỹ, Tây Âu, Trung Quốc, học sinh bắt đầu học lập trình cùng thời điểm với học toán. Lập trình có thể coi là một giải trí như cờ vua. Bill Gates bắt đầu học lập trình năm 13 tuổi, Elon Musk và Mark Zuckerberg học lập trình từ năm 10 tuổi. Toán, Vật Lý ở cấp 1, 2, 3 thường chỉ tập trung giải phương trình hoặc chứng minh một vấn đề cụ thể. Nhưng lập trình có độ sáng tạo mãnh liệt hơn, chỉ với một tập lệnh, mỗi người có thể tự xây dựng phần mềm không giới hạn sự sáng tạo.
Bill Gates when young
Bill Gates cùng bạn là Paul Allen đang lập trình tại phòng máy tính trường cấp 2

Ở Việt nam, độ tuổi bắt đầu học lập trình phù hợp nhất là năm 8-10 tuổi. Lúc này các cháu đã biết sử dụng máy tính nối mạng, truy cập Internet và có vốn tự vựng 80 từ tiếng Anh căn bản. Do các định kiên phân biệt giới tính, nên các cháu nữ thường không được bố mẹ hướng cho học công nghệ. Ở tuổi 9-10, tốc độ tiếp thu lập trình của học sinh nữ không khác các bạn nam.

Các phương pháp dạy lập trình cho thiếu nhi

Khảo sát tại Việt nam và thế giới, tôi thấy có những lớp dạy lập trình thiếu nhi như sau:

  • Dạy lập trình kéo thả trực quan nhập môn phù hợp học sinh độ tuổi 7-12.
  • Dạy lập trình web - mobile - game phù học sinh cấp 3 muốn tạo ra sản phẩm đi thi các cuộc thi sáng tạo kiểu như Hackathon
  • Dạy lập trình thuật toán cho học sinh chuyên tin học bắt đầu từ cấp 2.
  • Dạy lập trình STEM kết hợp với điều khiển, lắp ráp : Arduino - Lego….

Các ngôn ngữ dùng để dạy lập trình cho thiếu nhi

  • Scratch: kéo thả trực quan do MIT phát triển, phù hợp lứa tuổi từ 7-12. Rất dễ học, tuy nhiên khả năng biểu đạt hạn chế.
  • Python: ngôn ngữ phổ biến số 1 hiện nay, được ưu tiên dùng để phân tích dữ liệu, lập trình AI. Dễ học nhưng kiểm tra kiểu lỏng lẻo. Phù hợp lứa tuổi 12 trở lên.
  • C: ngôn ngữ cổ điển, cú pháp gọn, quản lý bộ nhớ thủ công, chạy nhanh thường được dạy cấu trúc dữ liệu - giải thuật, thi chuyên tin. Phù hợp lứa tuổi 12 trở lên.
  • Java: ngôn ngữ phổ biến số 2, có nhiều tính năng mạnh: hướng đối tượng, tự động dọn bộ nhớ… phù hợp học sinh cấp 3 và đại học. Phù hợp lứa tuổi 14 trở lên.

Việc chọn phương pháp dạy và ngôn ngữ cần phù hợp với lứa tuổi, định học học và đôi khi còn phụ thuộc gần nhà có lớp nào phù hợp học.
Ngôn ngữ Scratch
Ngôn ngữ Scratch kéo thả

Học bao nhiêu buổi 1 tuần?

Chương trình học chính khoá ở VN là rất nặng. Một tuần học ba buổi sẽ chỉ dành cho những bạn thực sự rất đam mê, năng khiếu, được giảm tải khi học chính khoá.
Một tuần hai buổi học lập trình sẽ là phù hợp nhất tránh cho học sinh không bị ngắt quãng quá lâu. Giáo trình nên thiết kế để trẻ có thể hoàn thành các bài tập ngay tại lớp, nhưng vẫn phải có giáo trình trực tuyến để trẻ tự ôn lại. Nhiều phụ huynh muốn cùng con học, có thể xem giáo trình để giúp con lập trình cũng là một cách hay.
Phu huynh hoc lap trinh

Tại sao trẻ học lập trình xong lại quên?

Vài phụ huynh phàn nàn với tôi rằng, hè nào tôi cũng cho cháu nó học lập trình, hết hè lại quên, năm sau học lại như mới. Vậy bao giờ mới giỏi lập trình được?
Có hai nguyên nhân chính:

  • Việc học bị ngắt quãng, học sinh không được thực hành lại, những kiến thức lập trình mới dừng ở bắt chiếc làm theo sẽ dễ bị xoá nhoà sau vài tháng
  • Học sinh phải tiếp quá nhiều kiến thức ở trường, bộ não sẽ tự động dọn dẹp những kiến thức không có nhu cầu sử dụng ra ngoài

Việc học lập trình cũng như học ngoại ngữ. Thay vì chỉ cho trẻ đi học lập trình khoá học hè, hãy cho trẻ đi học đều trong cả năm để lặp lại và phát triển kỹ năng lập trình.

Làm sao để biết trẻ có năng khiếu lập trình ?

Có nhiều phụ huynh bảo với tôi rằng, rất muốn con trở thành lập trình viên nhưng không rõ nó có năng khiếu hay không, chỉ biết cháu rất thích nghịch điện thoại và chơi game trên máy tính. Tôi không thấy có mối liên hệ nào giữa năng khiếu lập trình với việc nghịch điện thoại và chơi game cả.

Tôi chỉ thấy những bạn nào có khả năng viết lách tốt, sáng tạo thì lập trình sẽ tốt. Ví dụ như thầy Minh Momen viết rất nhiều bài về kiến trúc phần mềm theo phong cách kể chuyện. Hay như thầy Quân Huỳnh. Bản thân tôi hồi bé rất thích đọc truyện và viết văn. Tôi cảm thấy khi viết câu từ ngôn ngữ có logic, liên kết chặt chẽ thì khi lập trình sẽ có cấu trúc tốt hơn.

Yêu thích toán, vật lý, luôn quan sát, thí nghiệm, tìm lời giải đó cũng tiền đề rất tốt để học lập trình. Trong một lớp web front end tại Techmaster, có một sinh viên học vật lý đại học Bách Khoa. Anh ta học nhanh, nhưng khi thiết kế web thì không đẹp bằng các bạn trong lớp, khiến anh ta rất chán nản. Tôi có khuyên anh ta chuyển qua học lập trình hệ thống liên quan nhiều đến kết cấu - kiên trúc phần mềm. Và giờ anh ý rất hài lòng với định hướng đó.

Có những đứa trẻ bộc lộ năng khiếu lập trình rất sớm ngược lại có những bạn phải sau 2-3 năm mới thích thú và thực sự đam mê. Có năng khiếu rất sớm chưa chắc đã theo nghề IT lâu dài. Hạt giống tốt cần có môi trường tốt để phát triển. Có một điều được số đông nhất trí đó là lập trình là một kỹ năng nên có của thanh niên. Vậy cứ phải thử mới biết. Chứ không thể xem hoa tay, nhìn tướng mà biết con bạn có năng khiếu lập trình hay không.