Bài viết được biên dịch từ lời chia sẻ của một web developer đến từ miền Nam Châu Âu nhận được gần 13k lượt xem trên FreeCodeCamp
Xin chào tất cả anh em đang quan tâm đến câu hỏi làm thế nào để trở thành một lập trình viên,
Tôi là một gã khờ 33 tuổi vừa được nhận vào vị trí full-stack developer lần đầu tiên trong cuộc đời sự nghiệp của tôi. Tôi thấy cần chia sẻ những kinh nghiệm quý giá này trên FreeCodeCamp – nơi đã giúp tôi thực hiện giấc mơ này. Việc nghiền ngẫm tất cả những chia sẻ của những người đi trước đã giúp tôi có động lực rất nhiều trên hành trình gian nan này.
Kẻ thất bại có “học thức”
Hành trình sự nghiệp của tôi những năm đầu đời quả không mấy tốt đẹp. Dù có trong tay tấm bằng đại học chuyên ngành xã hội học và tờ giấy chứng chỉ IT, tôi vẫn không thể kiếm cho mình một công việc tử tế. Thậm chí lúc cuộc khủng hoảng kinh tế đang diễn ra, tôi còn suýt phải đi đặt tờ rơi ở cửa kính trước của ô tô để kiếm sống. Cuối cùng, sau nhiều tháng ngập trong vô vọng, tôi chấp nhận làm việc tại một văn phòng bán bất động sản giá rẻ với mức lương bèo bọt vì không muốn tiếp tục phụ thuộc tài chính vào ba mẹ.
Thời gian trôi qua, công ty này trở nên tồi tệ hơn tôi nghĩ. Bất chấp sự đầu tư chăm chỉ vào công việc, mức lương không hề nhúc nhích, môi trường làm việc ngày càng xuống cấp, cũng chẳng tồn tại sự phát triển chuyên sâu về kiến thức nào cả. Tôi đã trên 30 tuổi và cảm giác của tôi lúc này về mọi thứ dường như kết thúc khi đối diện với sự cạnh tranh việc làm khốc liệt ở Nam Âu. Và rồi, Reddit đến để giải thoát tôi khỏi mớ bòng bong này, đập vào mặt tôi là hàng tá các tips từ những redditor có tiếng. Những lời khuyên hay ho đó đã vực tôi dậy và giúp tôi phát triển hướng đi mới: trở thành một software developer.
Thay đổi ư?! Nó là cả một quá trình dài
Tôi bắt đầu từ từ học C++ và thực hành một số bài task nhỏ tập hack ranking (chỉ để vui thôi). Cũng chính từ những bước khởi đầu này đã giúp tôi khám phá ra niềm đam mê với code bấy lâu nay bị bỏ quên. Sau vài tháng luyện tập, tôi chuyển sang thực hành với những dự án có giá trị hơn từ Github.
Quay lại với công việc của tôi vào năm ngoái, tình trạng trở nên báo động: tất cả những công việc đã được tự động hóa và tôi sẽ sớm trở thành người thừa. Tôi phải nhanh chân hơn nữa, sử dụng cả những thời gian rảnh ở nhà để chuẩn bị sẵn sàng cho việc bị sa thải. Đó thực sự là quãng thời gian năng suất nhất trong cuộc đời tôi:
- Tôi tiết kiệm tối đa đến mức có thể, chỉ sử dụng tiền cho những nhu cầu thiết yếu: tiền thuê nhà, tiền hóa đơn, ăn uống, tiền xăng xe; những chi phí còn lại thì hạn chế tối thiểu.
- Tháng 6: tôi thực hành với Linux shell, tôi học Git và đăng những dự án tốt nhất tôi thực hành bằng C++ lên Github
- Tháng 7: học Python và Regex
- Tháng 8: học chuyên sâu tiếng Tây Ban Nha (đạt chứng chỉ B2) và touch typing (khoảng giữa tháng 7 đến tháng 8, tôi thực sự cần một sự nghỉ ngơi khỏi lập trình để nâng cao một số kĩ năng mềm có lợi cho xin việc sau này)
- Tháng 9: học lập trình web trên FreeCodeCamp, và tôi nhận ra tôi thích nó hơn là OOP.
- Tháng 10: tạo Front-end React app
- Cuối tháng 11: tự tạo full-stack MERN app
Vào cuối năm ngoái, tôi tiết kiệm đủ tiền để duy trì cuộc sống sau thất nghiệp và tự tin thoát khỏi nơi khốn khiếp đó. Dù chỉ có 2 web app, tôi vẫn quyết định chọn đi theo lập trình web và rải hồ sơ ở khắp mọi nơi trên Linkedin. Thật ngạc nhiên, lần này tôi chỉ phải đi phỏng vấn ở 3 nơi. Vị trí đầu tiên làm việc với C++, trong khi công việc thứ 2 và thứ 3 liên quan đến lập trình web (front-end và full-stack) và tôi được cả 2 công ty sau nhận. Cuối cùng tôi chọn công ty thứ 3, tuy hơi xa nhưng ở một nơi phong cảnh lý tưởng, có thể chơi đá banh trong giờ nghỉ giải lao thay vì ngồi ngắm đống warehouse tẻ nhạt như trước kia. Lần nhảy việc này tôi chỉ mất 10 ngày để đi phỏng vấn và tìm việc.
Những bài học tôi rút ra từ quá trình tìm việc
Tôi biết chắc sẽ có nhiều bạn nghĩ điều kiện của tôi khá hơn so với mặt bằng chung: tôi sống ở châu Âu, đã có một nền tảng về IT từ thời trung học và được cung cấp tài chính từ gia đình. Nhưng tôi vẫn muốn đưa ra một số lời khuyên bởi ít hay nhiều nó cũng sẽ phần nào áp dụng được cho tình hình của bạn:
- Nếu bạn đang có ý định thử sức với lĩnh vực này, xin chúc mừng bạn thật may mắn: thời điểm ngày nay có một sự khan hiếm nhân lực trong ngành lập trình đặc biệt là ở châu Âu. Khác xa với những lĩnh vực khác, các công ty không quan tâm đến bằng cấp, cái họ quan tâm là NĂNG LỰC THỰC SỰ.
- Kĩ năng mềm là rất cần thiết, nếu bỏ qua nó bạn sẽ là kẻ thất bại. Tin hay không, bạn có cơ hội được nhận cao hơn khi bạn có một quan điểm sống tích cực và năng động. Hãy thể hiện một cách chân thành cho nhà tuyển dụng thấy bạn yêu thích những điều bạn làm và đừng ngại trình bày những điểm mạnh và điểm yếu của bạn.
- Hãy đánh bóng hồ sơ Linkedin của bạn: hồ sơ phải hoàn thiện, với dòng bio đầy đủ súc tích và một bức hình thật chuyên nghiệp. Nếu bạn đang thất nghiệp, hãy khéo léo ghi rằng bạn là một software/web developer “đang tìm kiếm cơ hội việc làm.” Hãy để nhà tuyển dụng thấy bạn đang tìm chứ không phải đang cần họ.
- Hãy giữ resume của bạn đơn giản: sử dụng bản thiết kế tối giản với font chữ dễ đọc. Lọc sơ những kĩ năng bạn cần để trên CV, không nên quá chi tiết hoặc làm quá trình độ của bạn. Đừng liệt kê quá cụ thể công việc trước, hãy để những mô tả đó trên Linkedin. Không nên để thông tin về nơi ở và ngày tháng năm sinh của bạn.
- Tạo một cover letter ấn tượng, nhưng hãy dành thời gian nghiên cứu công ty bạn sắp apply vào để viết sao cho phù hợp. Tránh văn phong mẫu sáo rỗng. Bạn nên thêm địa chỉ của bạn vào nữa.
- Học Git, áp dụng nó và đăng tải những dự án của bạn lên Github. Hãy để tối thiểu 2-3 dự án tốt nhất của bạn với cách trình bày ấn tượng nhất. Hãy commit hàng ngày để gây ấn tượng với những nhà tuyển dụng, đừng đơn thuần chỉ commit cho 1 dự án rồi thôi.
- Thật may mắn nếu bạn không hề gặp trở ngại nào khi viết code, nhưng ở một khía cạnh nào đó, nó đồng nghĩa với việc bạn không học thêm điều gì mới. Điều bạn cần làm đó là thoát ra khỏi vùng an toàn và chuẩn bị cho hướng đi mới trong tương lai.
Hãy lập danh sách những yêu cầu của nhà tuyển dụng – điều họ mong muốn từ ứng viên. Cụ thể như sau:
- “Yêu cầu tối thiểu 2 năm kinh nghiệm” đồng nghĩa với việc “không yêu cầu kinh nghiệm.” Apply!
- “Yêu cầu bằng cấp liên quan” đồng nghĩa với “không yêu cầu bằng cấp”. Apply!
- “Chúng tôi đang tìm kiếm một senior dev” đồng nghĩa với “thực ra thì một junior cũng có thể đáp ứng đấy!”. Apply!
Đọc điều thứ 3 một lần nữa, và sau đó apply. Đó là cách tôi lấy tự tin để đi phỏng vấn và thành công.
Những nguồn tham khảo đáng xem
- Hãy bắt đầu với kiến thức giới thiệu về CS50 trong khoa học máy tính trên edX CS50’s Introduction to Computer Science, đây đơn giản là những tài liệu cho người mới miễn phí tốt nhất mà tôi từng tìm. Sau đó hãy đọc tiếp lập trình web CS50 bằng Python và JavaScript CS50’s Web Programming with Python and JavaScript.
- Xem qua lộ trình mới nhất về thiết kế web qua video tại đây.
- FreeCodeCamp là nguồn hiệu quả nhất để đi từ con số 0 lên con số 10. Ghi chú lại tất cả những gì bạn học được và thực hành nó.
- Một số subreddit mà tôi theo dõi: r/learnprogramming, r/programming, r/webdev, r/web_design, r/reactjs, r/freecodecamp, r/cscareerquestions (tôi liệt kê một số tiêu biểu thôi nhé). Tôi tự tạo một tài khoản Reddit chỉ đơn thuần cập nhật các subreddit về CS, để đảm bảo rằng feed của tôi không bị nhiễm những thứ không liên quan khác.
- Udemy: khóa học duy nhất tôi từng mua là MERN Stack Front To Back của Brad Traversy. Những video hướng dẫn rất tuyệt vời sẽ giúp bạn trở thành một chuyên gia trên các platform mạng xã hội. Tuy nó mất phí nhưng tin tôi đi, nó rất đáng đồng tiền bát gạo đấy.
- Hướng dẫn của Net Ninja về Node/Express tại đây
- Stack Overflow, cái này thì không cần phải động não quá nhiều. Search GG và đọc định nghĩa là đủ.
- Học CSS qua các kênh Flexbox Froggy, Grid Garden. Xem xong bạn sẽ vận dụng khá tốt cho các buổi phỏng vấn đấy.
- Các nguồn sách ebook về JavaScript miễn phí: The Road to Learn React, You Don’t Know JS, và Eloquent Javascript nếu bạn muốn thử cái gì khó hơn.
- Hackerrank hoặc Leetcode để rèn luyện kĩ năng problem solving (giải toán) của bạn. Nếu bạn thực sự giỏi kĩ năng này bạn có thể apply vào Big-N.
- Tính chần chừ không dám hành động có thể là một trở ngại lớn trong công việc của bạn. Nếu bạn đang là một con người như vậy, đừng lo lắng hãy yên vị ở một công ty tốt và bạn sẽ cải thiện được tính chất này.
Và đó là tất cả những gì tôi muốn chia sẻ. Tuy dài dòng nhưng hi vọng bài viết đang và sẽ truyền động lực cho những anh em có chung ước mơ giống như tôi. Chúc may mắn!
TopDev via FreeCodeCamp
Đừng quên cập nhật các công việc lập trình Full Stack hấp dẫn tại đây