Thỉnh thoảng tôi được báo nọ báo kia phỏng vấn, thậm chí VTC còn dành cả một số “Ai là ai” để phỏng vấn và lên hình, nhưng lần trả lời phỏng vấn VinaCode vẫn là lần tôi thích nhất vì sự chuyên nghiệp của người phỏng vấn dành cho đối tác. Là một địa chỉ rất mới nhưng đã nhanh chóng trở thành địa chỉ quen thuộc của giới lập trình, với những bài viết rất hữu ích. 

Dưới đây là nội dung bài phỏng vấn đã đăng từ vài tháng trước, nay tôi đăng lại toàn văn. Chỉ vì thích, và đang có dịp lật lại vấn đề về đào tạo lập trình viên. 

***

Hãy coi “năng lực tự học suốt đời” là cốt lõi nhất của mọi người trong thế giới ngày nay ~ Phỏng vấn Dương Trọng Tấn

“Tôi coi “năng lực tự học suốt đời” là cốt lõi nhất của mọi người trong thế giới ngày nay. Làm nghề IT thì năng lực ấy lại càng quan trọng, mang tính sống còn. Không trang bị đủ khả năng tự học liên tục, thì có thể sẽ phải tính trước ngày mình bị đào thải.” ~ Dương Trọng Tấn

Đọc bài phỏng vấn của blog Vinacode với anh Dương Trọng Tấn, là một giảng viên dày dạn kinh nghiệm tại Trung tâm đào tạo lập trình viên Aptech và Đại học FPT. Anh cũng là đồng sáng lập và biên tập viên chuyên viết bài tại các trang HanoiScrum.net, TapChiLapTrinh.vn và DaDien.net về vấn đề dạy, học, agile|Scrum và những chủ đề “nóng” trong lĩnh vực giáo dục tại Việt Nam; để nghe anh chia sẻ về:

  • Những kiến thức và kỹ năng mà một lập trình viên cần trang bị
  • Thông tin về các tổ chức và sự kiện liên quan đến phương pháp phát triển phần mềm Agile cũng như mức độ ứng dụng Agile tại Việt Nam
  • Xu hướng phát triển của mô hình học tập trực tuyến MOOC và cơ hội với lập trình viên
  • Thông tin về trang tạp chí uy tín dành cho lập trình viên Việt Nam là Tạp Chí Lập Trình (http://tapchilaptrinh.vn/)
  • Quan điểm về việc học tập suốt đời đối với mọi người nói chung và lập trình viên nói riêng

Chào anh Dương Trọng Tấn, anh có thể giới thiệu với độc giả blog Vinacode đôi chút về background IT của mình?

Tôi tiếp cận và say mê tin học từ những ngày tự mày mò tạo ổ đĩa ảo trên MS DOS từ những năm 97-98, sau này các trải nghiệm học tập ở Đại học Quốc gia Hà Nội, chương trình Aptech và Đại học RMIT giúp tôi có được nền tảng căn bản để tôi tham gia sâu và thích thú vào lĩnh vực phát triển phần mềm. Tuy nhiên kinh nghiệm dày dặn nhất của tôi lại là giảng dạy lập trình, quản lí dự án và quy trình phát triển phần mềm. Nhiều năm nay tôi bắt đầu tìm hiểu kĩ hơn về công nghệ giáo dục và các cơ hội để đổi mới giáo dục, từ bậc tiểu học tới dạy nghề và đại học.

Là người có kinh nghiệm giảng dạy lập trình tại Aptech và Đại học FPT từ năm 2004 đến nay. Vậy anh có thể chia sẻ một số kỹ năng và kiến thức mà một bạn trẻ cần trang bị nếu muốn theo đuổi con đường dạy học như anh?

Tôi có viết một bài khá dài có tên “Ken và Sun bàn về đào tạo lập trình viên” và đã đăng trên TapChiLapTrinh.vn để trình bày các ý tưởng chính của tôi về đào tạo tập trình viên. Trong đó, tôi liệt kê bảy nhóm năng lực mà một lập trình viên cần phát triển:

  • Năng lực tự học và thích ứng
  • Năng lực giao tiếp (bằng hai thứ tiếng, Anh và Việt)
  • Năng lực tự quản lí bản thân
  • Năng lực nhóm (cộng tác, quản lí và lãnh đạo)
  • Năng lực lập trình linh hoạt (với tiêu chuẩn cao của một software craftsman – một nghệ nhân phần mềm)
  • Năng lực sáng tạo và đổi mới
  • Năng lực thực hành đạo đức nghề nghiệp (professionalism)

Bạn có thể đọc chúng kĩ hơn. Mỗi một nhóm năng lực này cần nhiều nỗ lực để đạt được. Có người nói với tôi là phấn đấu cả đời.

Tuy nhiên, nếu phải phát biểu thật ngắn gọn, thì tôi gom vào cái công thức: “3 ngôn ngữ, 1 vạn giờ”. Một lập trình viên cần phải phấn đấu để tinh thông 3 ngôn ngữ, tôi nhắc lại là tinh thông chứ không chỉ biết. Chúng bao gồm Tiếng Việt, Tiếng Anh, và một ngôn ngữ lập trình chủ đạo (ví dụ Java). 1 vạn giờ chính là cái con số kì diệu mà các nhà tâm lý học đã tìm ra, ám chỉ thời gian thực hành có chủ đích (deliberate practice) để trở thành “đỉnh cao” của nghề.

Tại sao lại có tiếng Việt ở đây thưa anh?

Tôi có nhiều năm làm việc với nhóm Cánh Buồm – một nhóm chủ trương cải cách dạy tiếng Việt và dạy Văn, và tôi nhận ra phần nhiều chúng ta rất yếu tiếng mẹ đẻ, là hậu quả của những yếu kém trong giáo dục phổ thông trong một thời gian dài. Tình trạng này cần sớm được nhận thức đúng đắn và có những biện pháp thay đổi. Vị trí công tác của tôi cho phép tôi tiếp xúc một số lượng lớn đầu ra của giáo dục phổ thông cũng như đại học, và thấy rằng việc không tinh thông tiếng Việt rất hại đến hiệu suất học tập và công việc. Những kĩ năng giao tiếp (đọc,viết, diễn đạt, thuyết trình) bằng tiếng Việt mà không thạo thì không chỉ cản trở khả năng học tập, mà còn ảnh hưởng nặng đến con đường phát triển của bản thân khi làm việc. Phần lớn các bạn sinh viên hiện nay có tốc độ đọc sách tiếng Việt rất chậm. Còn khi đã đi làm, phần nhiều các bạn đều tỏ ra giao tiếp khá yếu, đặc biệt là khâu giao tiếp bằng văn bản, thư từ. Nếu bạn làm sếp của vài chục nhân viên không biết viết thư cho khách hàng hay đồng nghiệp cho nên hồn, bạn sẽ biết thế nào là đau tim.

Anh đặt tiếng Anh làm cái cốt lõi có phải là bởi vì nó đang là ngôn ngữ toàn cầu, ngôn ngữ của Internet, của thời đại Internet?

Đúng rồi! Có tiếng Anh là toàn bộ cơ hội tiếp cận tri thức mở toang ra, cơ hội phát triển cũng mở toang ra. Internet giúp ta có được một cơ hội bằng vàng về một thế giới phẳng. Nhưng nếu chúng ta không thạo tiếng Anh, thì chính cái Internet ấy lại dựng lên một bức “tường thành số” ngăn cách chúng ta với thế giới, chúng ta sẽ càng tụt hậu trong một thế giới đang tiến lên ầm ầm.

Ngày trước nếu không vào được đại học thì hầu như tắc tị đường phát triển cá nhân. Kể cả vào được đại học rồi thì có khi cũng tắc tị vì phần lớn đại học của chúng ta khá lạc hậu so với thế giới. Giờ thì Internet cho phép chúng ta ngồi ở bất kì đâu mà học từ những chuyên gia hàng đầu thế giới, thậm chí ở Stanford, ở MIT, ở Harvard, ở thung lũng Silicon, với chi phí gần như bằng 0.

Không có tiếng Anh, thử hỏi bạn nắm bắt cơ hội đó kiểu gì?

Về cái ngôn ngữ thứ 3, việc tinh thông một ngôn ngữ liệu có ít quá không?

Thú thật là không lập trình viên nào chỉ biết có một ngôn ngữ lập trình cả. Nếu bạn lập trình web thì vừa phải thạo JavaScript và các ngôn ngữ khác để làm front-end, rồi phải thạo Java (hoặc một nền tảng chính khác như .NET, PHP, Python, Ruby …) và những thứ khác để làm back-end. Tuy nhiên, bạn phải tinh thông một ngôn ngữ lập trình để hiểu được các ngóc ngách gích giắc nhất của nghề lập trình. Còn các thứ khác sẽ là phần bù, phần bổ sung để làm được việc.

Nhiều lập trình viên trứ danh khuyến khích chúng ta mỗi vài tháng học một ngôn ngữ mới. Thực tế thì một lập trình viên tốt có thể học một ngôn ngữ mới trong 1 tuần, bởi vì họ có những khái niệm và kĩ thuật nền tảng tốt từ trước đó, khi họ đã tinh thông một ngôn ngữ.

Anh là người ủng hộ việc phát triển phần mềm theo mô hình Agile, và tích cực tham gia các hoạt động như Agile Tour, ScrumDay Vietnam. Vậy anh có thể chia sẻ cho độc giả một số thông tin về những sự kiện thú vị này? Nếu các bạn trẻ muốn tìm hiểu về Agile/Scrum thì có thể tham gia vào những tổ chức và sự kiện nào tại Việt Nam thưa anh?

Đây là những hội thảo để cộng đồng những người phát triển phần mềm (chủ yếu là CEO/CTO, quản trị dự án, lập trình viên đang làm việc ở các công ty phát triển phần mềm) đến để học hỏi, chia sẻ về nghề phần mềm. Agile, Scrum, Lean ban đầu còn lạ lẫm với mọi người đến học, nhưng dần dần nó chỉ là cái cớ để mọi người đến đó trao đổi chuyện nghề. Tôi đã cùng tổ chức AgileTour từ những ngày đầu tiên, năm 2011, và nhận ra có những người năm nào cũng đến hội thảo để giao lưu rất nhiệt tình. Giá trị kết nối của các sự kiện này dường như lớn hơn nhiều so với các kiến thức rất hữu ích mà nó truyền tải.

Ngoài AgileTour là sân chơi bền bỉ nhất, nơi giới thiệu các chuyên gia Agile quốc tế đến để chia sẻ tri thức mới, chúng tôi còn tạo ra hàng loạt các cơ hội khác để phục vụ các đối tượng khác của cộng đồng Agile đang lớn mạnh: ScrumDay Vietnam để các đơn vị nội địa chia sẻ kinh nghiệm, CodeRetreat và CodingDojo cho lập trình viên luyện tập kĩ thuật lập trình Agile, Lean Mindset Workshop cho các nhà quản lí doanh nghiệp. Năm nay, cộng đồng Agile còn đón nhận sự kiện XPDay chuyên về eXtreme Programing và Scrum Gathering vào cuối tháng 5 này.

Nói một cách đơn giản, đó chính là những không gian học tập liên tục và suốt đời cho những người làm phần mềm ở Việt Nam.

Được biết mô hình phát triển phần mềm Agile đã khá phổ biến trên thế giới từ đầu những năm 2000’s, nhưng hiện nay vẫn rất khó để đưa Agile vào nội dung giảng dạy tại các trường Đại học ở Việt Nam. Và có ý kiến cho rằng Agile chỉ phù hợp với các startup nhỏ chứ không thể áp dụng cho doanh nghiệp gia công offshore do khác biệt về địa lý và múi giờ. Quan điểm của anh về vấn đề này như thế nào?

Phải nói rằng ở Việt Nam giờ Agile cũng đã phổ biến rồi. Cách đây khoảng 4 năm, học trò của tôi có khoe với tôi khi được nhận vào làm việc: “thấy anh phỏng vấn bảo có biết Scrum không, em chém một hồi thế là được nhận”, tức là biết Agile là một lợi thế lớn. Khi đó chúng tôi mở ra Agile Forum Vietnam, HanoiScrum và chỉ đếm được hơn 30 công ty đang áp dụng Agile. Giờ thì rất nhiều bản tin tuyển dụng ghi rõ luôn là “phải biết” Agile thì mới được tuyển. Hai năm gần đây, số doanh nghiệp đến với AgileTour và ScrumDay đã lên tới hơn ba trăm. Cái đó để cho thấy là Agile cũng đã dần trở nên “bình thường”. Cá nhân tôi rất vui về điều này.

Còn về việc Agile chỉ phù hợp với doanh nghiệp nhỏ chứ không phù hợp với doanh nghiệp lớn, thì tôi xin kể luôn các tên tuổi ra đây để bất cứ ai cũng có thể đến tìm hiểu kĩ hơn, ngay ở Việt Nam: FPT Software, Viettel ICT, Harvey Nash…

Bạn cũng dễ dàng tìm kiếm trên Internet về các doanh nghiệp dùng Agile ở quy mô lớn, phân tán nhiều châu lục. Tuy nhiên tư duy Agile lại có một câu hỏi ngược để mỗi nhà quản lí suy nghĩ: “vì sao cứ phải lớn?”. Đấy là một câu hỏi nghe thì đơn giản nhưng kì thực rất nhiêu khê mà tôi thỉnh thoảng phải đặt ra khi huấn luyện Agile ở các doanh nghiệp.

Hiện nay trên thế giới nổi lên các mô hình dạy học trực tuyến theo mô hình MOOC rất thành công như Khan Academy, Coursera, CodeSchool… và tại Việt Nam cũng có một số cá nhân, tổ chức đang áp dụng theo mô hình này. Có nhiều người còn vẽ ra cái viễn cảnh về ngày tận của các trường đại học kiểu truyền thống để nhường chỗ cho MOOC. Dưới góc nhìn của một nhà giáo dục thì quan điểm của anh về MOOC ra sao thưa anh?

Với MOOC, tôi đã quan sát trào lưu này từ khá lâu, bản thân đã tận dụng MOOC để học tập và giảng dạy. Gần đây tôi có một báo cáo ngắn về MOOC trong chuỗi seminar của Chủ tịch FPT Trương Gia Bình. Mọi người đều thấy đây quả thực là một cơ hội lớn cho mỗi người, đặc biệt là những nước kém phát triển như Việt Nam, không có điều kiện để tiếp cận nội dung giáo dục đỉnh cao. Nếu cầu thị, chúng ta có thể học được bất kì thứ gì chúng ta muốn, với chất lượng rất cao. Vấn đề chỉ còn là tiếng Anh và khả năng tự học. Đó chính là những năng lực cốt lõi mà tôi đã nhắc bên trên. Tiếng Anh chính là chìa khóa để xóa khoảng cách số trong thế giới phẳng.

Nhìn theo hướng đó, thì đúng là MOOC đang định hình lại cách nhìn về giáo dục toàn cầu. Còn “ngày tận thế của đại học” chỉ là cách nói văn hoa để ám chỉ về một thay đổi lớn đang diễn ra thôi.

Điều đặc biệt thú vị là các sáng kiến công nghệ giáo dục này phần nhiều có sự đóng góp rất lớn của giới IT. Các lập trình viên đang góp phần thay đổi thế giới rất mạnh mẽ. Những thứ như MOOC, Code.org hay Codecademy đang nhanh chóng thay đổi cách học lập trình của chúng ta. Việc học lập trình giờ đây bắt đầu sớm hơn (từ lớp 1), thú vị hơn, tương tác hơn, và giúp người học sáng tạo sớm hơn. Công nghệ giáo dục ngày nay đang tiến hóa rất nhanh và tạo ra rất nhiều cơ hội tuyệt vời cho người học.

Được biết anh và các đồng nghiệp tại Đại học FPT đã lập nên một blog về lĩnh vực lập trình rất uy tín là Tạp Chí Lập Trình (http://tapchilaptrinh.vn/). Anh có thể chia sẻ về TCLT đã ra đời trong hoàn cảnh nào, và mục tiêu cũng như định hướng phát triển TCLT là gì? Cũng như một số kết quả mà TCLT đã đạt được thưa anh?

Blog Tạp Chí Lập Trình là một trong chuỗi các nỗ lực của nhóm chúng tôi, đều xoay quanh triết lí Agile. Ban đầu chúng tôi mở trang HanoiScrum.net (song song với Scrum User Group cùng tên là HanoiScrum Group), thực hiện viết bài, dịch thuật, seminar, đào tạo, tổ chức hội thảo để người Việt Nam tiếp cận Agile,Scrum nhanh hơn; sau đó chúng tôi mở ra CodingDojo để mọi người luyện tập các phương pháp lập trình Agile (TDD, refactoring, simple design …), rồi tổ chức viết bài, chủ yếu là về Software Craftmanship và eXtreme Programming để đăng lên Tạp Chí Lập Trình. Đây là góc kĩ thuật cho các lập trình viên. Thông tin trên mạng thì quá nhiều, nhưng bằng tiếng Việt thì lại rất ít, tản mát và phần nhiều là chất lượng thấp. Chúng tôi mong muốn giúp cho lập trình viên học nhanh hơn một chút, đặc biệt là những người có vốn tiếng Anh chưa đủ tự tin để đọc số lượng lớn các bài viết bằng tiếng Anh để mở rộng hiểu biết và nâng cao tay nghề.

Nếu được đưa ra một lời khuyên cho các bạn trẻ đang theo đuổi ngành CNTT thì anh sẽ nói gì?

Nói là khuyên thì thú thật là tôi luôn tránh. Tôi gói các tâm sự của mình trong bài viết “Ken và Sun bàn về đào tạo lập trình viên”. Bạn có thể đọc để suy ngẫm thêm về nghề. Như cũng như ở bất kì một ngành nào khác, người làm nghề cần phải yêu nghề và học tập liên tục để nâng cao tay nghề. Tôi coi “năng lực tự học suốt đời” là cốt lõi nhất của mọi người trong thế giới ngày nay. Làm nghề IT thì năng lực ấy lại càng quan trọng, mang tính sống còn. Không trang bị đủ khả năng tự học liên tục, thì có thể sẽ phải tính trước ngày mình bị đào thải.

Cảm ơn anh đã tham gia phỏng vấn và cung cấp rất nhiều thông tin bổ ích cho độc giả của VinaCode. Chúc anh thành công với các kế hoạch sắp tới.

Cảm ơn VinaCode.