Chương Trình Fresher VNG: Trải Nghiệm Học Tập Đáng Giá Nhất Trong Sự Nghiệp

Cuối năm 2012. Mình là sinh viên sắp tốt nghiệp vào tháng 3/2013, và vừa được nhận vào Chương Trình Fresher của VNG.
Lúc đó mình đâu có biết rằng vài tháng ngắn ngủi đó sẽ trở thành trải nghiệm học tập đáng giá nhất trong toàn bộ career của mình.
Từ Giảng Đường Tới Thực Tế — Mọi Thứ Thay Đổi Hoàn Toàn
Ở đại học, mình sống trong một cái bubble thoải mái lắm. Dùng Windows, code bằng C#, query SQL Server. Thế giới của mình chỉ có bấy nhiêu. Rồi vào VNG, mới thấy mấy thứ mình biết chẳng thấm vào đâu.
Cú Sốc Linux
Mới vào mấy ngày đầu, anh mentor đưa cho cái USB có sẵn ISO Ubuntu rồi bảo: "Cài lên máy đi, từ giờ dùng Linux." Không Windows, không ai cầm tay chỉ việc. Mở máy lên chỉ thấy cái terminal đen thui nhìn lại mình.
Mình nhớ hồi đó struggle với mấy command cơ bản, nhớ cái Start menu quen thuộc đến phát khóc. Nhưng mà cái kiểu bị ép học đó lại chính là thứ mình cần nhất. Từ một đứa chưa bao giờ chạm Linux, mình dần navigate được terminal, dùng awk parse log file, viết shell script — những skill giờ mình vẫn xài mỗi ngày, 14 năm sau.
Từ C# Sang Java
VNG lúc đó đang transition từ PHP sang Java. Mình thì chưa bao giờ viết một dòng Java nào. Đại học dạy C#, mình tưởng thế là đủ rồi.
Đủ đâu.
Học Java buộc mình phải hiểu một điều: programming language chỉ là tool. Những concept — OOP, design pattern, architecture — đó mới là thứ quan trọng. Bài học này phải mất nhiều năm mới thực sự thấm, nhưng hạt giống thì được gieo từ hồi ở VNG.
Từ SQL Server Sang MySQL và Redis
Thế giới database của mình được mở rộng gần như qua một đêm. Trước giờ chỉ biết SQL Server, vào VNG thì phải làm việc với MySQL và lần đầu tiên chạm vào NoSQL — Redis.
Mình còn bị bắt dùng key-value database để build backend cho một game nhỏ. Lúc đó trong đầu chỉ nghĩ: "Sao không dùng relational database cho xong?" Phải mất nhiều năm mình mới hiểu rằng data access pattern khác nhau thì cần storage solution khác nhau — và đôi khi một key-value store đơn giản mới chính là tool phù hợp nhất.
Những Thứ Mình Nghe Nhưng 10 Năm Sau Mới Hiểu
Có những thứ nghe xong gật gù nhưng phải mất cả chục năm mới thực sự hiểu. VNG gieo hạt giống trong đầu mình, mà phải 10 năm sau mới nở.
OAuth 2.0
Hồi đó được dạy OAuth 2.0 trong chương trình. Mình gật gù, nhìn mấy flow diagram cơ bản, tưởng hiểu rồi. Nhưng thực sự hiểu OAuth — authorization grant, security implication, real-world edge case — thì phải tới khoảng 2022, đúng một thập kỷ sau.
ZooKeeper
Mình thấy ZooKeeper chạy trong production. Biết nó tồn tại, biết nó liên quan gì đó tới distributed system. Nhưng nó thực sự làm gì — distributed coordination, leader election, configuration management — mình chỉ hiểu được nhiều năm sau khi tự tay làm việc với distributed system.
Key-Value Database
Như đã kể, mình bị bắt dùng key-value database cho game backend. Trong đầu chỉ nghĩ: "Sao không dùng MySQL luôn cho rồi?" Câu trả lời — key-value store cho tốc độ read cực nhanh, horizontal scalability, data model đơn giản hơn cho một số use case — mãi sau này đi làm nhiều, trải qua nhiều architecture khác nhau mình mới ngộ ra.
Những Lần Đầu Tiên Định Hình Career Của Mình
Chương trình fresher VNG là chuỗi liên tục những "lần đầu tiên", mỗi lần lại mở rộng thêm perspective của mình:
Lần đầu tiên nghe từ "SDK".
Mình được giao integrate Zing Me SDK, rồi sau đó Zalo SDK, vào mấy game nhỏ và mobile app mà team đang develop. Nhìn lại, chắc bọn mình basically là beta tester — giúp validate mấy SDK đó trước khi release ra market. Lúc đó "SDK" là gì mình còn chưa rõ lắm. Giờ thì hiểu rõ SDK là gì và dùng chúng thường xuyên.
Lần đầu tiên nghe "REST API" và "JSON".
Ở đại học mình biết SOAP với XML. Vào VNG, mọi người nói REST với JSON như chuyện hiển nhiên. Mình thì ngơ ngác. Nhưng chỉ vài tuần sau đã build API với chúng. So với SOAP thì đơn giản đến mức mình tự hỏi sao trước giờ phải dùng SOAP chi cho khổ — và rõ ràng industry đang đi theo hướng này.
Lần đầu tiên chạm vào mobile development.
Mà không chỉ một platform đâu. Mình được sờ vào PhoneGap (tiền thân của Cordova), Android với Java, iOS với Objective-C, và cả BlackBerry với Qt (C++). Năm 2012, mobile landscape còn phân mảnh và hoang dã lắm. Nhờ được tiếp xúc sớm mà mình có perspective cross-platform cực kỳ giá trị về sau.
Lần đầu tiên thấy game development với Cocos2d-x.
Mình ngồi xem mấy anh developer build game bằng Cocos2d-x mà choáng — game development khác xa mấy ứng dụng CRUD mình học ở trường.
Lần đầu tiên hiểu logging và shell scripting.
Từ Windows CMD nhảy sang Linux Bash là cả một paradigm shift. Học dùng awk, grep, proper logging — không chỉ là tool, mà là cả một cách tư duy khác về debugging và observability.
Con Người Tạo Nên Sự Khác Biệt
Thứ làm chương trình fresher VNG đặc biệt không chỉ là technology. Mà là con người.
Mấy anh chị senior engineer và team lead ở đó cực kỳ giàu experience, đã build large-scale system nhiều năm. Họ không chỉ dạy bọn mình code — họ dạy cách tư duy về problem, cách approach system design, cách debug production issue.
Lượng knowledge họ chia sẻ nhiều đến mức overwhelming. Thật lòng, lúc đó mình quá tải hoàn toàn. Nhưng đó chính là point — họ cho bọn mình nhiều hơn khả năng hấp thụ, vì biết rằng các mảnh ghép sẽ dần khớp vào nhau qua nhiều năm. Và đúng là vậy thật.
Điều Mình Muốn Nói Với Mọi Intern và Fresher
Mình không thể nhớ hết mọi thứ mình đã học trong chương trình fresher VNG. Quá nhiều bài học, quá nhiều "lần đầu tiên", quá nhiều khoảnh khắc bối rối mà sau này mới sáng tỏ.
Nhưng đây là điều mình biết chắc: giai đoạn intern/fresher đó là lúc mình học được nhiều knowledge thực tế nhất trong toàn bộ career.
Nhiều hơn đại học. Nhiều hơn bất kỳ khoá học online nào. Nhiều hơn hầu hết các công việc sau này.
Nếu bạn sắp tốt nghiệp, hoặc đang trong chương trình intern hay fresher, mình chỉ muốn nói một điều:
Tận dụng thời gian này. Tận dụng cơ hội này. Học nhiều nhất có thể.
Đây không phải lúc để coast. Đây không phải lúc để chỉ "cho qua". Đây là lúc để:
- Explore — Thử mọi technology được đặt trước mặt bạn, dù nó có overwhelming đi nữa
- Hỏi thật nhiều — Senior expect bạn hỏi. Câu hỏi ngu duy nhất là câu hỏi bạn không dám hỏi
- Chấp nhận uncomfortable — Nếu mọi thứ đều dễ, bạn chưa học đủ
- Xác định strength của bạn — Chú ý xem cái gì khiến bạn hứng thú, cái gì đến tự nhiên, cái gì bạn muốn tìm hiểu sâu hơn
- Xây foundation — Fundamental bạn học bây giờ sẽ compound effect trong 10-20 năm tới
Đừng lãng phí giai đoạn này. Nó ngắn, dồn dập, và không bao giờ quay lại.
Nhìn Lại Sau 14 Năm
Giờ là 2026. Đã 14 năm kể từ cái USB chứa ISO Ubuntu đó. Technology thay đổi chóng mặt — Java evolve liên tục, Redis lớn mạnh, REST API có mặt khắp nơi, mobile development thì khác xưa hoàn toàn.
Nhưng những bài học từ VNG thì không đổi:
- Luôn adaptable — Tool và technology mới sẽ xuất hiện hoài, phải sẵn sàng học
- Fundamental quan trọng hơn framework — Language, framework đến rồi đi, nhưng hiểu biết về system, architecture, problem-solving thì theo mình cả đời
- Chưa hiểu ngay cũng không sao — Có những thứ cần nhiều năm experience mới thực sự click. Cứ tiếp thu đi, rồi sẽ hiểu
- Người xung quanh là resource lớn nhất — Học từ senior đi. Experience của họ là vô giá
Gửi mấy anh chị senior engineer và team lead ở VNG đã bỏ thời gian dạy dỗ một thằng fresher non choẹt năm 2012: cảm ơn anh chị rất nhiều. Anh chị đã định hình toàn bộ career của mình, dù phải mất cả thập kỷ mình mới nhận ra điều đó.
Và gửi mọi intern, fresher đang đọc bài này: Bây giờ là thời của bạn. Hãy tận dụng nó.
📬 Đăng ký nhận bản tin
Nhận những bài viết mới nhất qua email mỗi tuần. Không spam, hủy đăng ký bất cứ lúc nào.
Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất cứ lúc nào.
💬 Comments
Đăng nhập để bình luận
Chúng tôi sẽ không đăng bất cứ điều gì mà không có sự cho phép của bạn.