Làm thế nào để bạn trở thành kỹ sư phần mềm trong 9 tháng?

Tại sao tôi chọn kỹ sư phần mềm?

Tôi tốt nghiệp một trường đại học tốt với bằng kỹ sư hóa học, tuy nhiên tôi lại rất hứng thú với việc giải quyết các vấn đề kỹ thuật. Nhưng có vẻ sau khi cầm tấm bằng kỹ sư hóa học trên tay mà theo đuổi chuyên ngành kỹ thuật sẽ có vẻ hơi…bất hợp lý. Tôi đã mất khá nhiều thời gian để loay hoay với những công việc liên quan đến chuyên ngành hóa học. Và rồi, bằng cách nào đó tôi tình cờ gặp phải kỹ thuật phần mềm. Nó có vẻ như một sự phù hợp hoàn hảo với tôi.

Việc làm kỹ sư phần mềm đang có nhu cầu ngày càng tăng. Mức lương của ngành này khá cao và là ngành hoàn hảo để từ đó bước vào thế giới khởi nghiệp mà không cần một số vốn ban đầu. Tất cả bạn cần là một máy tính, và cơ hội của bạn là vô hạn. Sau một thời gian nghiên cứu, tôi phát hiện ra mình hoàn toàn có thể tự học nó, không nhất thiết phải tiêu tốn 4 – 5 năm tại trường đại học. Tuy nhiên, để việc tự học đạt hiệu quả cao nhất, trong lúc này cần lắm ở bạn sự đam mê và quyết tâm.

Một khi bạn có một mục tiêu, bạn cần một kế hoạch để giúp bạn đạt được điều đó. Để bắt đầu, kế hoạch của tôi rất đơn giản. Vào lúc đó, tôi nghĩ rằng tôi sẽ theo Hướng dẫn kỹ thuật của Google, vì vậy tôi đã bắt đầu với khóa học giới thiệu được đề xuất của họ, Udacity CS101.

 lam-the-nao-de-ban-tro-thanh-ky-su-phan-mem-trong-9-thang-hinh-anh
Việc làm kỹ sư phần mềm đang có nhu cầu ngày càng tăng

Tháng 0 – Udacity CS101, Harvard CS50

Tôi bắt đầu viết mã code ngay khi đi làm về, trước khi đi ngủ, tất cả các ngày cuối tuần. Udacity CS101 theo dõi tỷ lệ phần trăm hoàn thành, đó là một động lực lớn đối với tôi. Tôi đã đăng nhập phần trăm hoàn thành của tôi mỗi ngày sau khi mã hóa. Tôi đã hoàn thành 75% đầu tiên trong 10 ngày. 25% cuối cùng hơi khó nên chiếm nhiều thời gian của tôi hơn.. Nói chung, tôi mất 20 ngày để hoàn thành Udacity CS101.

Tôi đã quyết định tạo các tài khoản Twitter, Reddit, Stack Overflow, Medium và Quora mới bằng tên đầy đủ của mình để có thể xây dựng các công cụ trực tuyến.

Ngoài ra, tôi quyết định ngừng đọc các phương tiện gây mất tập trung như Instagram, Facebook và các chương trình con không lập trình. Tôi sẽ chỉ dùng điện thoại của tôi cho các tin tức và bài viết liên quan đến lập trình. Chính vì điều này mà tôi đã tìm hiểu về Harvard CS50 trên edX.

Ban đầu tôi hài lòng với việc chỉ thực hiện một khóa giới thiệu, nhưng mọi người dường như đề nghị Harvard CS50, vì vậy tôi quyết định đi sâu vào đó.Các sinh viên CS tại các trường khác đã tham gia khóa học này và cho biết họ đã học được nhiều hơn về CS50 hơn một hoặc hai năm tại trường đại học của họ học CS. Sự đồng thuận chung là khóa học khó nhưng đáng giá. Đến cuối tháng 0, tôi đã hoàn thành 5 bài giảng đầu tiên và bài tập về nhà.

Tháng 1 – Harvard CS50, Linux, Cuộc họp mặt Câu lạc bộ Code đầu tiên, freeCodeCamp

Tôi đã hoàn thành CS50 khoảng nửa tháng. Sau CS50, tôi quyết định thiết lập XPS 15 của mình để khởi động kép Windows và Ubuntu. Tôi làm hỏng các phân vùng và gần như đóng băng máy tính xách tay, tưởng chừng như sẽ phải thay thế một cái mới. Tôi dần dần từ bỏ Windows và cuối cùng chỉ sử dụng Ubuntu.
Tất nhiên, trong giai đoạn này tôi vẫn không bỏ qua việc viết mã code. Và đừng quên một việc không kém quan trọng là ghi nhận lại để so sánh sự tiến bộ. Nếu bạn tiến bộ một, hai ngày sẽ rất khó để nhận thấy. Nhưng nếu so sánh sau một tháng, hai tháng, bạn sẽ nhìn thấy sự tiến bộ rõ rệt. Và đây chính là lúc bạn nhận được một nguồn động lực vô cùng lớn, hãy nắm bắt nó!

Gặp gỡ Câu lạc bộ Code (Code Club) – một hành động mà tôi đã cân nhắc và sợ hãi rất nhiều để có thể đưa ra một quyết định. Nhưng tôi nhanh chóng nhận ra rằng không có lý do gì để lo lắng. Không ai biết nhau, không ai phán xét, và mọi người đều ham học hỏi. Tôi đã kết thúc tham dự hơn 50 cuộc họp trong vòng 9 tháng.

Có một số điều không chắc chắn tại thời điểm này. Tôi cần quyết định tôi muốn trở thành nhà phát triển phần mềm nào. Cuối cùng, tôi đã chọn phát triển web vì dường như có nhu cầu cao và cũng có rất nhiều tài nguyên trực tuyến. Khi tôi đã tìm ra điều đó, tôi cần phải biết phải làm gì tiếp theo. Một số người khuyên rằng ở giai đoạn này tôi nên nghĩ về các ứng dụng web tôi muốn xây dựng và sau đó bắt đầu sử dụng. Một số người đề xuất Dự án Odin hoặc freeCodeCamp.

Anh bạn điều hành cuộc họp hàng tuần mà tôi tham dự đã biết Ruby và muốn thực hiện các dự án với Ruby. Đây là một lý do lớn tại sao tôi đưa ra quyết định tham gia Dự án Odin.
Và sau đó hai ngày tôi đã từ bỏ ý tưởng đó.

Đó là một trong những nhược điểm của việc đi theo con đường tự học. Một phút bạn nghĩ rằng bạn biết con đường nào bạn nên đi, nhưng rồi ngày hôm sau bạn tự hỏi liệu đó có phải là bước đi đúng đắn!?
Tôi đọc được rằng Ruby không được ủng hộ và tôi đã chứng minh điều này bằng cách tìm kiếm các công việc Ruby vs JavaScript, vì vậy tôi đã kết thúc việc bắt đầu freeCodeCamp. Một điều khiến tôi bận tâm về freeCodeCamp là họ đã đưa ra các ý tưởng dự án, vì vậy mọi người đều thực hiện các dự án giống nhau. Điều này liên quan đến tôi lúc đầu vì tôi muốn nổi bật với các nhà tuyển dụng. Tuy nhiên, tôi đã kết thúc việc yêu thích freeCodeCamp, và bây giờ tôi đánh giá cao nó.

Tháng 2 – YDKJS, FrontCodeCamp

Tôi bắt đầu đọc JavaScript, vì mọi người đều khuyên dùng nó để bổ sung freeCodeCamp. Tôi đã phải đọc lại một số phần nhiều lần vì nó khá nhiều nội dung khó hiểu, nhưng đó lại chính là một nguồn tài nguyên hoàn hảo để học.
Tôi đã hoàn thành phần front-end của freeCodeCamp. Định dạng danh sách kiểm tra và thời gian hoàn thành ước tính đã giúp thúc đẩy tôi hoàn thành nhanh chóng. Tôi cũng cảm thấy khá khó khăn khi chuyển sang phần tiếp theo và học React. Tuy nhiên, điều này cũng có nghĩa là các dự án của tôi có kiểu dáng tối thiểu. Tôi đã làm bất cứ điều gì cần thiết để hoàn thành câu chuyện của người dùng và không có gì hơn thế.
Nhìn nhận lại, có lẽ tôi nên tập trung vào việc làm cho các dự án trở nên hấp dẫn hơn. Có lẽ, điều này sẽ giúp tôi tìm hiểu CSS sâu hơn.

Tháng 3 – Phản ứng freeCodeCamp, CodeClub, bắt đầu phần cuối qua FreeCodeCamp

Cuộc gặp gỡ mà tôi đã tham dự hàng tuần đã quyết định rằng họ sẽ xây dựng các dự án với JavaScript thay vì Ruby. Họ đã quyết định rằng dự án đầu tiên sẽ là xây dựng một trang web cho nhóm đáp ứng.
Tôi đã phát triển thẻ bằng API React và Meetup cho phép người dùng đăng ký ba lần gặp gỡ tiếp theo từ trang web của chúng tôi. Có một chút khó khăn do tôi đã từng từ bỏ freeCodeCamp, nhưng đó là một cơ hội mà tôi không thể bỏ qua. Tôi rất vui khi được làm việc trong một dự án với một nhóm nhỏ người. Nó cũng giúp tôi học Git và Github.
Trước khi tháng kết thúc, tôi bắt đầu làm việc trên phần cuối của freeCodeCamp.

Tháng 4 – Đã hoàn thành freeCodeCam, Yeggle

Khi tôi đang làm việc thông qua freeCodeCamp, tôi đã tìm hiểu về những dự án sẽ nằm trong khả năng của mình. Tôi đã chạy thường xuyên vào thời điểm đó, vì vậy tôi sẽ đưa ra ý tưởng về hoạt động của mình và viết chúng xuống khi tôi về nhà. Bằng cách đó tôi sẽ có một danh sách các ý tưởng dự án khi tôi đã sẵn sàng.
Cuối cùng tôi đã cảm thấy sẵn sàng để bắt đầu tạo các ứng dụng web đầy đủ và hữu ích của riêng mình để chia sẻ với người dùng và đưa vào danh mục đầu tư của tôi. Đây là giai đoạn thích hợp để bắt đầu.
Khi tìm kiếm một nhà hàng mới, tôi luôn thấy mình mở Yelp để kiểm tra đánh giá và sau đó mở Bản đồ để kiểm tra đánh giá của họ. Điều gì sẽ xảy ra nếu tôi tạo một ứng dụng so sánh cả hai bên cạnh nhau?
Vì vậy, tôi đã thực hiện Yeggle. Tôi đã sử dụng Node / Express / React cùng với API Google Maps và Yelp. Có một vài trở ngại tôi không nghĩ mình có thể vượt qua, nhưng cuối cùng tôi đã hoàn thành và tôi rất tự hào về ứng dụng của mình. Sau đó tôi đăng nó lên Reddit, và không ai quan tâm. Có một chút khó khăn, nhưng tôi đã không để nó làm tôi thất vọng.

Tháng 5 – Stockit

Hai kỳ nghỉ đã được chuẩn bị từ trước khiến tôi không có nhiều thời gian trong giai đoạn này. Nhưng tôi đã bắt đầu và hoàn thành dự án tiếp theo của tôi. Tôi tiếp tục đọc về việc khó khăn như thế nào để có được một công việc như một nhà phát triển tự học. Vì vậy tôi nghĩ rằng tôi cần phải làm một cái gì đó độc đáo. Tôi nhớ đến một trò chơi trong đó biểu đồ chứng khoán Dow Jones bắt đầu xu hướng. Bạn có một cơ hội để mua và một cơ hội để bán, với mục tiêu là đánh bại thị trường. Mục đích của trò chơi là cho bạn thấy việc đánh bại thị trường khó khăn như thế nào.
Ý tưởng của tôi là tạo ra một trò chơi tương tự như vậy, nhưng thay vì thị trường, bạn sẽ chơi với một thuật toán học máy. Vì vậy, tôi đã tạo ra StockIT .

Tôi đã lấy một video hướng dẫn về Pandas và Scikit Learn bao gồm nhiều kỹ thuật học máy. Ban đầu tôi muốn thực hiện một số kỹ thuật học sâu tuyệt vời, nhưng tôi nhận ra rằng đã lấy bộ dữ liệu lớn và nhiều thời gian hơn tôi muốn dành cho nó. Thay vào đó, tôi mắc kẹt với một mô hình hồi quy tuyến tính đơn giản. Tôi nghĩ rằng đó sẽ là phần khó khăn, nhưng nó đã không. Và rồi tôi kết thúc việc sử dụng D3 để tạo ra các SVG và React để xử lý DOM hoạt động khá tốt đối với tôi.
Khi tôi chia sẻ, mọi người đều thích nó!
Hóa ra, cũng giống như các VC, redditor là tất cả về máy học. Tất cả tình yêu từ Reddit là một sự tăng cường tự tin lớn. Mọi người đã chơi trò chơi của tôi và tận hưởng nó!

Tháng 6 – jobSort, chuẩn bị tìm việc

Sau StockIT, tôi lăn ngay vào dự án cá nhân tiếp theo của mình. Tôi muốn tạo một bảng công việc tổng hợp các trang web liệt kê công việc tập trung vào công nghệ nhỏ hơn như Stack Overflow, Github và Hacker News. Để thêm guồng quay độc đáo của riêng tôi vào nó, tôi đã quyết định sắp xếp nó dựa trên các công nghệ mà người dùng muốn trong một công việc và họ muốn họ như thế nào. Tôi gặp phải những trở ngại khác nhau với dự án này và phải thay đổi khóa học một vài lần, nhưng tôi đã kết thúc với một sản phẩm mà tôi hài lòng: jobSort.

Khi tôi uống cà phê với một người bạn, anh bạn ấy khuyên tôi nên tìm việc trong giai đoạn này. Trong đầu, tôi sẽ thực hiện theo kế hoạch có cấu trúc của mình để xây dựng danh mục đầu tư của mình với các dự án cá nhân, và sau đó làm việc trên các đóng góp nguồn mở, chuẩn bị cho các cuộc phỏng vấn, và cuối cùng bắt đầu xin việc. Người bạn này đã thuyết phục tôi bỏ kế hoạch đó và bắt đầu áp dụng. Vì vậy, tháng này tôi đã thực hiện một danh mục đầu tư và một sơ yếu lý lịch. Tháng sau tôi sẽ bắt đầu nộp đơn.

lam-the-nao-de-ban-tro-thanh-ky-su-phan-mem-trong-9-thang-hinh-anh-2
Để tìm được một công việc yêu thích tôi đã trải qua thời gian khá khó khăn

Tháng 7 – Kiểm tra, săn việc

Tháng này tôi tập trung vào việc tiếp cận các dự án của mình và xin việc. Tôi đã thêm flexbox vào CodeClub.Social để nó phản hồi. Tôi đã cải thiện UX di động trên jobSort. Tôi đã thêm thử nghiệm vào jobSort với mocha/ chai/ enzyme rất khó thiết lập, dễ bắt đầu và sau đó khó có được phạm vi bảo hiểm 100%.
Đến cuối tháng, tôi đã nộp đơn vào 63 công việc. Tôi đã xem đây là một sự tự đánh giá. Danh mục đầu tư/ sơ yếu lý lịch của tôi đủ tốt? Nếu vậy, tôi cần phải làm gì để chuẩn bị cho các cuộc phỏng vấn? Tôi đã thử các công ty phi phần mềm để xem liệu tôi có thể nhận được một cuộc gọi hoặc một cuộc phỏng vấn nào không.

Tôi đã nhận được năm cuộc gọi trong tháng đó – hai từ các công ty tuyển dụng và ba từ các công ty phần mềm. Các cuộc gọi tuy chưa mang đến cho tôi công việc như ý nhưng tôi đã học hỏi được rất nhiều điều từ họ.

Tháng 8 – Redux, phỏng vấn tại chỗ

Tôi đã cấu trúc lại jobSort.tech để sử dụng Redux, điều đáng ngạc nhiên là không khó như tôi nghĩ. Tôi đã nghe rất nhiều podcast về nó và đọc các bài đăng trên blog về nó, và nó không bao giờ có ý nghĩa với tôi cho đến khi tôi bắt đầu sử dụng nó. Tôi thực sự thích luồng dữ liệu với Redux.

Khoảng nửa tháng, tôi nhận được một email từ một trong những công ty tôi đã nộp đơn vào tháng trước. Các công nghệ mà họ đang tìm kiếm chính xác là những gì tôi đã học – React, Redux và D3. Tôi chủ yếu chỉ nói về các dự án của tôi và tại sao tôi đưa ra quyết định nhất định. Sau đó, họ yêu cầu tôi đến nơi để phỏng vấn. Cuộc phỏng vấn tại chỗ đầu tiên của tôi!

Tháng 9 – Mời làm việc

Cuối cùng tôi đã nhận được lời mời làm việc đầu tiên của mình sau 9 tháng. Tôi cảm thấy tự tin khi nhận được lời đề nghị sau cuộc phỏng vấn tại chỗ đầu tiên, nhưng đồng thời, nếu tôi không nhận lời đề nghị, nếu đây là lời đề nghị duy nhất tôi sẽ nhận được trong vài tháng thì sao? Cuối cùng tôi đã nhận được lời đề nghị, và tôi hài lòng với quyết định của mình.

  • Cho đến thời điểm này, tôi chủ yếu chia sẻ câu chuyện của mình với một số lời khuyên được đưa ra như sau:
  • Tìm hiểu những gì thúc đẩy bạn và sử dụng nó để lợi thế của bạn.
  • Thực hiện mục tiêu và đáp ứng chúng.
  • Gặp gỡ những người cùng chí hướng trước khi bạn nghĩ rằng bạn đã sẵn sàng.
  • Biết cách nắm bắt thời cơ để áp dụng.

“Nếu bạn nghĩ bạn thích điều gì đó, hãy thử nó một lần. Nếu không, bạn có thể sẽ hối hận”. Nhận một công việc kỹ thuật phần mềm trong vòng một năm với mức lương tương đương hoặc tốt hơn tôi đang làm ngay bây giờ, tại sao không? Tôi làm được – Bạn làm được – Chúng ta làm được!

Top công việc mới nhất

Cùng chuyên mục