Làm thật nhiều dự án
Học lập trình thật ra rất đơn giản. Bạn xem vài video hướng dẫn, tải một compiler, viết vài dòng code và chạy chương trình. Xong! Bạn đã là lập trình viên. Nhưng đáng tiếc, nếu bạn đang đọc bài viết này, có lẽ bạn cũng biết rằng việc chuyển từ biết lập trình sang kiếm tiền từ lập trình thì không hề đơn giản như vậy.
Code một giờ mỗi ngày
Nghe có vẻ hiển nhiên và đơn giản, nhưng đây là điều tôi nhấn mạnh với bất kỳ ai bắt đầu từ con số 0, đặc biệt là những người đã hết tuổi đi học và đang có nhiều trách nhiệm khác. Bạn phải code mỗi ngày – và “code” ở đây bao gồm cả việc học và thực hành qua tutorial. Từ nay trở đi, với tư cách một lập trình viên, việc tự học và làm việc là một.
Bạn sẽ không bao giờ ngừng việc tìm kiếm trên Google câu hỏi: “lỗi này nghĩa là gì?”. Quá trình học và lập trình đồng thời này là điều bạn cần phải làm quen và duy trì đều đặn. Một giờ mỗi ngày là tối thiểu để bạn tạo được đà tiến tới việc tự làm dự án riêng. Sau này, bạn sẽ thấy muốn làm nhiều hơn một giờ mỗi ngày, nhưng ít nhất cũng phải làm một giờ.
Sẽ có những ngày chậm chạp, và cũng sẽ có ngày bạn cảm thấy như thể mình là thần thánh, có thể xây dựng cả Facebook trong một ngày. Những cảm xúc đó không quan trọng về lâu dài. Điều quan trọng là: nếu bạn giữ được thói quen tối thiểu một giờ mỗi ngày, bạn sẽ tìm được nhịp điệu phù hợp với mình. Chính sự kiên trì này sẽ giúp bạn vượt lên trên những thiên tài bốc đồng mà bạn đang cạnh tranh.
Hiểu rằng bạn đang cạnh tranh với những lập trình viên học trong môi trường yêu cầu sự đều đặn. Kiên trì là chìa khóa.
Làm một dự án mỗi tuần
Nghe có vẻ “nặng đô”, nhưng bạn sẽ thấy điều này hợp lý khi áp dụng. Một dự án không cần phải lớn – có thể chỉ là một phần nhỏ trong dự án lớn (ví dụ như tạo một service để deploy), hoặc là một app đơn giản độc lập. Nếu bạn làm việc này mỗi tuần, bạn không chỉ có định hướng học mà còn có thành quả để khoe.
Như bạn sẽ thấy ở phần sau: nếu bạn không có bằng cấp, bạn phải luôn tìm cách bù đắp cho việc thiếu chứng chỉ. Dự án chính là cách tốt nhất để làm điều đó.
Khi tôi mới bắt đầu, hầu hết mọi cơ hội – từ nhà tuyển dụng, email lạnh, networking – đều xuất phát từ câu: “chúng tôi rất ấn tượng với Github của bạn!”.
Học cách lặp lại nhanh và tạo ra giá trị từ giấy và bút. Bài tập sáng tạo này sẽ giúp bạn giải quyết vấn đề nơi người khác gặp bế tắc.
Đăng dự án lên Hacker News, Reddit, diễn đàn
Luôn luôn phải đẩy.
Đây là câu mà tôi và bạn thân thường nhắc nhau khi mới dấn thân vào ngành. Đừng ẩn mình. Nếu bạn không nhớ gì khác thì hãy nhớ điều này: nếu không ai biết bạn là ai hay đã làm gì, bạn sẽ chẳng có cơ hội nào cả.
Hacker News là nơi rất tốt để bắt đầu – một trang chia sẻ link giống Reddit, nơi các kỹ sư trên toàn thế giới tụ họp. Hãy bình luận, đăng bài viết bạn thích, làm quen cộng đồng, và quan trọng nhất: đăng dự án hàng tuần của bạn lên đó để nhận phản hồi.
Bạn có thể gắn thẻ “Show HN” khi gửi bài để đánh dấu đây là dự án của người dùng. Việc này không chỉ giúp tăng tương tác với Github của bạn (rất tốt trong phỏng vấn), mà còn mang lại phản hồi chuyên môn.
Phản hồi này sẽ là bệ phóng giúp bạn bắt đầu tư duy và giải quyết vấn đề ở tầm cao hơn. Nếu bạn đang học lập trình một mình, thì không gian này thực sự là điều quý giá. Dù bạn là frontend developer, systems engineer hay dev ops junkie, hãy luôn có người để chia sẻ công việc của bạn.
Kết nối (network)
Nhiều lập trình viên thường bỏ qua điều này. Và nếu bạn là người thích lập trình thì có thể sẽ không thích điều tôi sắp nói: bạn phải network. Thẳng thắn mà nói, nếu bạn không học đại học, bạn đang ở thế bất lợi về cơ hội. Nhưng bù lại, bạn có thể có nhiều thời gian và tự do tài chính hơn. Hãy tận dụng điều đó để tạo cơ hội cho chính mình.
Hãy đến thành phố gần nhất, tìm sự kiện networking: Happy hour, buổi pitching startup, meetup về Javascript – bất cứ nơi nào có người thích giao lưu, nhất là trong ngành tech. Nếu bạn ở xa thành phố thì có thể tham gia sự kiện online, giờ đã phổ biến hơn trước rất nhiều.
Tips của tôi:
- Tìm sự kiện qua Google (từ khóa: startup, tech, happy hour…)
- Ăn mặc chỉn chu
- Tự tin bắt chuyện
Đừng đến với tâm lý phải tìm mentor/công việc/đồng đội, chỉ cần mở lòng và đừng quên tận dụng… đồ ăn miễn phí.
Tham gia Hackathon
Cái này không bắt buộc, nhưng nếu có hackathon gần bạn hoặc online, hãy tham gia. Bạn vừa network vừa có dự án. Bạn sẽ gặp nhiều người đang làm đúng việc bạn làm: xây app và tìm cách được trả tiền.
Bạn có thể bắt đầu bằng cách truy cập https://devpost.com/ để tìm hackathon phù hợp. Đây là cách tôi gặp được nhiều người bạn và cộng sự hiện tại.
Gửi email chào mời (cold email)
Cái này thì bắt buộc. Bạn phải học cách tiếp cận người khác.
Ở trong cô lập, ta sẽ khổ.
Bạn phải học cách "bán" kỹ năng của mình cho khách hàng/đối tác/công ty. Nghe có vẻ phi thực tế nếu bạn chưa có kinh nghiệm, nhưng bạn sẽ ngạc nhiên với số lượng công ty sẵn sàng nhận giúp đỡ từ một newbie.
Sau khi đã có nền tảng vững, làm vài dự án, (có thể có job freelance nhỏ), hãy lên Indeed, Linkedin, AngelList (tôi thích nhất), Craigslist, Twitter DMs, danh sách startup… và gửi email lạnh. Nghe lỗi thời, nhưng rất hiệu quả.
Hồi là thiếu niên tìm internship đầu tiên, mỗi ngày tôi đều lướt qua hàng chục website startup, tìm email, gửi cover letter riêng cho từng công ty. Tôi không có CV, chỉ gửi link Github và mô tả dự án mình đang làm. Bạn có thể thấy điều đó hơi… “lố” khi chưa có gì đáng kể, nhưng tin tôi đi, chân thành có giá trị thật sự.
Chọn một hướng đi
Đến lúc bạn cần xác định mình thực sự muốn làm gì. Sau khoảng 1 tháng học và khám phá, hãy chọn một hướng cụ thể như: Machine Learning, Web Development, Mobile App, hoặc đơn giản là bạn rất thích Python – cái gì cũng được, miễn là bạn thích và giỏi. Điều này sẽ giúp bạn đi nhanh hơn, và sau 2–3 năm bạn sẽ là chuyên gia trong lĩnh vực đó.
Khi bắt đầu có công việc, có CV, hướng bạn chọn sẽ chuyển vai trò từ người đi tìm việc sang người được săn đón.
Nhưng hãy chọn lĩnh vực có tiềm năng lâu dài. Việc theo trend (framework mới nổi) cũng vui, nhưng trend thì trôi qua nhanh. Muốn giỏi Flutter? Không sao cả. Nhưng nên nhớ, về lâu dài bạn sẽ là một frontend developer. Hãy xem xét xu hướng phần mềm, kinh tế, văn hóa và hỏi mentor để có cái nhìn rõ hơn.
Thử làm freelance
Không bắt buộc, nhưng sẽ rất có lợi nếu bạn học được cách “chơi” trong lĩnh vực này. Freelance rất… mệt. Bạn cạnh tranh toàn cầu để làm việc kỹ thuật ở mức thấp nhất. Tôi không khuyên theo nó lâu dài. Nhưng ngắn hạn thì tốt để:
- Có kinh nghiệm
- Có CV
- Có mối quan hệ
Cảnh báo: đừng quá sa đà vào việc "bán mình rẻ" để cạnh tranh. Fiverr, Upwork không phải là đích đến, cũng không phải con đường duy nhất.
Tips: với contract freelance đầu tiên, hãy giới hạn thời gian ngay từ đầu. 2 tuần, 3 tháng, 6 tháng gì cũng được – miễn đừng dính vào mối quan hệ “mãi mãi” mà không có kế hoạch.
Làm Portfolio / Resume
Nghe thì ai cũng biết, nhưng gần như ai cũng làm sai. Hãy làm nổi bật dự án của bạn. Đừng coi nhẹ những gì bạn đã vật lộn học và làm được. Viết README, blog, tài liệu – bất cứ thứ gì thể hiện bạn đã xây được gì.
Nơi tốt nhất để đăng:
- Github
- Website cá nhân (cũng là nơi thể hiện kỹ năng)
- Medium
Vì bạn chưa có kinh nghiệm chuyên môn hay bằng cấp, nên công ty cần tin tưởng bạn như thể bạn có tất cả. Cách tốt nhất là bù đắp bằng những dự án bạn từng làm, duy trì, và tự hào.
Tạo đà phát triển
Điểm cuối cùng – và bạn nên giữ nó trong đầu suốt hành trình này: luôn tạo đà.
Cứ tiếp tục học, tiếp tục chia sẻ, rồi bạn sẽ có được thứ gì đó. Có thể là:
- Cơ hội hợp đồng
- Mentor
- Đồng đội
- Dự án trên Github gây tranh cãi trên Hacker News
Dù là gì, hãy chạy theo nó. Gặp ai đó trong ngành? Hỏi họ có thể mentoring 1–1 hàng tuần không. Dự hackathon? Đưa dự án vào portfolio.
Tìm dự án ở đâu?
- Project Based Learning
- codecrafters-io/build-your-own-x
- Nghĩ ra dự án của chính bạn!