Code Side Project — Món Quà Tuyệt Vời Cho Developer

Code Side Project — Món Quà Tuyệt Vời Cho Developer
Hồi mới vào nghề, mình cứ nghĩ làm dev là chỉ code xong task, ăn lương rồi về. Nhưng mà càng đi sâu, mình mới thấy cái hay nhất của nghề này không nằm ở chỗ đi làm thuê — mà nằm ở khả năng tự tay làm ra một thứ gì đó từ A tới Z, và side project chính là nơi để làm chuyện đó.

Ảnh: cottonbro studio — Pexels
Học Nhiều Hơn Đi Làm
Thiệt ra thì mỗi ngày đi làm, mình code trong cái khung có sẵn: framework công ty chọn rồi, database schema thiết kế rồi, quy trình deploy cũng fixed hết. Nhưng mà khi bắt tay làm side project, mình tự đặt câu hỏi: "Chọn cái stack nào đây? Hosting ở đâu? CI/CD làm sao?" Chính mấy câu hỏi đó ép mình phải tìm hiểu, phải learning by doing — thứ mà đọc sách hay coi tutorial không bao giờ dạy được.
Mình có thằng bạn thân làm .NET mấy năm trời, ổng cứ nghĩ mình chỉ giỏi mỗi C#. Rồi một ngày ổng thấy mình viết Rust CLI tool chạy ngon lành — ổng tròn mắt. Bí quyết? Không có gì đặc biệt, tại vì mình từng code một cái side project nho nhỏ bằng Rust để parse log file hồi cuối tuần rảnh rỗi.
Portfolio Thiệt — Không Phải "Có Kinh Nghiệm 3 Năm"
CV mà ghi "3 năm kinh nghiệm với React" thì ai cũng ghi được. Nhưng mà đưa cái GitHub với mấy cái side project tử tế ra, người phỏng vấn sẽ biết ngay trình độ của mình ở đâu. Code trong side project là code thiệt — mình tự design architecture, tự xử lý bug, tự tối ưu performance. Nhà tuyển dụng họ đọc là họ thấy liền.
Hồi đầu năm, mình phỏng vấn một bạn trẻ. Bạn đó nói tiếng Anh hơi yếu, trả lời mấy câu lý thuyết cũng không trôi. Nhưng mà bạn đó mở laptop lên chỉ mình cái side project — một cái real-time chat app viết bằng Go, có WebSocket, có Redis pub/sub, chạy Docker compose. Mình ký hợp đồng liền. Còn mấy bạn học thuộc design pattern nhưng không có gì trong tay thì… chúc may mắn lần sau.
Một Chỗ Để "Phá" Thoải Mái
Có thử nghiệm mới có té. Ở công ty, đâu dám thử cái mới lên production. Còn side project là sân chơi: muốn thử Kafka? Setup thử. Muốn benchmark Rust vs Go? Viết benchmark. Nó có chết cũng không sao vì — hổng có ai dùng, hổng có SLA. Chính mấy cái vấp ngã đó dạy mình nhiều hơn mấy cuốn sách dày cộm.

Ảnh: Markus Winkler — Pexels
Bắt Đầu Từ Đâu?
Nếu bạn chưa từng code side project bao giờ, lời khuyên của mình là:
- Chọn cái mình cần xài thiệt — một cái CLI tool tự động rename file, một cái blog cá nhân, một cái dashboard theo dõi thói quen hằng ngày. Có nhu cầu thiệt mới có động lực làm.
- Đừng chọn stack quá xa lạ — bắt đầu bằng cái mình biết trước, quen tay rồi hãy học cái mới.
- Xài Git từ đầu — commit mỗi ngày, dù chỉ đổi một dòng code. Có cái nhìn thấy tiến độ mới vui.
- Public lên GitHub — không cần code hoàn hảo, cứ public đi. Sau này nhìn lại thấy mình tiến bộ cũng vui, mà có ai đó thấy hữu ích lại càng tốt.
Side project không cần phải là cái gì to tát đâu — mình có thằng bạn code cả năm trời chỉ để… tự động hóa việc tưới cây trong nhà nó. Nó hổng có bán cho ai, nhưng mà nó vui, nó học thêm được Arduino với MQTT, và bây giờ nó chuyển qua làm IoT engineer rồi.
Có câu mình rất thích: "The best way to learn is to build." Thiệt tình, mình thấy câu này đúng tới từng chữ. Cho nên đừng ngại, cuối tuần này rảnh thì mở laptop lên, nghĩ một cái nho nhỏ mà mình cần, rồi bắt tay code thử đi. Bạn sẽ bất ngờ với những gì mình làm được đó.
Còn bạn, bạn đang có side project gì? Hay là chưa bắt đầu? Nói mình nghe với nha!