Con đường trỏ thành kỹ sư phần mềm tại San Francisco trong 12 tháng như thế nào?
Một năm trước đây, tôi làm việc bán thời gian như một người hướng dẫn tại một rock climbing gym (leo núi trong nhà) ở Tennessee. Giờ đây, tôi là một kỹ sư phần mềm tại một startup về an ninh mạng ở San Francisco. Cuộc hành trình đến thời điểm này đã thay đổi cuộc sống của tôi và tôi sẽ không thể quên những gì đã trải qua. Mọi thứ chắc chắn đầy thách thức, nhưng tôi nghĩ rằng bất cứ ai có đủ động lực đều có thể làm được những điều tương tự. Kiến thức luôn sẵn có. Tất cả những gì bạn cần để đạt được một vị trí trong lĩnh vực của mình là thời gian và sự cống hiến. Điều này đặc biệt đúng trong lĩnh vực công nghệ phần mềm.
2016, cuộc sống của tôi ở trong tình trạng tồi tệ
Khi tôi bắt đầu học code năm 2016, tôi đoán bạn có thể nói cuộc sống của tôi đang ở trong một tình trạng tồi tệ.
Tôi tới trường cao đẳng như một sinh viên pre-med, với chuyên ngành sinh học và nhân chủng học. Nhưng tôi nhanh chóng trở lên thất vọng với khoa học và y học, và quyết định bỏ học mà không có một kế hoạch rõ ràng nào.
Tôi trở thành một người hướng dẫn tại rock climbing gym (leo núi trong nhà) gần 2 năm, nhưng mọi thứ không được suôn sẻ. Và tôi biết mình cần một sự thay đổi lớn.
Tôi đã ngừng học code trong một thời gian dài, nhưng tôi biết đây là điều tôi muốn làm. Cuối cùng, vào ngày sinh nhật của mình năm 2016, tôi đã tự hứa sẽ học code. Tôi không còn đường lui.
Tại thời điểm này, tôi đã nghe nhiều về các bootcamps, cái đã trở lên khá phổ biến trong vài năm qua. May mắn, tôi nhanh chóng khám phá ra freeCodeCamp. Khi tôi nhận ra toàn bộ chương trình của họ là miễn phí, tôi đã tham gia và quyết định sẽ hoàn thành chương trình của freeCodeCamp trước khi xem xét một bootcamp.
freeCodeCamp nhanh chóng trở thành nhân tố cốt lõi trong nền tảng giáo dục của tôi. Tôi bổ sung thêm cho nó với nhiều tài nguyên khác nhau, chẳng hạn như các podcast, tutorial, open-courseware, các tài liệu hướng dẫn và Stack Overflow khi cần.
Những ngày bình thường tôi làm việc với các challenge và dự án trên freeCodeCamp, nó giúp tôi cải thiện dần dần các kỹ năng của mình.
Khi việc ngồi viết code không hiệu quả, tôi sẽ chuyển sang các kênh khác như: audio, video, … Tôi chuyển đi chuyển lại giữa các phương thức học khác nhau, nó rất hữu ích trong việc duy trì sự tập trung. Đây là quy trình cơ bản của tôi, và nó cho phép tôi dành nhiều giờ để học.
Dưới đây là một vài con số (ước tính):
- Tổng thời gian học: dưới 12 tháng
- Tổng số giờ: ~2,500
- Tổng các dự án đã hoàn thành: 70+
- Tổng các khóa học CS đã xem: ~10
- Tổng số commit Github: 1,500+
- Tổng số dòng JavaScript đã viết: 20,000+
Hầu hết việc học này diễn ra tại Knoxville, Tennessee, nơi tôi đang sống. Tôi có một mong muốn mãnh liệt là tới một trong những thành phố công nghệ lớn, vì thế một ngày tôi thức dậy và quyết định đã đến lúc lái xe tới San Francisco. Đó chính xác là cách nó đã xảy ra.
Tối hôm đó, tôi lên đường, và khoảng 3 tuần sau tới Bay Area. Tôi dành thời gian để nghe podcast trên đường.
Đến San Francisco để tìm kiếm công việc thực sự đầu tiên
Sau khi đến San Francisco và hoàn thành chương trình học của freeCodeCamp (front-end, data visualization, và back-end). Tôi bắt đầu ứng tuyển xin việc. Khoảng 65 lần hoặc hơn. Nhưng không hề có phản hồi.
Nhớ rằng, tôi mới lái xe tới Bay Area. Tôi không biết gì về sự cạnh tranh trong lĩnh vực này và những kỹ năng nào của tôi sẽ có giá trị với các nhà tuyển dụng. Liệu hoàn thành chương trình học của freeCodeCamp có thực sự tương tương với việc tham gia bootcamp?
Những lần ứng tuyển thất bại đã giúp tôi nhận thấy rằng: Tôi cần làm nhiều hơn nữa. Thị trường rất cạnh tranh. Vì thế tôi nhanh chóng sửa lại kế hoạch của mình, dành nhiều thời gian hơn, và tới freeCodeCamp để bắt đầu một dự án phi lợi nhuận, vì bây giờ tôi đã đủ điều kiện để bắt đầu.
Đồng thời, tôi bắt đầu networking trong thành phố nhiều nhất có thể. Việc networking khá dễ dàng, vì freeCodeCamp có nhiều campsite tự tổ chức ở khắp các thành phố trên thế giới.
Tôi nhanh chóng nhận được phản hồi từ team của freeCodeCamp về các dự án phi lợi nhuận. Một vài dự án React của tôi nhận được sự chú ý của Michael D.Johnson và Quincy Larson, và họ đã hỏi tôi có quan tâm tới việc giúp họ viết nội dung chương trình học về React. Tôi cũng giúp xây dựng một công cụ quản lý hội thảo cho Conference on Crimes Against Women.
Tôi rất hào hứng về cơ hội được đóng góp trở lại cho cộng đồng tuyệt vời này, vì thế tôi nhanh chóng chấp nhận. Các challenge về React và Redux của tôi bắt đầu được tích hợp vào chương trình mới đã được mở rộng của họ, đây là bản beta của nó.
Ngoài ra, tôi tăng thời gian tới năm 2017 sẽ xin việc trở lại. Tôi sẽ tiếp tục học trong năm 2016. Tôi rời San Francisco, di chuyển qua Portland và Seattle tới Bellingham, Washington.
Trong những tuần ở Pacific Northwest, tôi đã làm việc không ngừng nghỉ để hoàn thành các thử thách React và Redux. Tôi cộng tác với một contributor khác của freeCodeCamp ở New York, Peter Weinberg, và xây dựng khoảng 80 challenge.
Đây là một bước đi quan trọng giúp tôi thiết lập lại hồ sơ cá nhân của mình, bởi vì nó đại diện cho một dự án quan trọng đã đáp ứng được nhu cầu của một tổ chức thực sự.
Cuối tháng 12, chúng tôi đã hoàn thành bản nháp ban đầu của các challenges và chuyển chúng tới phiên bản alpha chính thức, hiện tại nó vẫn nhận được phản hồi từ cộng động.
Sự trở lại thành công của tôi ở San Francisco
Mặc dù, có thể viết JavaScript khá tốt tại thời điểm này, tôi vẫn chưa chuẩn bị để giải quyết các câu hỏi về giải thuật trên whiteboard. Đó là một trong những lĩnh vực mà Outco cố gắng chuẩn bị cho các học viên, bởi vì viết giải thuật trên whiteboard vẫn là một chiến thuật phỏng vấn yêu thích của các công ty công nghệ. Ngoài ra, tôi có thể hoãn việc thanh toán cho Outco đến khi xin được việc.
Thực tế, tôi đã tiến bộ mạnh mẽ với hơn 50 giờ một tuần để học và code. Và giờ tôi đặt cược tất cả khả năng của mình, để có được một công việc, tại một trong những thành phố đắt đỏ và cạnh tranh nhất nước Hoa Kỳ.
Tôi đã từng cố gắng hết sức để ứng tuyển vào các công ty và thất bại thảm hại! Áp lực và căng thẳng đè nặng lên tôi vào thời điểm này.
Tôi biết thành công phụ thuộc rất nhiều vào hiệu suất của tôi trong một vài tháng tới. Tôi tham gia Outco bởi vì tôi đã hi vọng rằng chương trình và sự hỗ trợ của họ sẽ giúp tôi vượt qua những dặm cuối cùng trong cuộc hành trình của mình, và nó đã làm được.
2017 đến và tôi đã sẵn sàng. Thậm chí tôi còn làm việc chăm chỉ hơn trước. Luyện tập hàng tấn cấu trúc dữ liệu và giải thuật, các câu hỏi whiteboard, các câu hỏi kỹ thuật, pair programming, mock phone screens, các câu hỏi thiết kế hệ thống. Không quên ứng tuyển tìm việc và còn nhiều hơn lần đầu.
Và tất nhiên, khi bạn bắt đầu nhận được phản hồi từ các công ty, nó tốn rất nhiều thời gian (chưa nói là cực kỳ căng thẳng) để chuẩn bị cho tất cả các cuộc phỏng vấn trong thời điểm này.
Luyện tập cho các buổi phỏng vấn hàng ngày đã đủ khó. Đứng trước một whiteboard trong một buổi phỏng vấn thực sự và họ hỏi bạn về cây nhị phân còn khó hơn nhiều (và vâng, những người phỏng vấn đã hỏi tôi về cây nhị phân).
Một lần nữa, những con số lại kể một câu chuyện hùng hồn hơn:
- Tổng số lần ứng tuyển: 192 (bao gồm 65 lần trong năm 2016)
- Tổng số lần phỏng vấn qua điện thoại: 17
- Tổng số lần làm các challenges tại nhà: 6
- Tống số màn hình kỹ thuật: 5
- Tổng số onsite: 3
- Tổng số offers: 1
- Tổng thời gian để nhận được offer: 6 tuần
- Tỷ lệ thành công: 0.52%
Đó là một offer từ TruSTAR Technology, và tôi vô cùng hạnh phúc khi được tham gia vào team! TruSTAR đang xây dựng một nền tảng cho phép các công ty chia sẻ dữ liệu cyberintelligence để ngăn chặn và giảm thiểu các cuộc tấn công mạng.
Tôi làm việc ở phía front-end trong ứng dụng của công ty và sử dụng những kỹ năng về JavaScript có được từ freeCodeCamp. Kinh nghiệm đã có thật đáng kinh ngạc, tôi đã ngạc nhiên bởi sự chuẩn bị tốt của mình, và bắt đầu tạo ra những thứ có ý nghĩa để đóng góp vào codebase của công ty.
Những bài học tôi đã học được sau 12 tháng
Đây là một vài lời khuyên tôi dành cho những ai đang tìm kiếm một thứ gì đó:
- Bạn cần những kỹ năng thực tế và bạn phải học rất nhiều. Điều đó có nghĩa là nhiều giờ làm việc, không có lối tắt. Sự đam mê sẽ giúp bạn.
- Xây dựng các dự án là một trong những cách học tốt nhất, và khi bạn biết đủ không khó để tìm các dự án mã nguồn mở hoặc các dự án high impact để tham gia.
- JavaScript và React là những thứ tuyệt vời để học và có nhu cầu cao (cái này tùy từng thị trường)! Nhưng bạn có thể học cái bạn thích.
- Điều quan trọng là bạn cần tham gia vào cộng đồng những người đang học code hoặc làm việc như các kỹ sư. Network trong thành phố của bạn. Network online. Tìm các dự án hợp tác để làm việc. Yêu cầu sự giúp đỡ.
- Nếu bạn có đủ khả năng, hãy cố gắng kiên nhẫn. Đây là thứ tôi phải vật lộn nhiều nhất
Bạn đã có nó – cuộc hành trình giúp tôi bắt đầu sự nghiệp như một kỹ sư phần mềm! Tôi đảm bảo con đường của mọi người sẽ khác nhau, và đó là một điều thú vị.
Tìm ra con đường của riêng mình và đừng ngại bỏ qua quan điểm của người khác, kể cả của tôi nếu bạn tin tưởng đủ mạnh vào bản thân.
Các cơ hội trong nghành công nghệ phần mềm là có thật và rất nhiều, và nếu bạn muốn, bạn có thể tìm ra cách.
Là một kỹ sư, công việc của bạn là giải quyết các vấn đề, và nếu bạn tự học, vấn đề đầu tiên bạn phải giải quyết là làm thế nào bạn có thể tự dạy mình?
Chúc mọi người hạnh phúc với việc coding!
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!