Hotline

Đào tạo khoa học máy tính: Những bài học từ thung lũng Silicon

Cách đây mấy tháng, mình gặp Linh khi em sang thung lũng Silicon phỏng vấn cho vị trí kỹ sư phần mềm ở Google và Facebook. Em kể với mình rằng quyết định khó khăn nhất trong cuộc đời em đến thời điểm này là quyết định học chuyên Tin cấp ba. Em được nhận vào cả chuyên Toán Sư phạm và chuyên Tin Tổng hợp. Bố mẹ em, tin rằng tin chỉ là môn phụ, cương quyết bắt em học chuyên Toán. Nhưng em rất thích Tin nên quyết định không nghe lời bố mẹ. Em học chuyên Tin Tổng hợp, thi Tin quốc tế, sau đó được học bổng đi học ở MIT, và sau khi tốt nghiệp được rất nhiều ông lớn công nghệ mời chào.

Trong bài này, mình dùng từ CS để viết tắt cho Computer Science -- khoa học máy tính. 

1. Tin học - môn chính hay phụ

Cách đây mấy tháng, mình gặp Linh khi em sang thung lũng Silicon phỏng vấn cho vị trí kỹ sư phần mềm ở Google và Facebook. Em kể với mình rằng quyết định khó khăn nhất trong cuộc đời em đến thời điểm này là quyết định học chuyên Tin cấp ba. Em được nhận vào cả chuyên Toán Sư phạm và chuyên Tin Tổng hợp. Bố mẹ em, tin rằng tin chỉ là môn phụ, cương quyết bắt em học chuyên Toán. Nhưng em rất thích Tin nên quyết định không nghe lời bố mẹ. Em học chuyên Tin Tổng hợp, thi Tin quốc tế, sau đó được học bổng đi học ở MIT, và sau khi tốt nghiệp được rất nhiều ông lớn công nghệ mời chào.

Câu chuyện của em Linh phản ánh cách nhìn nhận tin học của rất nhiều các bậc phụ huynh Việt Nam. Khảo sát mình thực hiện với Cốc Cốc trên 600 bạn độ tuổi từ 10 đến 35 cho thấy 34.27% các bạn cho rằng Tin học là môn không quan trọng cho lắm. 

Lý do thứ nhất cho việc Tin học bị cho là môn phụ là vì nó không phải là môn thi đại học. Học giỏi tin để rồi thi trượt đại học thì giỏi tin làm gì? Lý do thứ hai là do những hiểu nhầm về môn này. Mình có hỏi lý do khiến các bạn không theo đuổi ngành CS thì ba lý do chính là:

Lý do 1: không đủ khả năng, kiến thức để theo CS (68.2%)

Lý do 2: CS tẻ nhạt (7.1%)

Lý do 3: Bố mẹ không cho theo đuổi (5.1%)

Mình gọi ba lý do này là những hiểu nhầm vì:

Lý do 1: không đủ khả năng, kiến thức để theo CS (68.2%)

Chúng ta không cần những kỹ năng gì đặc biệt để học CS. Người ta gọi ngôn ngữ lập trình là ngôn ngữ vì cũng như ngôn ngữ dùng để giao tiếp, nếu bạn biết ngữ pháp và câu lệnh, bạn có thể viết những chương trình giao tiếp với máy tính. 

Lý do 2: CS tẻ nhạt (7.1%)

CS không phải là một ngành riêng biệt không có liên quan gì đến những ngành khác. CS là một công cụ có thể áp dụng vào bất cứ ngành nào. Nếu sở thích của bạn là chơi game, bạn có thể dùng CS để viết game. Nếu bạn thích ngành dầu khí, bạn có thể áp dụng CS vào ngành dầu khí như viết chương trình dự đoán tiềm năng dầu mỏ ở một khu vực nhất định. CS cũng đã được áp dụng thành công vào ngành y tế, như ứng dụng dự đoán ung thư da độ chính xác cao tương đương bác sĩ da liễu đầu ngành, hay ứng dụng khám chữa mắt mà Google triển khai ở các khu vực nông thôn Ấn Độ. Tương tự, bạn có thể thấy ứng dụng của CS vào ngành du lịch, ngành giáo dục, kinh doanh, tài chính, v.v.v. Một bác nông dân ở Nhật Bản đã ứng dụng thành công trí tuệ nhân tạo vào việc nuôi trồng dưa chuột. 

Lý do 3: Bố mẹ không cho theo đuổi (5.1%)

Mình không hiểu tại sao các bậc phụ huynh lại không cho con cái theo đuổi ngành CS. Ngành này có nhiều việc, lại lương cao. 9 trong số 25 công việc lương cao nhất, theo CNBC, là công việc trong ngành khoa học máy tính. 3 trong số 7 công việc với yêu cầu tuyển dụng cao nhất, theo US News, là công việc trong ngành khoa học máy tính.

CS lại là một ngành cho bạn rất nhiều tự do về công việc. Bạn có thể làm việc ở bất cứ đâu. Trong thời gian mình đi du lịch, mình gặp một số bạn là kỹ sư phần mềm, vừa đi du lịch vừa làm việc như một freelancer.

Ở Mỹ, 84% các bận phụ huynh tin rằng CS ít nhất cũng quan trọng tương đương các môn bắt buộc như Toán, Khoa học, Lịch sử, và Văn học. 60% những người làm giáo dục tin rằng CS nên là môn bắt buộc. Họ tin rằng bất kỳ một đứa trẻ thế kỷ 21 nào cũng cần có cơ hội để học về thuật toán, các viết ứng dụng máy tính hay điện thoại, và cách thức Internet vận hành.

Mình sống ở thung lũng Silicon, nơi mà hàng ngày mình chứng kiến việc những bước tiến về công nghệ thay đổi cách chúng ta sống. Ra đường, bạn có thể thấy xe không người lái. Đi chơi, bạn trả tiền bằng điện thoại. Đi du lịch, bạn dùng earbuds có thể dịch trong thời gian thực, giúp những người không nói cùng ngôn ngữ giao tiếp với nhau. Mình lo ngại rằng những bước tiến về công nghệ sẽ làm tăng khoảng cách giữa những quốc gia nắm giữ công nghệ đó và quốc gia không nắm giữ công nghệ đó. Nếu chúng ta không đầu tư về công nghệ, về mặt vĩ mô, đất nước của chúng ta sẽ bị tụt lại phía sau. Về mặt cá nhân, chúng ta có thể đưa ra những quyết định sai lầm về nghề nghiệp -- ví dụ như bỏ việc để đi lái uber, grab trong khi những công ty này sẽ sử dụng xe không người lái trong tương lai, hay đi học ngành hướng dẫn viên du lịch, phiên dịch trong khi trong tương lai không ai cần người phiên dịch nữa cả.

2. Dạy và học môn tin học

Cuộc thăm dò mình tiến hành với Cốc Cốc cho thấy rằng có rất nhiều người quan tâm đến CS. 65% muốn tìm hiểu thêm công việc trong ngành CS, và 73.3% muốn học Tin học ở trường. Nhưng đáng tiếc, những quan tâm này vẫn chưa được phát triển hết tiềm năng. Gần 60% các bạn tham gia trả lời chưa từng nghĩ đến việc sẽ làm trong ngành CS.

Lý do hiển nhiên là do các bạn chưa được tiếp cận CS một cách đúng đắn. Trên 10% các bạn tham gia trả lời không được học Tin học ở trường. Do cuộc khảo sát được thực hiện qua mạng -- những bạn tham gia trả lời là những bạn đã có điều kiện tiếp cận Internet -- con số thực sẽ cao hơn 10% rất nhiều. Với những bạn được học Tin học, ba lý do chính khiến các bạn không thích Tin học là:

Lý do 1: Quá khó hiểu (42%)

Lý do 2: Không thích giáo viên (24.1%)

Lý do 3: Tẻ nhạt (19.6%)

Cả ba lý do này đều là do việc dạy. Giáo sư của mình ở Stanford đã bảo với mình rằng nếu môn ông dạy khó hiểu hay tẻ nhạt, đó là do lỗi của ông đã không biết cách truyền đạt kiến thức cho sinh viên. Khảo sát của mình cũng hỏi các bạn làm thế nào để giúp việc dạy tin học tốt hơn, ba phương thức chính các bạn đưa ra là:

  • Thực hành nhiều hơn
  • Các vấn đề trong cuộc sống thực
  • Dễ hiểu

Dựa vào cuộc khảo sát này, mình và Cốc Cốc phát triển chương trình “Lập trình đi” với mục đích mang lại khoá học CS chất lượng, miễn phí cho toàn bộ học sinh, sinh viên Việt Nam. Khoá học này được mô phỏng theo những khoá học lập trình cơ bản tại Stanford mà mình đã là trợ giảng từ đầu năm 2015. Tại Stanford, 90% sinh viên đại học theo học ít nhất một khoá học CS. Sinh viên học những môn CS này đến từ nhiều ngành nghề khác nhau với nền tảng kiến thức khác nhau -- họ có thể học viết, học luật, học vật lý. Họ học không bởi vì họ muốn trở thành kỹ sư phần mềm, mà đơn giản để không bị tụt hậu và để biết họ có thể áp dụng CS vào ngành của họ như thế nào. 

Khi xây dựng “Lập trình đi", chúng mình muốn khoá học có thật nhiều thực hành. Sau khi xem một bài giảng -- chương trình được chia thành những bài giảng nhỏ 5, 10 phút có thể xem bất cứ lúc nào online -- người học có thể thực hành ngay lập tức với những bài thực tập nhỏ. Chương trình sẽ có phần mềm chấm điểm những bài thực hành đó. “Lập trình đi" sẽ có những bài tập thú vị để người học không cảm thấy nhàm chán. Chúng mình cũng sẽ cố gắng để chương trình dạy những thuật toán được sử dụng hiện nay để giải quyết những vấn đề thực tế. 

Chương trình “Lập trình đi” dự định sẽ ra mắt vào tháng 6 năm 2018 và miễn phí cho tất cả mọi người.

Nhận tiện, mình cũng xin dùng đất này để trả lời một số câu hỏi mà một số người có vẻ thắc mắc về chương trình. Bạn nào có câu hỏi nào xin để lại ở comment nhé.

Huyền Chip tuổi gì mà đòi dạy CS?

Mình học đại học và thạc sĩ ngành Khoa học máy tính tại Đại học Stanford, nơi mình là người xây dựng và dạy khoá “TensorFlow for Deep Learning Research”. Mình đã làm việc ở Cốc Cốc, Primer, Netflix. 

Mình biết là ở Việt Nam có nhiều người có chuyên môn ngành Khoa học máy tính sâu hơn mình. Tuy nhiên, bạn không phải là chuyên gia hàng đầu trong ngành để dạy. Nếu mình đã có thể trợ giảng và là người dạy chính của một khoá học ở Stanford, mình nghĩ mình có thể dạy “Lập trình đi” ở Việt Nam.

Việc dạy cũng không phải là việc của chỉ một người. Mình xây dựng khoá này với sự trợ giúp của rất nhiều người ở cả Stanford, Cốc Cốc, và nhiều người khác ở Việt Nam. Mình tin rằng việc có một khoá học CS chất lượng, miễn phí cho các bạn học sinh, sinh viên Việt Nam là cần thiết, nên mình làm những gì mình có thể để biến nó thành hiện thực. Nếu bạn nghĩ bạn có trình độ hơn mình, xứng đáng để dạy nó hơn mình, mình rất mong bạn sẽ cùng chúng mình xây dựng khoá học đó thay vì chỉ trích mình này kia.

Ai cũng học CS thì lấy ai trồng lúa, làm công nhân?

Như mình đã nói ở trên, CS không phải là một ngành riêng biệt không có liên quan gì đến cách ngành khác. CS chỉ là một công cụ. Khi bạn biết cách sử dụng công cụ này, bạn có thể ứng dụng nó vào bất cứ ngành nào bạn làm. Bạn học Toán không phải để trở thành nhà Toán học. Bạn không nhất thiết phải học CS để trở thành kỹ sư lập trình.