Lập trình máy tính (gọi tắt là lập trình) là việc sử dụng những công cụ hỗ trợ "chuyên dụng" để đưa ra những chỉ dẫn cho máy tính hoặc thiết bị điện tử thực hiện hành động cụ thể. Lập trình bao gồm các câu lệnh, thuật toán có mức độ phức tạp nhất định.
Học một ngôn ngữ lập trình có thể mở ra cơ hội nghề nghiệp mới hoặc đạt mức lương cao hơn. Theo đó, lập trình là một trong những lĩnh vực được ưa chuộng hiện nay. Đây là lý do nhiều phụ huynh hiện nay đầu tư cho con học lập trình từ sớm.
Tuy nhiên, xung quanh vấn đề này cũng nảy sinh nhiều tranh cãi. Một số ý kiến cho rằng không nên cho con học lập trình sớm bởi đây là một việc yêu cầu khả năng tư duy logic phức tạp mà chỉ người lớn có thể hiểu và học được. Thế nên, cho trẻ em học lập trình là một điều bất khả thi. Học lập trình sẽ quá sức đối với trẻ, khiến trẻ thêm áp lực.
Ý kiến khác lại nhận định, hiểu rõ bản chất công nghệ sẽ giúp con sử dụng các sản phẩm lập trình một cách an toàn, hỗ trợ cho việc học tập và đáp ứng nhu cầu cuộc sống của mình tốt hơn. Thế nên, việc cho trẻ em học lập trình từ sớm là vô cùng cần thiết.
"Trẻ con thì làm sao học lập trình nổi? Mấy khoá lập trình cho trẻ em chỉ là cho trẻ chơi 1 cái game"
Mới đây, bài viết được chia sẻ trên một fanpage giáo dục về vấn đề có nên cho trẻ học lập trình sớm thu hút nhiều sự chú ý và tranh luận. Theo bà mẹ này, chị vẫn thường nghe mấy bạn hỏi, con em (tiểu học) học lập trình chỗ này, chỗ kia được không? Em cho con học Scratch (Scratch là một ngôn ngữ lập trình trực quan được tạo ra bởi MIT Media Lab vào năm 2007) được không?
Chị cho biết, con mình hồi học lớp 3 cũng từng học mấy khoá đó, cũng được thầy khen kinh khủng. Cả nhà ai cũng tưởng con giỏi về logic quá, có khiếu về lập trình quá. Nhưng thật ra không phải vậy.
"Một ông anh thân thiết của nhà mình - hiện đang là Giảng viên khoa CNTT một trường đại học, đã cảnh tỉnh mình. Anh nói: "Con nít thì làm sao học lập trình nổi. Mấy cái khoá lập trình cho trẻ em đó, thiệt ra chỉ là cho tụi nhỏ chơi 1 cái game thôi".
Đó không phải là lập trình, đó không phải là coding. Đó chỉ là 1 trò chơi, sử dụng các lệnh (đã được lập trình rồi). Với Scratch, tụi nhỏ chỉ là đang chơi 1 trò chơi nâng cao (hơn game giải trí bình thường xíu), mà trong đó, các con sử dụng các lệnh kéo thả… Vậy thôi đó" , chị chia sẻ.
Vì vậy, bà mẹ này đã "cắt lỗ" ngay lập tức. Cho con nghỉ học liền. Mắc công tốn tiền, mà còn phí thời gian cha mẹ đưa đón nữa.
Theo chị, coding là hành động viết code, tạo ra mã cơ bản trong một ngôn ngữ lập trình. Coding đảm bảo giúp máy tính hiểu được các tập lệnh, từ đó xử lý việc mã hóa và thực hiện các hành động mà người lập trình mong muốn. Mỗi một tập lệnh sẽ thực thi một hành động cụ thể. Coding chính là việc phát triển các đoạn mã, đưa vào các trang web, hoặc các ứng dụng bất kỳ để tạo ra những hành động theo yêu cầu.
Để có thể viết code hay còn gọi là viết các mã lệnh, người coder phải mất nhiều thời gian, công sức và trang bị nhiều kiến thức chuyên môn về ngôn ngữ lập trình, phần mềm viết code, công cụ viết code… Mỗi một ngôn ngữ lập trình sẽ có đặc trưng và phạm vi ứng dụng riêng. Bởi vậy, người coder ngoài việc hiểu đúng coding là gì thì cần phải có chuyên môn để sử dụng các ngôn ngữ coding phù hợp trong từng lĩnh vực.
Vì vậy, trẻ con tiểu học không thể học và viết code. Nói cách khác, trẻ con tiểu học còn quá nhỏ, tư duy chưa đủ để học những thứ phức tạp như trên. Thay vì cho con đi học mấy khoá "game nâng cao", thì dùng thời gian đó để học tiếng Anh cho tốt, rồi tiếp tục là tự học Toán Tiếng Anh cho thiệt tốt. Học Toán cho vượt lên càng nhiều càng tốt. Khi lên cấp 2, hãy làm quen với coding thì lợi hơn.
Vậy rốt cục có nên cho con học lập trình sớm?
Nói về tranh cãi này, chị Minh Lý (Hà Nội), một giáo viên Tin học nhiều năm có kinh nghiệm dạy lập trình Scratch, dìu dắt nhiều em học sinh đạt giải cao tại các cuộc thi cho biết: Quan trọng là các bố mẹ và các con rất thích. Các bố mẹ ghi nhận thấy các con có nhiều tiến bộ trong học tập, không chỉ là lập trình.
Theo cô Minh Lý, lập trình Scratch được đưa vào dạy trong môn Tin học của Chương trình đổi mới Giáo dục Việt Nam sau 2018. Nó cũng được dạy ở rất nhiều quốc gia trên thế giới. Nó nằm trong môn Tin học, môn bắt buộc cũng như tiếng Anh vậy.
Tác giả bài viết chỉ nghe qua "ông anh thân thiết" của nhà bạn ấy – dù có là giảng viên CNTT thì không có nghĩa "ông anh ấy" hiểu về Scratch. Bạn chỉ nghe thầy khen con mình kinh khủng mà đã "tưởng rằng con giỏi về logic quá, có khiếu lập trình quá, con mình có thể thành lập trình viên".
"Không phải cứ học lập trình là để thành lập trình viên, là có thể bay đến Mỹ. Cũng như con nhà người ta những 12 - 15 năm học Toán, học Lý, học Hóa, học Văn… không phải đều trở thành nhà Toán học, nhà Vật lý học, nhà Hóa học, nhà Văn... vậy. Thực tế thì tôi luôn nói với các phụ huynh và học trò của mình rằng: Học Scratch không có nghĩa chỉ để trở thành Lập trình viên. Cũng như học Văn, không nhất thiết là để trở thành nhà Văn mà trước hết là để làm người!
Trước khi có Scratch các học sinh cấp 1 học LOGO, cấp 2 học Pascal… sao không có ai mơ sẽ trở thành lập trình viên, sẽ bay sang thung lũng Silicon mà chỉ đến khi con học Scratch mới mơ tưởng rằng con mình giỏi logic, giỏi lập trình?
Cũng đừng nói rằng Scratch không phải là lập trình, nó chỉ là một trò chơi. Hãy vào trang Scratch.mit.edu đọc một chút. Hãy xem trẻ em khắp nơi trên thế giới dùng Scratch để làm gì. Để sáng tạo. Sáng tạo ra cái gì? Ra những đoạn hoạt hình, những dự án âm nhạc, những câu chuyện, những trò chơi… Hãy xem trẻ em sáng tạo như thế nào và hãy nhìn lại xem trẻ em Việt Nam sáng tạo được gì hay chỉ là những tư duy manh mún thiển cận: Dùng Scratch để thi, để giải Toán?" , cô Lý phản biện.
Theo giáo viên này, khi lên cấp 2, con va vào lập trình là bập ngay vào hàng loạt khái niệm: Là biến, là mảng, là thủ tục, là chương trình con, là lệnh gán là nọ kia. Rất khó. Chỉ làm quen thôi đã hoa mắt chóng mặt và nhiều người bỏ cuộc.
Ấy là chưa kể, lên cấp 2 con cũng làm quen với nhiều khái niệm Toán học: Tọa độ, trục x, trục y, số âm, số dương và hàng loạt các khái niệm mới. Mà những thứ đó, diễn giải ở cấp 2 cao siêu và rắc rối. Các mẹ vẫn kêu là con học nặng, không hiểu gì cả. Thế thì Scratch sinh ra để giúp con bạn làm quen và để giải quyết những khó khăn ấy.
"Tôi không nói Scratch cao siêu gì nhưng nó giúp các em bé tự làm được một cái gì đấy. "Cái gì đấy" giúp bọn trẻ tự tin và vui vẻ. Có những đứa trẻ nhút nhát, suốt ngày bị cô phê bình, chỉ trích. Nó cần làm được một cái gì cụ thể, một điểm tựa, một chút lòng tin để khẳng định mình. Và nó đến với Scratch. Tôi đã dạy và chứng kiến sự trưởng thành cũng như ánh mắt vui vẻ tự tin từ không ít những đứa trẻ như thế.
Scratch không dạy đứa trẻ nói suông. Nó sáng tạo và tạo ra sản phẩm. Đứa trẻ nghe rồi sẽ quên, học rồi sẽ hiểu, làm rồi sẽ nhớ. Có môn học nào giúp đứa trẻ tự tay làm ra một sản phẩm hoàn toàn theo ý nó mà không bị gò ép về ý tưởng như Scratch không? Học giỏi tiếng Anh có chắc sẽ đem lại tư duy logic, kỹ năng phát hiện và giải quyết vấn đề và hàng loạt các kỹ năng con bạn còn thiếu không?
Bạn nói rằng: "Trẻ con tiểu học không thể học và viết code. Nói cách khác, trẻ con tiểu học còn quá nhỏ, tư duy chưa đủ để học những thứ phức tạp như trên". Tôi đồng ý, lập trình không hề dễ và cần phải học rất nhiều thứ có liên quan. Vậy đợi đến khi chúng lớn lên để nhồi nhét hay cho chúng làm quen từ từ?" , cô Lý nói.
Các con học để lập trình, lập trình để học, đây là triết lý của Scratch. Độ tuổi học lập trình theo cô Minh Lý nên từ lớp 3, còn Scratch thì từ 6 - 18 tuổi. Họ có phần mềm Scratch JR cho trẻ từ mẫu giáo.