Đặng Kim Thi: Yêu nghề mới giỏi nghề được

thidkSáng nay chúng ta cùng trò chuyện với chị Đặng Kim Thi (ThiDK), một lập trình viên giàu kinh nghiệm, giảng viên lập trình tại Hà Nội, một người rất tích cực học tập và truyền bá Agile tới sinh viên của mình. Khác với những người đồng nghiệp lập trình viên nam, người phụ nữ đằm thắm mê nghề code này sẽ trải lòng về những trải nghiệm và trăn trở đối với nghề nghiệp cô theo đuổi. Chúng ta cùng nghe chị nói về cái mà mọi người rất ngại đề cập: lòng yêu nghề.

ABF: Xin chào chị Thi, ABF rất hân hạnh được trò chuyện cùng chị về Agile, Scrum và đào tạo lập trình viên .

ThiDK:  Xin chào AgileBreakFast, tôi rất vui lòng.

ABF: Chị có thể bật mí đôi chút về con đường làm nghề lập trình của chị được không?

ThiDK: Dạ, tôi làm lập trình cũng lâu lâu rồi, từ năm 2004. Từ đó tới nay đã lăn lộn qua 3 công ty phần mềm, thoáng cái, mà đã hơn 11 năm rồi đấy nhỉ! Giờ tôi vẫn đang tiếp tục hành nghề.

ABF: Chị có thấy là người làm nghề lập trình hiện nay có dễ kiếm sống không? Trên mạng truyền nhau câu nói “I am a programmer, I have no life”. Trong khi lại có những lập trình viên giàu nứt đố đổ vách như Bill Gates hay Mark Zuckerberg?

ThiDK: Tôi nghĩ, mức lương trung bình của nghề lập trình ở Việt Nam tuy không cao so với thế giới, nhưng cao hơn các nghề khác. Tôi có anh bạn, giờ đang làm lập trình trong thành phố Hồ Chí Minh, hắn làm 2 job, lương tháng sau khi trừ thuế đi thì được tầm 70 triệu. Ngoài ra, có bạn sinh viên ra trường, mức lương 8-10 triệu. Thậm chí, lớp tôi đang dạy, có bạn học tới kỳ 2, mà đã đi làm với mức lương 8.5 triệu rồi. Tuy nhiên, thu nhập thấp dưới 5 triệu/tháng thì cũng có.

Xét cho cùng thì so với nghề khác, thì nghề này vẫn dễ kiếm sống. Còn cái quả “no life” mà bạn nói ấy, thì tôi nghĩ họ ám chỉ tới việc lập trình viên làm việc quên tháng ngày, OT (làm ngoài giờ, thường tới khuya) liên tục, code xuyên màn đêm nên chả có thời gian cho nhịp sống thường ngày. Tôi thấy bạn bè làm nghề vẫn hạnh phúc đấy thôi. Đôi khi được OT cũng là một niềm hạnh phúc, vì khi OT là khi tinh thần đồng đội lên cao ngút. Nhưng dù sao, nếu OT triền miên thì đúng là không ổn. Lúc đó, thì cần xem xét triển khai Agile ngay 🙂

ABF: Tới nay chị đã đi dạy lập trình được mấy năm rồi?

ThiDK: Tôi đi dạy lập trình từ năm 2010. Giờ đã bước sang năm thứ 6 trong nghề rồi nhỉ !

ABF: Vừa code, vừa dạy có vất vả không?

ThiDK: Vất thì có vất, nhưng nó bổ trợ cho nhau rất tốt. Và vất nhưng vui thì vẫn vượt qua được.

ABF: Theo chị thì dạy lập trình và bản thân việc lập trình có khác xa nhau lắm không?

ThiDK: Thực ra, thì cái chữ “khác xa” của bạn nó hơi mơ hồ. Khác thì có khác chứ, việc dạy dỗ người khác làm được việc khó hơn việc mình tự mày mò để làm được việc. Việc dạy lập trình là một công việc khá phức tạp và vất vả nhưng vui vẻ, đòi hỏi nhiều kỹ năng, cả cứng lẫn mềm. Bản thân việc lập trình thì chỉ cần kỹ năng code, google tốt là ok. Còn việc dạy dỗ cần nhiều hơn thế.

ABF: À mà cho tôi tò mò: đối với chị, việc học lập trình có khó không?

ThiDK: Không khó. Chính xác là tôi bị nó mê hoặc, nên lúc học là thấy vui và thỉnh thoảng thấy có tí cay cú. Cay là vì có bug mãi mà không fix được, đôi khi fix xong cái bug mà sướng như điên. Chắc ai lập trình rồi cũng hiểu cái cảm giác thoả thuê sau khi fix xong bug. Vì thế về cơ bản là tôi thấy không khó, mà là cứ bị hứng thú nó cuốn đi thôi. Không khó nhưng cần sự chăm chỉ và bền bỉ. Lười thì làm gì cũng không được, đặc biệt là lập trình 😀

ABF: Thế dạy người khác lập trình có khó không? Khó nhất chỗ nào?

ThiDK: Khó chứ. Nhưng khi mình nắm được nguyên lý rồi thì ít khó hơn. Khó nhất là ở chỗ khơi dậy được tình yêu lập trình của sinh viên. Bạn nghe có vẻ thấy sến phải không? Nhưng tôi nói thật đấy. Làm gì cũng cần tình yêu. Làm lập trình cũng thế. Và nếu bạn có niềm hân hoan khi viết code, có sự hưng phấn khi fix bug, có sự sướng vui tột độ khi hoàn thành một bài tập nhỏ. Đó chính là tình yêu đấy. Và nhiệm vụ của giáo viên là làm sao để cuốn sinh viên đi vào được cái nhịp đó. Nếu sinh viên làm được bài tập, thì hẳn là họ sẽ vui. Và tình yêu cứ thế lớn dần theo năm tháng. Nói dông nói dài, tóm lại là khó. Và khó nhất là cuốn sinh viên đi theo nhịp học của mình và khơi dậy trong họ động lực học tập tự thân.

ABF: Tại sao lại cần động lực học tập tự thân, cái tự thân bạn nói tới đây cụ thể là gì?

ThiDK: Trong nghề lập trình, cái mới nó cập nhật từng ngày từng giờ. Vì thế, nếu bạn không tự học được, khả năng tự học của bạn không có, kỹ năng tự học của bạn không tốt, thì bạn không thể làm chủ tương lai nghề nghiệp của mình được. Nếu bạn có một kỹ năng tự học tuyệt vời thì bạn sẽ có tương lai tuyệt vời trong nghề lập trình. Vì thế, một trong những cái mà tôi luôn hướng học trò tới là họ tự mình học và tôi sẽ định hướng cho họ, chỉ cho họ cách tốt nhất để học. Tôi mong muốn sinh viên của mình sẽ luôn học được bất cứ cái gì mà họ muốn, không phụ thuộc vào thày cô trường lớp hay chương trình đào tạo.

ABF: Nhiều người nói là chương trình đào tạo lập trình hiện nay không theo kịp sự biến chuyển của công nghệ. Chị có nhận xét gì về các chương trình đào tạo lập trình viên hiện nay?

ThiDK: Các chương trình đào tạo lập trình viên hiện nay của bạn là muốn nói tới môi trường nào? Trường đại học, trung tâm dạy nghề, học online…? Tôi thì thấy các chương trình mà tôi đang dạy, cập nhật liên tục và hoàn toàn bắt kịp với sự chuyển biến của công nghệ. Ngoài ra, nó cũng có nhược điểm là chưa thể bao phủ hết toàn bộ các mảng nóng mà thị trường đang cần. Tuy nhiên, giờ học online cũng dễ mà. Sinh viên cần biết cách tận dụng các trang học online như Udemy, Coursera, Code School…để cập nhật cái mới, cái thiếu, cái mình cần. Cần thì học lấy mà dùng, nhà trường có bao giờ dạy được hết đâu!

ABF: Chị có theo dõi xu hướng Agile và Software Craftsmanship trong thời gian gần đây không?

ThiDK: Có chứ, hay vậy mà, hot vậy mà không theo dõi sao được.

ABF: Theo chị xu hướng đó nói lên điều gì?

ThiDK: Xu hướng đó nói lên rằng cộng đồng làm nghề lập trình đang ngày một lớn mạnh và đang chuyên nghiệp dần đều lên để bắt kịp với nhịp điệu phát triển phần mềm trên thế giới. Ngoài ra, tôi thấy có nhiều công ty rất muốn áp dụng Agile vào quy trình phát triển phần mềm cho công ty, tuy nhiên họ còn lúng túng khi áp dụng, và có một số đã bỏ cuộc, có một số thì khá bi quan rằng thì sẽ chẳng đi tới đâu. Hy vọng rằng, trong thời gian tới Agile sẽ được ngày càng phổ biến và có nhiều công ty áp dụng triển khai thành công.

ABF: Chị có hướng dẫn học trò của mình học Agile không? Sớm nay muộn?

ThiDK: Các project cuối kỳ tại FPT Aptech, sinh viên đều được làm project và triển khai theo hướng Agile. Nhưng tôi đang ấp ủ có thể hướng dẫn sinh viên ngay từ môn học đầu tiên đã áp dụng Agile trong bài tập lớn. Bạn nghĩ thế có quá sớm không?

ABF: Như chúng tôi được biết, quan điểm của một Giám đốc Đào tạo một trung tâm đào tạo lập trình là không sớm. Nó cũng gần với nhiều thực tiễn trên thế giới. Ở Hà Lan có sáng kiến eduScrum, học trò phổ thông đã được thực hành Scrum rồi. Cũng không có gì là sớm. Có người nhận định định rằng, càng học sớm càng tốt.

ThiDK: Đúng vậy. Tôi nghĩ càng già càng khó học. Vì người già đã hằn nhiều thói quen, nhiều nếp nghĩ trong đầu. Hằn càng nhiều càng khó để xoá mờ và ghi đè cái mới lên. Tuy nhiên, không phải tất cả những ai già đều khó học cả 🙂 Tôi nghĩ học càng sớm càng tốt. Sinh viên mới vào nghề cũng giống như một tờ giấy trắng với ngành lập trình vậy, bạn vẽ gì nên đó là nó nhận được luôn. Vẽ càng đẹp, càng chuẩn mực thì càng tốt.

ABF: Liệu sinh viên IT có thể tự học Agile mà thành thạo được không? Hay phải tham gia các nhóm dự án chuyên nghiệp?

ThiDK: Tôi nghĩ câu chuyện Agile là câu chuyện của một nhóm làm việc. Phương pháp Agile thì có thể tự học được, còn để thấm đẫm nguyên lý của nó thì nhất định phải được trải nghiệm thực sự với công việc cụ thể và con người cụ thể cho một dự án cụ thể. Còn nhóm dự án chuyên nghiệp nếu được tham gia cùng thì tốt, còn nếu không thì cũng không sao. Vì khi người ta có cơ hội va vấp giữa những người không chuyên là lúc người ta cũng học được nhiều. Và sinh viên cũng cần va vấp như thế. Với lại, cơ hội để một sinh viên tham gia vào một dự án chuyên nghiệp cũng không nhiều.

ABF: Liên quan đến chuyện học lập trình, theo chị phải mất bao lâu thì một lập trình viên mới thạo nghề được?

ThiDK: Cái này thì tuỳ người thôi bạn, tuỳ người đó nhanh hay chậm, chăm hay lười. Tuy nhiên, người ta có nguyên tắc “10.000 giờ” đấy, 10.000 giờ là cần thiết để thành thạo một nghề.

ABF: Xem ra để thành một lập trình viên chuyên nghiệp giỏi phải mất công tu luyện, chứ chẳng dễ dàng gì.

ThiDK: Nghề nào cũng cần tu luyện cả bạn ạ. Tôi có chị bạn làm nghề tóc, chị ấy làm từ những năm 2000 tới nay đã được 16 năm. Thế nhưng, năm nào chị ấy cũng đi học một cái gì đó mới và thường xuyên tham gia các show diễn, các khóa học ngắn hạn về tóc để nâng cao tay nghề. Thậm chí chị ấy còn đặt mua dài hạn các tạp chí về tóc, để cập nhật xu thế… Và vì cái sự chăm chỉ đó, hiệu tóc của chị ấy luôn đông khách.

Để trở thành lập trình viên giỏi thì người ta cũng cần tu luyện. Tu luyện ở đây được thể hiện bằng việc viết code nhiều, đọc sách nhiều, đọc báo nhiều, chơi bời nhiều. Viết code nhiều thì các kỹ năng vặt như dùng bàn phím cho thật siêu (shortkeys, tool) cho tới việc làm chủ ngôn ngữ lập trình thật nhanh nhạy, uyên thâm hơn. Viết code nhiều thì khả năng gặp bug sẽ nhiều, vì có làm thì mới có bug, không làm thì lấy đâu ra bug. Có bug nhiều thì khả năng fix bug ngày càng cao, trình độ code sẽ tăng, năng suất code sẽ tăng, sản phẩm sẽ hoàn thiện hơn.  Đọc sách nhiều thì mình sẽ có cái nhìn sâu sắc và toàn diện hơn về một vấn đề nào đó. Ví dụ, chỉ là học Java thôi, nếu bạn chỉ dừng ở code chạy được thôi, thì chưa đủ tốt. Còn khi đọc sách, thì bạn sẽ hiểu sâu hơn, bên cạnh cách đó thì tìm hiểu thêm các cách giải quyết vấn đề khác, tại sao người ta lại có thêm các cách kia. Ngoài ra, không chỉ đọc sách về kỹ thuật, lập trình viên cũng nên đọc sách khác ví dụ về mỹ thuật, về tâm lý. Từ đó, thì mình sẽ thiết kế ứng dụng có chiều sâu hơn, vì mình hiểu hơn về cái đẹp thì ứng dụng của mình sẽ đẹp hơn, mình hiểu về tâm lý con người hơn thì ứng dụng của mình sẽ tạo ra trải nghiệm tốt hơn cho người dùng. Đọc báo nhiều sẽ cho mình cái nhìn mới mẻ hơn, những cái mới thường sẽ có trên báo, ví dụ như trang SitePoint. Chơi bời nhiều sẽ cho mình cái đầu óc rộng mở hơn, kết nối được nhiều bạn bè hơn, từ đó mở rộng kho kinh nghiệm của mình, kiến thức của mình.

ABF: Ấy thế mà hiện nay tôi thấy lập trình viên viết code được dăm năm thì chê nghề code nó vất vả, nó bạc bẽo, rồi chuyển sang làm quản lí hoặc kinh doanh.

ThiDK: Vất vả thì đúng rồi, nghề nào chả vất vả. Nhưng lập trình viên hay phải lần mò đêm hôm hơn, nên cái cảm giác vất vả nó tăng lên. Bạc bẽo thì tôi nghĩ nhà tuyển dụng họ biết mình là ai, nên cái giá họ trả cho mình xứng đáng với việc mình đã làm cho họ thôi. Vì thế, đừng kêu họ bạc, hãy làm tốt nhất, tốt hơn cả mức cần thiết và rồi đàm phán lại với công ty là ổn thôi. Còn chuyện đòi chuyển nghề cũng là một tất yếu. Họ code lâu, thấy nhàm thì họ chuyển thôi. Giống như yêu đương ấy, đôi khi yêu nhau lâu rồi bạn cũng có thể thấy nhàm chán. Nếu chuyển được và thấy công việc mới phù hợp với năng lực của bản thân và tạo động lực cho bản thân, thì nên chuyển. Còn không thể chuyển được vì lý do này lý do khác, thì đó lại là câu chuyện khác. Nếu không thể chuyển được thì cố yêu lấy nghề, cố làm cho tốt nhất có thể thì tự nhiên tình yêu lại tới. Kiểu như làm mới bản thân, hay “hâm nóng” tình yêu ấy thôi. Vất vả cũng tạo ra hạnh phúc, vì bạn sẽ hạnh phúc thực sự khi bạn đắm mình trong công việc và sau đó được xả hơi 🙂

ABF: Chị thấy bây giờ lập trình viên thạo nghề có thiếu không?

ThiDK: Thiếu bạn ạ. Một phần do nhu cầu của thị trường ngày càng lớn, phần còn lại là do việc đào tạo chưa tới tầm, nên có sinh viên vẫn thất nghiệp, và có công ty vẫn thiếu người thạo nghề.

ABF: Làm sao để phát triển được đông đảo đội ngũ lập trình viên thạo nghề này?

ThiDK: Bạn hỏi câu hỏi khó thế! Việc này, tôi nghĩ để đào tạo được lập trình viên thạo nghề thì bản thân giáo viên cũng phải thạo nghề, và nhà trường phải có cầu nối với doanh nghiệp. Cầu nối với doanh nghiệp để tạo ra những cơ hội thực tập sớm cho sinh viên ngay từ khi ngồi trên ghế nhà trường. Cầu nối với doanh nghiệp để nhà trường có hướng đào tạo đúng cái thị trường đang cần, nhờ đó sinh viên sẽ không bị lạc lối khi ra trường.

ABF: Đã từng có ca nào mà chị thấy “bó tay” không dạy được không? Vì sao?  

ThiDK: Có chứ bạn. Có những lúc tôi thấy mình “bất lực” trước sinh viên. Nhưng những nỗ lực của giáo viên sẽ đều được sinh viên ghi nhận theo cách này hay cách khác. Vì thế, trước khi bó tay, mình cũng cần nỗ lực hết sức có thể. Vì đôi khi, sau khi tôi “bó tay” thì sinh viên lại học tốt lên. Đôi khi cứ để tự sinh viên ngã, rồi tự họ đứng dậy, tốt hơn là ta cứ dìu dắt nhiều quá. “Bó tay” có chiến thuật, cũng tốt!

ABF: Liệu Agile/Scrum có giúp gì cho việc giảng dạy lập trình của chị không?   

ThiDK: Bản thân tôi và các giáo viên vẫn áp dụng Agile trong quá trình giảng dạy cũng như làm việc. Nó giúp tôi nhiều chứ. Giúp tôi quản lý và tối ưu hoá công việc, cả năng suất lẫn chất lượng.

ABF: Chị nghĩ gì về câu chuyện Hà Đông FlappyBird? Liệu những ấn tượng Hà Đông có tác động gì vào đội ngũ nhà giáo IT không?

ThiDK: Hiện tượng Hà Đông đã tốn không ít bút mực của báo chí lẫn cộng đồng mạng. Tôi thì thấy, sau vụ Hà Đông, có nhiều thanh niên đã quyết chí startup bằng những ứng dụng trên điện thoại di động. Và phong trào học lập trình di động theo đó lên cao  ngút (đối với những người mà tôi biết). Nói thật, thì nó không tác động nhiều tới tôi – với vai trò là một giáo viên. Vì từ trước giờ, tôi vẫn luôn khuyến khích sinh viên tự làm App, tự mày mò. Tuy nhiên, tôi cũng chăm chỉ theo dõi thông tin về bạn ý, vì tôi ấn tượng với cách bạn ý làm nghề. Và từ cái cách bạn ý làm nghề, tôi coi như đó là một case để đưa ra làm ví dụ cho sinh viên khi cần.

ABF: Với tư cách là một lập trình viên, chị đã bao giờ mơ mình nổi tiếng như Hà Đông hay na ná thế chưa?

ThiDK: Như Hà Đông thì chưa từng mơ, nhưng na ná như thế thì có. Tôi nhớ, năm 2000, lần đầu tiên giải “Trí Tuệ Việt Nam” lên sóng vào mùng 1 tết Dương Lịch, và lúc đó tôi đang học lớp 10, tôi đã mơ ước gì mình có vé để được ngồi dưới hàng ghế khán giả xem. Sau đó, năm 2006, tôi đã được ngồi dưới hàng ghế của thí sinh tham dự và may mắn là cũng được vinh danh trên sân khấu. Giải Trí Tuệ Việt Nam cũng có thể coi là ước mơ trong đời lập trình viên của tôi :), và tôi đã chạm tay tới nó. Dù không phải là giải cao nhất, nhưng cũng là một điều gì đó đã đạt được, một niềm hạnh phúc nho nhỏ!

ABF: Chị có thần tượng ai trong ngành không?

ThiDK: Thật sự là tôi không thần tượng ai cả. Chỉ có điều, tôi thích đọc và tìm hiểu về những người thành công trong nghề. Từ những câu chuyện của họ, tôi có thêm nhiều tư liệu để bồi đắp cho cuộc đời làm nghề của mình, nghề giáo và nghề lập trình.

ABF: Nhân nói chuyện thần tượng, chị thấy vai trò của thần tượng là gì đối với các bạn trẻ?

ThiDK: Khi bạn thích bạn mê ai đó thì bạn thần tượng họ. Còn đóng vai trò gì thì tôi nghĩ nó không quá quan trọng.

ABF: Có giới hạn nào cho việc bắt chước thần tượng không?

ThiDK: Khi người ta thần tượng ai đó, hẳn là người thần tượng có điều gì đó mà họ mơ ước vươn tới. Và thể theo một cách tự nhiên trong tâm trí, nhiều thứ sẽ được bắt chước. Tuy nhiên, giới hạn thì tôi nghĩ là không có. Nhưng bắt chước đừng có quá lố bịch và gượng ép là được.

ABF: Chị nghĩ sao khi mà các bạn trẻ toàn thần tượng Pop star, còn chả ai thần tượng Lập trình viên giỏi cả?

ThiDK: Bạn nói thế nào ấy chứ, bạn dựa vào đâu mà bảo giới trẻ toàn  thần tượng Pop star. Tôi thấy đầy bạn trẻ mà tôi biết thần tượng Bill Gates, Steve Job và cả Hà Đông nữa.

ABF: Nhưng nếu hỏi ra thì ít người lắm. Tôi cá là các bạn trẻ dễ dàng kể ra những Sơn Tùng MTP, Hà Hồ, hay Justin Bieber, Taylor Swift hơn là mấy cái tên chị kể.

ThiDK: Tôi không nghĩ như bạn. Ai cũng dùng Windows, và hẳn là số người biết Bill Gates rất nhiều. Người người dùng Facebook và vì thế Mark Zuckerberg cũng là cái tên khối người biết. Đầy người mê mẩn iPhone, MacBook và vì thế số lượng fan của Steve Job là không hề nhỏ. Vì thế tôi không đồng ý với bạn 😉

ABF: Quay trở lại chuyện nghề. Cái nghề IT này có vòng quay nhanh khủng khiếp, cứ chưa đầy 2 năm lại có thế hệ công nghệ mới. Làm nghề này có bao giờ chị thấy mệt vì phải đuổi theo công nghệ không?

ThiDK: Không mệt bạn ạ. Mỏi thì có, vì cứ phải cập nhật mọi thứ liên tục. Nhưng nghề gì cũng cần cập nhật cả, chứ đâu chỉ IT. Tôi nói đơn giản, như nghề cắt tóc gội đầu ấy. Nghề đấy cũng phải làm mới thường xuyên mà. Thế nên, được cập nhật cái mới cũng là một niềm vui sống. Mỏi đấy nhưng mà vui, vui vì mỗi ngày mình đều có cái mới 🙂

ABF: Nhân câu chuyện về nghề phần mềm của chúng ta, chị có nhắn gửi gì tới những sinh viên của mình không?

ThiDK: Tôi hy vọng rằng những sinh viên của mình sẽ tìm đọc và học hỏi về Agile sớm nhất có thể. Hãy đọc, hãy thực hành và tạo nhóm để trải nghiệm cảm giác Agile.

ABF: Vô cùng cảm ơn chị về những câu chuyện rất đời của một lập trình viên, một giáo viên dạy lập trình. Tôi chắc hẳn sinh viên của chị sẽ luôn hãnh diện về cô giáo của mình lắm!

ThiDK: Bạn đừng dùng từ hãnh diện, nó làm tôi thấy hơi bị đề cao quá. Tôi chỉ mong được sinh viên yêu quý thôi! Và xin cảm ơn AgileBreakFast đã cho tôi cơ hội tuyệt vời này để chia sẻ những điều thường thường của nghề nghiệp. Cảm ơn 🙂

Tú Trâm thực hiện.

Đặng Kim Thi là một lập trình viên từng trải, giàu kinh nghiệm. Cô đã có hơn 10 năm làm trong lĩnh vực phát triển phần mềm cho các thị trường trong và ngoài nước. Từ năm 2010 đến nay, cô là giảng viên của FPT Aptech, và vẫn tiếp tục cộng tác với một công ty phần mềm để duy trì công việc viết code mỗi ngày.

Cô yêu thích lập trình và đam mê giáo dục. Mong muốn của cô là đào tạo ra được nhiều lập trình viên giỏi và giúp nhiều sinh viên tìm được việc làm ngay khi còn đang ngồi trên ghế nhà trường.

AgileBreakFast là blog đa chiều về Agile, Scrum, Lean do Học viện Agile bảo trợ.

phản hồi