Học nghề lập trình phần mềm

Bài viết được dịch từ blog Coding Horror

Trong bài viết “Dạy lập trình hiện nay rất tệ: Tại sao chúng ta cần quay lại cách đào tạo 1.000 năm về trước”, Rob Walling đã đưa ra một lý lẽ để thuyết phục ngành giáo dục nên từ bỏ kiểu đào tạo truyền thống thiên về lý thuyết và chuyển qua đào tạo theo hình thức học nghề.

Học lập trình phải kết hợp giữa lý thuyết và thực hànhHọc lập trình phải kết hợp giữa lý thuyết và thực hành

Tại sao chúng ta không sử dụng phương pháp thường được áp dụng trong các ngành nghề đã thành công nhiều năm qua? Hãy lấy một học viên nghề điện làm ví dụ: ở Hoa Kỳ hiện nay, công ty điện lực International Brotherhood of Electrical Workers (I.B.E.W.) đào tạo hàng ngàn thợ điện mỗi năm. Họ học thông qua 2 trải nghiệm riêng biệt:

  • Tham dự lớp học vào các buổi tối trong tuần để tìm hiểu lý thuyết về điện.
  • Làm việc buổi ngày trực tiếp trên một công trường xây dựng, nơi họ có thể thu được kinh nghiệm trong việc áp dụng lý thuyết vào thực hành xây dựng một tòa nhà.

Ngày đầu tiên học viên tham gia công việc sẽ được làm việc cùng với một thợ điện đã có kinh nghiệm, người sẽ chỉ cho anh ta thấy phải làm những gì. Người thợ điện sẽ nói với học viên về một tác vụ cần làm, tiếp đến là làm mẫu cho học viên thấy tác vụ đó nên làm như thế nào, sau đó học viên phải tự làm theo, cuối cùng người thợ điện sẽ đưa ra những nhận xét phản hồi về chất lượng của công việc mà học viên đã làm. Như vậy quy trình gồm 4 bước: nghe, xem, làm, nhận những góp ý.

Học lập trình sao cho hiệu quả nhất?Với nghề phần mềm thì nó sẽ như thế này: mentor (người hướng dẫn) sẽ đánh giá một tác vụ trước khi giao cho học viên, có thể là họ sẽ viết code để truy xuất dữ liệu hoặc xây dựng một giao diện người dùng trên web, và tổ chức một cuộc thảo luận với người học việc (nghe). Tiếp theo, người hướng dẫn có thể viết code mẫu để minh họa một khái niệm đặc biệt khó hoặc khái niệm dễ hiểu lầm (xem). Tại thời điểm này, người hướng dẫn sẽ để cho học viên tự trải nghiệm công việc viết code (làm). Và cuối cùng, người hướng dẫn xem lại code của học viên, cung cấp những góp ý cả tích cực lẫn tiêu cực và gợi ý nên cải tiến như thế nào để tốt nhất (xem xét). Nghe, xem, làm, nhận những góp ý.

Chìa khóa cho bất kỳ hình thức đào tạo nghề nào đó là bước “làm”. Hầu hết các khóa đào tạo lập trình viên chỉ cung cấp cho bạn các bước nghe và xem, nhưng các bước “làm và nhận những góp ý” là quan trọng để truyền cảm hứng giúp bạn tiến bộ và phát triển các kỹ năng của mình. Vẻ đẹp của việc học nghề là nó đã kết hợp được việc vận dụng lý thuyết vào các trải nghiệm thực tế. Và thực ra nó dễ dàng hơn bạn nghĩ.

Thay vì một liên minh lỏng lẻo giữa các bộ lạc, có lẽ chúng ta nên đào tạo theo hình thức học nghề, thợ lành nghề, các mối quan hệ nghề nghiệp trong phát triển phần mềm.

Sự kết hợp của việc học lý thuyết vào ban đêm và lập trình trong thế giới thực vào ban ngày là đặc biệt hấp dẫn. Có lẽ đây là lý do tại sao tôi đã thấy rất nhiều thực tập sinh tài năng trở thành lập trình viên tuyệt vời – họ đang làm việc tại các công ty phần mềm thực tế trong khi vẫn đi học các khóa học về khoa học máy tính để bổ sung kiến thức lý thuyết.

Mặc dù để trở thành một người hướng dẫn (mentor) giỏi là điều không hề dễ dàng. Tôi thường gặp khó khăn trong việc hướng dẫn cho những lập trình viên có trình độ kỹ năng quá chênh lệch với mình. Tôi là người hơi thiếu kiên nhẫn. Nếu bạn xếp những người chơi bóng đá vào cùng một sân bóng, thì đừng nên trộn lẫn cầu thủ chuyên nghiệp với những cậu học sinh cấp 3. Sự chênh lệch kỹ năng là quá lớn để họ có thể thực sự chơi bóng đá cùng với nhau. Và làm thế nào mà họ có thể học mà không chơi các trò chơi? Nhưng nếu bạn sắp xếp các sinh viên đại học lẫn học sinh cấp 3 thì họ có thể chơi bóng đá với nhau rất tốt!

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

14 comments on “Học nghề lập trình phần mềm

  1. Học lập trình phải đầu tư thời gian và học nghiêm túc thì mới giỏi được. và có 1 điều làm tôi băn khoăn ở Việt Nam mình là mentor có tâm rất ít. Tôi không quơ đũa cả nắm những anh mentor giỏi và có tâm, còn lại người Việt của mình có đc 1 kĩ thuật lập trình hay, 1 kinh nghiệm quý báu thì rất ít chia sẻ do tư tưởng của ng Việt là giấu nghề, không chịu chia sẻ mà thích ng khác chia sẻ cho mình. Thật sự cái này làm tôi rất buồn. Không biết có cách nào thay đổi được tư duy của những bạn ấy 😦 ?
    và có 1 điều tôi nhắn nhủ vs các bạn ấy là : NGƯỜI THÀNH CÔNG LUÔN LUÔN MUỐN TẤT CẢ MỌI NGƯỜI THÀNH CÔNG!

  2. Để làm nên tài năng cần 3 yếu tố: phương pháp tập luyện, động lực tập luyện và người hướng dẫn. Khi có người hướng dẫn đủ tốt thì 2 yếu tố kia sẽ được đảm bảo :D.

      • Nếu có mentor tốt thì 2 yếu tố kia sẽ được đảm bảo, nhưng nếu không tìm được mentor tốt nhưng vẫn duy trì được 2 yếu tố kia thì vẫn thành tài năng.

        Daniel Coyle trong The Talent Code và Malcom Gladwell trong Outliers đều dẫn về 1 mốc 10.000 giờ tập luyện sâu. Mốc này xét về lĩnh vực lập trình ở VN thì cũng đâu đó rơi vào mốc 10 năm kinh nghiệm. Quan trọng là có giữ được lửa và sự nghiêm túc trong suốt quãng thời gian đó không 😀

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s