
Rất nhiều học viên tìm đến chúng tôi vì chưa biết bắt đầu dự án cá nhân đầu tiên. Họ đã học xong cú pháp cơ bản, biết viết vòng lặp và hàm, nhưng ghép mọi thứ thành một chương trình chạy được lại là chuyện khác. Cảm giác biết nhiều mà vẫn loay hoay là điều rất quen thuộc. Trong bài này, chúng tôi kể lại cách chọn và triển khai một dự án nhỏ đầu tay, đúc kết từ kinh nghiệm của nhiều khóa mentor thực tế mà chúng tôi từng tổ chức.
Học Lý Thuyết Đơn Thuần Khiến Nhiều Người Mới Khó Áp Dụng Vào Thực Tế

Một bạn học viên từng nhắn chúng tôi một câu rất thật: học xong khóa Python ba tháng, mở màn hình trắng lên vẫn không biết gõ gì. Đây không phải chuyện hiếm, vì bạn ấy thuộc lòng vòng lặp for và cũng biết hàm là gì. Nói dễ hiểu, hàm giống một cái máy nhỏ: nhận đầu vào, xử lý, rồi trả kết quả ra. Nhưng biết từng mảnh không có nghĩa là ráp được cả cỗ máy.
Vấn đề nằm ở chỗ: học lý thuyết chỉ cho bạn công cụ, chứ không cho bạn bài toán để dùng công cụ đó. Giống như học hết các nốt nhạc, thuộc cả hợp âm, nhưng chưa từng chơi trọn một bài nào. Bạn biết nốt Đô là gì, nhưng chưa biết ghép Đô, Mi, Sol thành một câu nhạc nghe xuôi tai.
Thiếu một dự án cụ thể để bám vào, việc học cũng dễ rời rạc. Hôm nay học xong mảng, mai học xong chuỗi, nhưng không có sợi dây nào nối chúng lại. Nhiều bạn học đến tuần thứ tư thì bỏ dở, đơn giản vì không thấy được mình đang đi tới đâu. Đó là lý do chúng tôi luôn khuyên chọn một dự án cá nhân đầu tiên càng sớm càng tốt, tốt nhất là ngay khi bạn vừa nắm được cú pháp nền tảng.
Chúng tôi cũng hay gặp một dạng khác: học viên nhảy hết khóa này sang khóa khác. Học xong khóa Python cơ bản, thấy chưa tự tin, đăng ký ngay khóa nâng cao. Học xong khóa đó, lại tìm khóa về framework mới. Vòng lặp này có thể kéo dài cả năm mà không ai thực sự làm ra sản phẩm nào.
Nguyên nhân sâu xa là cảm giác chưa đủ giỏi để bắt đầu. Nhưng thật ra chẳng có mốc nào gọi là đủ giỏi để bắt đầu một dự án nhỏ cả. Mẹo chúng tôi hay đưa là: học xong một khóa nền tảng, hãy dừng lại và chọn ngay một dự án để bám theo, chỉ quay lại học thêm khi chính dự án đó đòi hỏi kiến thức mới.
Cách Chọn Dự Án Cá Nhân Nhỏ Phù Hợp Cho Người Mới

Một dự án tốt cho người mới nên giải quyết đúng một vấn đề nhỏ, có thật trong đời sống của chính bạn. Không cần cao siêu. Vấn đề càng gần gũi, bạn càng dễ hình dung nó nên chạy ra sao khi hoàn thành.
Vài gợi ý mà học viên của chúng tôi từng làm và thấy hiệu quả:
- Ứng dụng ghi chú việc cần làm (to-do list) có đánh dấu hoàn thành
- Công cụ quản lý chi tiêu cá nhân theo tháng, nhập tay từng khoản
- Trang đổi đơn vị đo lường: cân nặng, nhiệt độ, tiền tệ
- Ứng dụng tra cứu thời tiết đơn giản, lấy dữ liệu từ một API công khai
Khi code đã chạy được vài chục dòng, đây cũng là lúc nên tập lưu lại từng thay đổi. Đừng chỉ sửa đè lên file cũ mỗi lần thay đổi. Bạn có thể tham khảo học Git và quản lý phiên bản cho người mới lập trình nếu chưa từng dùng qua. Nó sẽ cứu bạn nhiều lần khi lỡ tay xóa nhầm đoạn code đang chạy tốt.
Công cụ quản lý chi tiêu ở trên cũng cần một chỗ lưu dữ liệu lâu dài. Đây là dịp tốt để tìm hiểu thêm học SQL cơ bản cho người mới bắt đầu. Có vậy dữ liệu mới không biến mất mỗi lần bạn tắt chương trình.
Sai lầm phổ biến nhất mà chúng tôi thấy là chọn dự án quá lớn ngay từ đầu, kiểu như làm một mạng xã hội mini hay clone lại một sàn thương mại điện tử. Nghe hoành tráng, nhưng chỉ sau vài buổi tối là nản, vì mỗi tính năng lại kéo theo hàng chục tính năng con khác. Một số bạn chọn hướng nhẹ nhàng hơn: dựng một trang giới thiệu sản phẩm cá nhân đơn giản trước. Sau này muốn nâng cấp thành cửa hàng thật, có thể tham khảo thêm dịch vụ thiết kế website bán hàng. Đó sẽ giúp bạn hình dung một hệ thống hoàn chỉnh cần những gì.
Mẹo chúng tôi hay đưa cho học viên là viết ra giấy đúng ba tính năng bắt buộc phải có. Tính năng nào ngoài ba cái đó, gác lại làm phiên bản sau. Xác định phạm vi rõ ràng như vậy giúp bạn tránh cảm giác ngợp giữa chừng. Quan trọng hơn, nó giúp bạn có cái để hoàn thành, thay vì mãi dở dang.
Lấy ví dụ cụ thể với ứng dụng ghi chú việc cần làm. Phiên bản đầu tiên chỉ cần ba việc: thêm việc mới, đánh dấu đã xong, xóa việc không cần nữa. Chưa cần tài khoản đăng nhập, cũng chưa cần đồng bộ giữa điện thoại và máy tính. Những phần đó để dành cho phiên bản sau, khi bạn đã quen tay hơn. Giới hạn phạm vi kiểu này nghe đơn giản, nhưng đó lại là kỹ năng mà nhiều lập trình viên có kinh nghiệm vẫn phải luyện lại mỗi khi bắt đầu dự án mới.
Lợi Ích Khi Học Qua Dự Án Cá Nhân Đầu Tiên

Cái được đầu tiên là kiến thức được củng cố theo cách khó quên. Đọc tài liệu về vòng lặp, bạn nhớ được vài ngày. Nhưng tự tay dùng vòng lặp để duyệt qua danh sách việc cần làm lại khác hẳn. Gặp lỗi, tự sửa, kiến thức đó bám lại rất lâu, gắn với một trải nghiệm cụ thể chứ không phải chữ trên trang sách.
Debug thực chiến cũng dạy nhiều hơn người ta tưởng. Khi chương trình báo lỗi ngay lúc bạn đang hào hứng vì thấy nó gần chạy được, cảm giác đó rất thật. Bạn buộc phải hiểu tận gốc dòng code đang làm gì, không thể học vẹt qua loa được.
Cái được thứ hai thiết thực hơn cho chặng đường sau: bạn có một sản phẩm cụ thể để cho người khác xem. Nhà tuyển dụng lập trình viên mới thường hỏi ứng viên một câu quen thuộc: bạn đã tự làm dự án nào chưa? Câu trả lời có sản phẩm thật, kể được cả quá trình gặp lỗi và cách xử lý, luôn thuyết phục hơn nhiều so với một bảng điểm khóa học.
Chúng tôi từng có một học viên làm ứng dụng ghi chú việc cần làm rất đơn giản. Giao diện của bạn ấy còn hơi thô. Nhưng khi phỏng vấn, bạn ấy kể rành mạch lúc dữ liệu bị mất mỗi lần tắt trình duyệt, rồi tìm hiểu ra là chưa lưu vào bộ nhớ đúng cách và tự sửa được. Nhà tuyển dụng thích câu chuyện đó hơn hẳn một danh sách chứng chỉ. Không lâu sau, bạn ấy nhận được việc junior developer.
Một mẹo nhỏ đáng làm là viết vài dòng mô tả ngắn cho dự án. Nói rõ nó giải quyết vấn đề gì, và bạn học được điều gì khi làm nó. Đừng giấu dự án chỉ vì thấy nó chưa đẹp. Hầu hết dự án đầu tay đều thô cả thôi. Cái nhà tuyển dụng thật sự nhìn vào là tư duy giải quyết vấn đề, không phải giao diện.
Chúng tôi cũng khuyên nên đẩy code lên GitHub ngay từ dự án đầu tiên. Dù code còn vài lỗi nhỏ chưa kịp sửa cũng không sao. Nói dễ hiểu, GitHub giống một cuốn sổ lưu công khai mọi phiên bản code bạn từng viết. Nhà tuyển dụng có thể vào xem trực tiếp cách bạn tổ chức bài toán, chứ không chỉ nghe bạn kể lại suông. Nhiều bạn ngại vì code chưa gọn, nhưng thực tế không ai đòi hỏi dự án đầu tay phải sạch như code của người làm nghề nhiều năm.
Bắt Tay Làm Dự Án Đầu Tiên Ngay Từ Hôm Nay

Nếu bạn đang đọc đến đây mà vẫn phân vân chưa biết chọn gì, đừng nghĩ thêm nữa. Cứ nhìn quanh cuộc sống của chính mình, tìm một việc lặp đi lặp lại mà bạn hay làm bằng tay: ghi chép, tính toán, tra cứu. Rồi thử viết một chương trình nhỏ để làm thay việc đó. Không cần đẹp, không cần đầy đủ tính năng, chỉ cần nó chạy được và giải quyết đúng vấn đề bạn đặt ra.
Dự án cá nhân đầu tiên không cần hoàn hảo, nó chỉ cần tồn tại. Từ chỗ có một sản phẩm nhỏ trong tay, bạn sẽ tự biết mình cần học thêm gì. Đó chính là nền tảng để làm dự án thứ hai tốt hơn. Muốn đi xa hơn dự án đầu tay này, bạn có thể tìm đọc thêm. Chúng tôi đã tổng hợp hướng dẫn học lập trình bài bản từ cơ bản đến nâng cao cho bạn. Đó là lộ trình rõ ràng cho những bước tiếp theo.

