"Thần đồng lập trình” FPT Aptech và bộ thành tích đáng nể về CNTT
Từ những kiến thức đã có sau quá trình học tại FPT Aptech, Kim Hảo làm khá nhiều dự án lập trình, thi đậu vào lớp chuyên Tin trường Phổ thông Năng Khiếu ĐHQG TP.HCM và giành được rất nhiều giải thưởng ở các hội thi trong và ngoài nước từ khi còn là học sinh Trung học.
PV: Được biết, Hảo bắt đầu học lập trình từ khi mới 11-12 tuổi. Vì sao bạn quyết định chọn ngành Lập trình từ khi còn rất nhỏ tuổi?
Mình may mắn được tiếp xúc với máy tính từ thời học mẫu giáo, nhưng khi đó mình chỉ biết chơi vài game đơn giản hay vẽ hình bằng phần mềm Paint. Tới năm mình lớp 2, ba mình là giáo viên ở trường THCS phải học lấy bằng A Tin học, mình đòi đi học chung với ba và đã lấy được bằng A loại giỏi giống như ba. Từ khi đó, mình không còn thích chơi game nữa mà lại thích “vọc” máy tính. Cho tới năm mình lớp 3, khi thấy ba nhập điểm vào file Excel nhiều thao tác thủ công cứ lặp đi lặp lại, mình tự hỏi “Tại sao máy thông minh thế này mà lại không tự làm những việc ấy?”. Lên mạng tìm hiểu, mình biết có thể dùng VBA để lập trình cho Excel làm những thao tác theo ý muốn của mình. Vậy là mình vừa học vừa làm, tạo ra một sản phẩm nhỏ giúp ba mình nhập điểm nhanh, chính xác và ít tốn công sức hơn. Đó là chương trình đầu tiên mình viết, và cũng là cánh cửa đưa mình tới niềm đam mê vô tận với máy tính và lập trình.
Càng làm nhiều thứ, mình càng thấy thích máy tính và lập trình hơn, vì những sản phẩm mình làm ra hữu ích cho những người xung quanh. Sản phẩm đầu tiên mình làm cho ba, còn sản phẩm thứ hai mình tạo ra lúc đang học lớp 5 là Hệ thống quản lý thiết bị điện từ xa qua Internet để giúp mẹ không lo lắng khi quên tắt các thiết bị điện khi ra khỏi nhà. Sản phẩm tiếp theo mình là Máy tính hóa học để giúp chị mình học Hóa dễ dàng và hiệu quả hơn.
Kỹ năng lập trình khiến mình có tư duy logic và mạch lạc hơn khi suy nghĩ về các vấn đề không chỉ khi code, mà còn đối với những vấn đề khác trong cuộc sống. Nó cũng giúp mình tiết kiệm thời gian đối với những công việc có tính lặp đi lặp lại. Thay vì phải mất hàng giờ để làm, mình có thể tự chủ động viết một ứng dụng nhỏ làm thay cho mình, chỉ mất vài phút để hoàn thành công việc.
PV: Quyết định vừa học ở FPT Aptech, vừa học ở trường, Hảo có gặp nhiều áp lực?
Thật ra lịch học ở FPT Aptech vào buổi tối nên không ảnh hưởng gì đến thời gian học trên trường của mình. Các bạn cùng lớp mình cũng đi học thêm cả ngày, thì mình chỉ chú ý nghe thầy cô giảng bài trên lớp và tranh thủ hoàn thành bài tập trên lớp nên mình không cần đi học thêm. Vì vậy, giờ học ở FPT Aptech có thể xem là giờ “học thêm” của mình - thời gian học “môn học” mà mình thích nhất!
PV: Việc bạn lựa chọn học lập trình ở FPT Aptech có được gia đình ủng hộ, và quan niệm của bạn về việc học đại học?
Mình rất may mắn được ba mẹ ủng hộ mình trong mọi việc mình muốn làm. Mình được học bổng 2 môn trong chương trình 2 năm của FPT Aptech và nói với ba mẹ rằng mình thấy rất thích. Mình cũng không dám vòi vĩnh ba mẹ cho học, vì học phí lúc đó cũng không nhỏ, nhưng chính ba mẹ là người gợi ý cho mình học toàn bộ khóa học lập trình.
Theo mình, đại học sẽ cho mình những kiến thức phục vụ công việc hoặc nghiên cứu mang tính khoa học sau này. Tuy nhiên, đại học không phải là con đường bắt buộc, vì mình cũng có nhiều con đường khác nhau để lựa chọn khi không học đại học.
Lựa chọn học ở FPT Aptech khi mình học lớp 5 là một lựa chọn đúng đắn và mình chắc chắn không bao giờ hối hận về việc này. Học lập trình ở FPT Aptech cho mình kiến thức về công cụ và nền tảng để sau này khi cần dùng đến mình sẽ không bị bỡ ngỡ và mất nhiều thời gian để “mò mẫm” từ đầu.
PV: Những khó khăn khi học lập trình mà bạn đã gặp phải?
Thật ra học lập trình tiện lợi ở chỗ chỉ cần chiếc máy tính là đủ, không cần dụng cụ hay thiết bị phức tạp, cồng kềnh. Tuy nhiên muốn học lập trình tốt cần phải có năng lực tự học cao, vì lượng kiến thức rất lớn và thầy cô không thể truyền tải toàn bộ nó trong thời gian có hạn trên lớp. Mình cũng cần phải biết quản lý áp lực hiệu quả, nhất là trong giai đoạn deadline để có thể hoàn thành sản phẩm theo đúng yêu cầu.
Nhiều người code rất nhanh, nhưng khi gặp lỗi thì debug rất cực. Mình thì ngược lại, mình dành nhiều thời gian để lên kế hoạch trước khi bắt tay vào code, nên cuối cùng có ít lỗi và sản phẩm cũng dễ debug hơn nhiều. Nhưng khi làm trên Low-level Firmware thì có nhiều vấn đề nảy sinh từ cả phần cứng và phần mềm nên đôi khi mình tìm cả tháng trời mới tìm ra nguyên nhân gây ra một lỗi nhỏ trong hệ thống.
PV: Công việc lập trình khá nhọc công khi sửa lỗi, vậy động lực nào để bạn theo đuổi ngành học này đến bây giờ?
Từ sản phẩm đầu tiên, mình đã gặp rất nhiều khó khăn, cộng với việc mình tự học không có người hướng dẫn lại càng mất thời gian hơn nữa. Mình mất hẳn 1 năm để vừa học vừa làm sản phẩm thứ hai, với số lần thất bại không đếm xuể được. Chính vì vậy, mình không tưởng tượng ra một con đường màu hồng trong việc theo đuổi đam mê. Mình theo đuổi, đơn giản vì mình thích lập trình, và ngành này thật sự hữu ích cho mọi người xung quanh.
Mình vẫn còn quãng đường dài để đi, và mình cũng không tính toán quá xa cho tương lai được. Nhưng tương lai gần thì mình muốn sẽ được làm việc trong lĩnh vực Trí tuệ nhân tạo (AI).
PV: Bạn có thể chia sẻ những trải nghiệm và thành tích có được sau khi học xong ngành lập trình ở FPT Aptech?
Mình đã được ứng dụng những kiến thức có được ở FPT Aptech và tự học hỏi tìm hiểu thêm về ngành lập trình. Từ những kiến thức có được, mình đã làm khá nhiều dự án, thi đậu vào lớp chuyên Tin trường Phổ thông Năng Khiếu – Đại học Quốc gia TP.HCM và giành được một số các giải thưởng ở các hội thi trong và ngoài nước như:
Huy chương vàng triển lãm sáng tạo trẻ quốc tế IEYI 2 năm liên tiếp tại Malaysia (2013 và 2014)
Huy chương vàng của Viện sáng tạo trẻ Indonesia
Giải thưởng đặc biệt của Viện sáng tạo Hàn lâm Hàn Quốc
Giải thưởng Best Young Inventer của Tổ chức sở hữu trí tuệ thế giới WIPO
Nhận 2 Bằng khen của Thủ tướng Chính phủ năm 2014 (Thủ tướng Nguyễn Tấn Dũng) và năm 2016 (Thủ tướng Nguyễn Xuân Phúc)
Đạt 5 giải Nhất Hội thi Tin học trẻ Toàn quốc trong 4 năm liên tiếp (2012 đến 2015)
Đạt 2 giải Nhất Cuộc thi Sáng tạo dành cho thanh thiếu niên nhi đồng Toàn quốc (2013 và 2015)
Nhận 6 huy hiệu Tuổi trẻ sáng tạo của Trung ương Đoàn, 1 huy hiệu Thành phố Hồ Chí Minh
Nhận các bằng khen của Trung ương Đoàn, Bộ Giáo dục và Đào tạo, Bộ Thông tin & Truyền thông, UBND Thành phố, Hội đồng đội Trung ương, Liên hiệp các hội Khoa học và Kỹ thuật Việt Nam, Tổng Liên đoàn Lao động Việt Nam…
PV: Bạn có thể chia sẻ về công việc hiện tại và định hướng sắp tới?
Mình đang làm tại Zalo Core Backend, nơi chịu trách nhiệm code cho những Core Services của hệ thống như In-house DBs, Caching Servers, Proxies… cho Zalo Group (bao gồm các sản phẩm Zalo, Zing MP3, Zing News, Zing TV, Báo Mới, Adtima…)
Công việc chủ yếu của mình là viết thêm Features mới cho hệ thống và Optimize những tính năng có sẵn. Những hệ thống ở đây đều hỏi thời gian Down-time cực thấp, thời gian Response luôn nằm trong ngưỡng giới hạn và chịu được Server Crash mà không bị mất toàn bộ Data. Chính vì vậy, mọi tính năng đều phải được Plan trước kỹ càng và Test kỹ trước khi Deploy.
Hiện tại là học sinh nên mình sẽ cố gắng hoàn thành tốt công việc của mình. Nếu có thời gian, mình sẽ tìm hiểu và bắt tay làm một dự án mới để học về lĩnh vực Trí tuệ nhân tạo (AI).
PV: Lời khuyên cho các bạn trẻ muốn thành công khi theo đuổi đam mê lập trình?
Ngành CNTT luôn là một ngành hot trong thời gian gần đây, và nhu cầu tuyển nhân sự chất lượng cao từ thị trường rất lớn. Đây sẽ là cơ hội và là thử thách cho những ai muốn nắm bắt xu thế này.
Thực tế, sau khi làm việc trong môi trường chuyên nghiệp, với Codebase và lượng người dùng lớn, mình đã rút ra những kinh nghiệm sau: Thứ nhất, các bạn nên học thuật toán và cấu trúc dữ liệu cơ bản, vì nó sẽ rất hữu ích khi Scale hệ thống lớn. Thứ hai, đọc code và hiểu code cũng là một kỹ năng quan trọng. Khi Codebase có hàng trăm ngàn dòng code thì việc đọc hiểu không dễ như khi đọc app do mình tự viết hay những app nhỏ. Viết code để người khác hiểu được cũng quan trọng không kém. Thứ ba, kỹ năng làm việc đội nhóm rất quan trọng, nên biết dùng các công cụ Source Version Control để quản lý code và làm việc chung với nhiều người. Thứ tư, TESTING! Code Production Crash thì hậu quả chỉ có từ xấu đến rất xấu thôi, nên luyện tập kỹ năng viết code dễ test, và tự viết test các Corner Cases để đảm bảo không xảy ra logic cũng như Runtime Error.
Cảm ơn Hảo vì những chia sẻ quý giá của bạn! Chúc Hảo ngày càng thành công và vươn xa hơn nữa trong tương lai!
Theo FAI
Tổ chức Giáo dục FPT - fpt.edu.vn