+1

Viết cho mình ở tuổi 20: Nếu được học code lại từ đầu

Gần 4 năm đi làm. Quãng thời gian không dài cũng không ngắn, đủ để trải qua vài dự án, đổi vài tech stack, nhảy qua vài công ty, và may mắn được làm việc cùng những người mentor mà mỗi lần ngồi nói chuyện với họ mình lại thầm nghĩ "sao hồi đi học không ai nói cho mình cái này".

Giữa một đống deadline chồng chất, PR chờ review, với những lời nhắn ASAP bay đến liên tục, lẽ ra đầu óc mình phải tập trung vào công việc. Nhưng không hiểu sao, đầu mình lại trôi đi chỗ khác: nếu được quay lại thời sinh viên, biết những gì mình biết bây giờ, mình sẽ học khác đi như thế nào?

Nói thật, thời sinh viên mình học cũng không tệ. Điểm ổn, đồ án cũng qua, cũng biết code, cũng biết tư duy. Nhưng nhìn lại thì mình thấy có nhiều thứ lẽ ra có thể làm hiệu quả hơn. Không phải sai, chỉ là chưa tối ưu.

Thế là thay vì quay lại với cái ticket đang dở, mình lại ngồi tản mạn đôi điều. Không phải để tiếc nuối hay trách mình ngày xưa, vì thời đó mình cũng đã cố gắng theo cách của mình rồi. Nhưng nếu được chọn lại, với nhận thức của bây giờ và công cụ của năm 2026, mình sẽ làm khác đi những gì?


1. Học theo thứ mình muốn "xây", không chỉ học theo môn

Nhìn lại 4 năm đại học, mình nhận ra phần lớn kiến thức mình nhớ lâu nhất không đến từ giảng đường mà đến từ những lần tự mày mò làm cái gì đó cho riêng mình. Trong khi đó, mấy môn học xong thi xong thì kiến thức cũng bay theo, nằm lại đâu đó trong mấy trang slide mà mình chẳng bao giờ mở lại.

image.png

Nếu quay lại, mình sẽ chọn thêm một cách học song song với trên trường: học theo project. Đặt ra một bài toán cụ thể rồi tự tìm cách giải. Muốn viết một cái tool tự động crawl điểm trên portal trường? Thì buộc phải hiểu HTTP, database, cách schedule job. Muốn làm con bot Telegram nhắc lịch thi cho cả lớp? Thì phải đọc API docs, xử lý request, tìm cách deploy cho nó chạy 24/7.

Không ai bắt mình học những thứ đó, nhưng khi có một sản phẩm cụ thể cần hoàn thành thì động lực tự nhiên khác hẳn. Và kiến thức học được theo kiểu đó thì dính vào đầu lâu hơn rất nhiều so với học để thi.

2. Học cách đặt câu hỏi, và học nhiều hơn chỉ là code

Hồi sinh viên, mỗi khi bị stuck, phản xạ đầu tiên của mình là Google nguyên dòng error rồi copy paste cách fix. Nhanh, gọn, chạy được. Nhưng mình không bao giờ dừng lại để hỏi: "Tại sao nó lỗi? Cái gì đang thực sự xảy ra bên dưới?" Nếu quay lại, mình sẽ tập đặt câu hỏi đúng trước khi tìm câu trả lời. "Cái này hoạt động thế nào?" quan trọng hơn "Làm sao để fix?". Bởi vì người biết fix lỗi thì sửa được một bug. Người hiểu tại sao lỗi xảy ra thì tránh được mười bug.

image.png

Và một điều nữa: đừng chỉ học code. Thời sinh viên, mình nghĩ dev thì chỉ cần biết code giỏi là đủ. Đi làm rồi mới thấy, những thứ tưởng như "không liên quan" lại cần thiết không kém: cách giao tiếp trong team, cách viết một cái message cho rõ ý, cách lắng nghe requirement từ người không biết kỹ thuật, hay thậm chí là cách trình bày một ý tưởng cho thuyết phục. Code chỉ là một phần. Phần còn lại là con người, là tư duy, là cách mình làm việc với những người xung quanh.

3. Tìm hiểu về architecture sớm hơn

Thời sinh viên, mình chỉ quan tâm một thứ: code chạy được là xong. Không nghĩ tại sao phải tách service, không hiểu vì sao cần design pattern, không quan tâm cái API mình viết có scale được không. Mãi đến khi đi làm, lần đầu tiên đụng vào một hệ thống có cả chục service gọi qua gọi lại, mình mới ngớ ra là viết code chỉ là một phần rất nhỏ. Cách tổ chức code, cách các thành phần nói chuyện với nhau, cách hệ thống xử lý khi lượng request tăng lên gấp 10 lần mới là thứ quyết định sản phẩm sống hay chết.

image.png

Nếu quay lại, mình sẽ tìm hiểu về architecture sớm hơn. Không cần đọc hết cuốn "Designing Data-Intensive Applications" từ năm nhất, nhưng ít nhất nên hiểu tại sao người ta tách monolith ra microservices, khi nào dùng queue, khi nào cần cache. Bây giờ có AI, mình có thể vẽ ra một bài toán rồi hỏi "nên thiết kế hệ thống này như thế nào?", nó sẽ giải thích từng lớp, từng trade-off. Thứ ngày xưa phải đi làm vài năm mới ngấm, giờ sinh viên hoàn toàn có thể tiếp cận sớm hơn rất nhiều.

4. Dùng AI để học nhanh hơn, không phải để trốn khỏi việc học

Năm 2026 rồi. Nếu quay lại làm sinh viên vào lúc này, mình chắc chắn sẽ dùng AI. Nhưng mình sẽ dùng nó như một người bạn ngồi cạnh giải thích, chứ không phải một cỗ máy viết code thay.

Mình sẽ hỏi:

"Đoạn code này hoạt động thế nào? Tại sao lại dùng async/await ở đây chứ không phải callback?"

Chứ không phải:

"Viết cho tôi một cái CRUD hoàn chỉnh, có validation, có auth, có deploy luôn, cảm ơn."

image.png

Sự khác biệt rất lớn. Một cái giúp mình hiểu. Một cái giúp mình xong bài, nhưng đến lúc phỏng vấn thì ngồi im thin thít.

AI là công cụ mạnh nhất mà thế hệ sinh viên bây giờ có. Nhưng nó giống xe đạp điện vậy, đạp cùng nó thì đi nhanh gấp đôi, nhưng ngồi im để nó chở thì đến ngày hết pin, mình vẫn không biết đạp.

5. Vẫn học code, nhưng cách học sẽ khác đi rất nhiều

Thỉnh thoảng mình thấy có người hỏi: "Thời AI rồi, sinh viên còn cần học code không?" Câu trả lời của mình là: có, chắc chắn có. Nhưng cách học sẽ không giống ngày xưa nữa.

Hồi mình đi học, muốn hiểu một cái concept mới thì phải đọc docs, lục StackOverflow, GFG, xem hết 3-4 bài blog rồi tự ghép lại. Mất cả buổi chiều cho một cái mà bây giờ có thể hỏi AI và hiểu trong 15 phút. Không phải vì mình lười hơn, mà vì công cụ đã khác. image.png

Nếu quay lại, mình sẽ vẫn học nền tảng: thuật toán, cấu trúc dữ liệu, hệ điều hành, mạng. Những thứ đó không lỗi thời. Nhưng mình sẽ dùng AI để rút ngắn quãng đường từ "không hiểu" đến "à ra thế". Thời gian tiết kiệm được, mình dành để thực hành nhiều hơn, xây nhiều hơn, thử sai nhiều hơn.

Học code thời 2026 không phải là cuộc đua với AI. Mà là biết dùng AI để chạy nhanh hơn trên đường đua của chính mình.

6. Viết test, dù chỉ là test cơ bản

Thời sinh viên, mình gần như không viết test. Code chạy được là xong, submit rồi quên. Đến khi đi làm, lần đầu tiên sửa một dòng code rồi thấy 3 chỗ khác vỡ theo, mình mới hiểu tại sao người ta cần test. Code không có test giống như đi xe không có phanh, lúc đường thẳng thì không sao, đến khúc cua mới biết sợ.

image.png

Nếu quay lại, mình sẽ tập viết test từ sớm. Không cần coverage 100%, không cần TDD ngay. Chỉ cần bắt đầu với những test đơn giản nhất: input đầu vào, output mong muốn, chạy thử xem có đúng không. Bây giờ còn có AI hỗ trợ generate test case, suggest edge case mà mình không nghĩ ra. Thói quen nhỏ đó sẽ tiết kiệm cho mình rất nhiều đêm ngồi fix bug sau này.

7. Học cách đọc error và debug có hệ thống

Mình nhớ hồi sinh viên, mỗi lần code lỗi thì phản xạ đầu tiên là thêm print khắp nơi rồi ngồi cầu nguyện. Được cái lúc đó cũng may mắn, print vài phát là ra. Nhưng đi làm, khi codebase lớn lên, service gọi service, log chạy trên server chứ không phải terminal trước mặt, thì chiêu đó không còn đủ nữa.

image.png

Nếu quay lại, mình sẽ tập đọc error message thật kỹ thay vì hoảng. Stack trace dài dằng dặc nhìn thì sợ, nhưng thực ra nó đang chỉ cho mình chính xác chỗ nào sai. Mình cũng sẽ học cách dùng debugger sớm hơn, đặt breakpoint, inspect biến, đi từng bước thay vì đoán mò. Và nếu vẫn bí, thì paste cái error vào AI, để nó giải thích cho mình nghe đang sai ở đâu, vì sao sai, thay vì copy paste đáp án trên Stack Overflow mà không hiểu gì. Debug có hệ thống không chỉ nhanh hơn mà còn giúp mình hiểu code sâu hơn rất nhiều.

8. Ngừng so sánh, chạy đua với chính mình thôi

Thời sinh viên, mình thỉnh thoảng cũng hay nhìn mấy bạn giỏi rồi tự hỏi liệu mình có đang đi chậm quá không. "Nó học code từ cấp ba, mình giờ mới nghiêm túc thì có muộn không?"

image.png

Nhưng đi làm rồi mới thấy: mỗi người có một tốc độ, mỗi người có một con đường. Trong ngành này, thứ quan trọng không phải là bạn bắt đầu từ đâu, mà là bạn có kiên trì đi tiếp không. Mấy bạn "giỏi từ nhỏ" cũng có lúc burn out. Mấy bạn "bắt đầu muộn" cũng có người thành senior sau vài năm. Đường dài mới biết ngựa hay.


Lời kết

Mình viết bài này cũng không có ý chỉ đường cho ai, đơn giản là ngồi nhớ lại rồi tự hỏi "nếu được chọn lại thì sao". Rồi viết ra, biết đâu có bạn nào đang ngồi trong giảng đường, mở laptop lên, mở được 12 tab Chrome mà chưa biết nên bắt đầu từ tab nào, đọc được thì thấy có ích.

Nói thật, mình cũng không biết vài năm nữa ngành này sẽ ra sao. AI đang thay đổi mọi thứ nhanh hơn bất kỳ ai tưởng tượng. Những thứ ngày xưa cần một dev ngồi cả ngày, bây giờ AI làm trong vài phút. Sẽ có những vị trí bị thay thế, đó là điều không ai phủ nhận được.

Nhưng mình vẫn tin rằng người hiểu bản chất, biết tư duy, biết đặt câu hỏi đúng, và biết dùng AI như một công cụ thay vì phụ thuộc vào nó thì vẫn sẽ có chỗ đứng. Không phải vì ngành này dễ, mà vì người thật sự hiểu mình đang làm gì thì luôn có giá trị. Nên nếu bạn đang bắt đầu, cứ bắt đầu. Sai rồi sửa. Sửa rồi lại sai. Đó là cách duy nhất mà mình biết để giỏi hơn.

Dù sao thì, mình cũng phải quay lại với cái ticket đang dở rồi. ASAP mà. 😄 Hẹn gặp lại các bạn ở những bài viết sau!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.