search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

12 個月,如何從「小白」變成矽谷的軟體工程師?

編者按:在科技行業,寫代碼是一項比較性感的工作,有人通過培訓班學編程,也有很多人選擇自學編程。即使會寫代碼,要想在人才眾多的矽谷求一份工作也並非易事,本文作者從自身經歷出發,介紹學習編程的方法與求職經歷。

一年前,我在田納西州的攀岩健身房作兼職,為健身房設置路線。今天,我在舊金山的一家網路安全初創公司擔任軟體工程師。

我這樣的轉變對我來說是非常難忘的,同時也改變了我的一生。雖然這一切都非常具有挑戰性,但我認為任何有充分動力的人都可以做同樣的事情。

知識已經變得民主化。你需要做的就是在你的領域付出大量時間並堅持,這對於軟體工程師尤其如此。

生活陷入困境

當我在2016年開始學習代碼時,我的生活正處於一個巨大的困境中。

我作為一名擁有生物化學和人類學學位的預科學生考上大學。但我很快就對科學和醫學失去了興趣,隨後我就離開了大學,前途一片迷茫。

我在攀岩健身房工作已經差不多兩年了,但事情並沒有變好。我知道我需要改變了。

我已經耽擱學習代碼很長時間了,但我知道這是我想要做的。最後,在我2016年的生日,我發誓要學習代碼,自那以後我就沒有再回頭。

在這個時候,我對過去幾年變得無處不在的編程行業很陌生。幸運的是,我很快發現了免費代碼營(Free Code Camp)。當我意識到要完成課程需要為非營利組織編寫軟體時,我馬上申請加入,因為我很有信心可以提前完成我的課程。

免費代碼營很快成了我教育的核心。我同時補充了許多其他資源,如播客、教程、開放課件。

我的日常就是通過課程的挑戰和項目,這使我能夠逐步提高我的編程技能。當編寫代碼變得沒有效率時,我會通過其他渠道吸收知識——音頻、視頻等。我在不同的學習方法之間來回嘗試,這對保持很高的參與度並且抓住重點非常有用。這基本上是我的學習過程,它可以保證讓我投入更多的時間去學習。

以下是統計的數字(粗略估計):

  • 總學習時間:少於12個月

  • 總時數:約2,500小時

  • 項目總計完成:70多個

  • CS 課程觀看次數:約10

  • GitHub(一個面向開源及私有軟體項目的託管平台)提交量:超過1500

  • JavaScript 的總行數:超過 20,000 行

那時候我住在田納西州的Knoxville,我在那裡做了上面絕大部分的事情。我有很強烈的願望要一個科技產業很發達的城市,所以有一天我醒來后就決定是時候去舊金山了。接下來發生的事情就是改變我一生的事情。

我那天晚上就動身,大約三個星期後,我就到了Bay Area(舊金山灣區)。在路上的時候,我有很多時間聽播客。

抵達舊金山後的第一次真正的求職

在抵達舊金山並完成核心課程(前端、數據可視化和後端認證)之後,我大約發出了65份左右的工作申請——但是都沒有得到回應。

你要知道,我開車穿越全美來到灣區。我不知道現在灣區的競爭有多激烈,也不知道我的能力能否值得僱主青睞。我在免費代碼營獲得的經驗能夠達到編碼需要的水平嗎?

這些想法讓我明白我不得不做更多。舊金山的市場是相當有競爭力的。所以,我迅速修改了我的計劃,投入了更多的時間,同時加入免費代碼營,開始了一個非營利項目。

我的 React 項目引起了Michael D. Johnson和Quincy Larson的關注,他們問我是否有興趣幫助撰寫他們的React課程。我還幫助一個針對婦女罪行的會議建立了的會議管理工具。

我非常高興有機會能夠回報這個可敬的社區,所以我很快接受了這個挑戰。我的React和Redux的項目已被納入他們新擴展的課程中,現在這個課程已經有Beta版形式了。

此外,我選擇將申請工作的時間提前到2017年。我將繼續自己學習,然後再申請工作。隨後,我離開舊金山,開車穿過波特蘭和西雅圖,然後到華盛頓的Bellingham。

在太平洋西北地區的這幾個星期,我不間斷地完成了React和Redux的項目。我與紐約的另一位叫Peter Weinberg的同事合作,這可能是讓我的簡歷脫穎而出的關鍵之一,因為我完成了一個重要的項目,而且還滿足了實務界的需求。

12月下旬,我們完成了初步草案,並將其轉化為正式的Alpha版本,直到現在還在不斷吸收當地社區的反饋。

榮耀歸來

回到舊金山,我再次投簡歷。我決定加入一個為軟體工程師面試準備的快速課程 Outco。我一直非常反對在編碼集中營花錢(部分原因是我沒有錢),但是我選擇加入這個課程,因為在我看來,他們的目標是做一些很創新的東西。它專門針對軟體工程師的面試過程,因為這是一個為很多工程師造成障礙的過程,即使是對經驗豐富的技術工程師來說,也帶來了很多麻煩。

儘管我現在可以很好地寫JavaScript,但我絕對不會在白板上解決任意演算法問題。這是Outco嘗試為學生準備的關鍵領域之一,因為無論是好是壞,白板仍然是科技公司最喜歡用的面試策略。

我已經以一個星期超過50個小時的時間強度來學習和編碼,而且我完全是背水一戰了,因為我要在美國最昂貴和最有競爭力的城市找到工作。

我已經很努力地申請工作機會了,但是最終還是失敗了!在那個時候,我面臨的壓力是巨大的。

但我知道成功將在很大程度上取決於我未來幾個月的表現。

練習寫編碼的稿紙。

我開始在演算法和數據結構、白板問題、技術問題、配對編程、模擬電話屏幕、系統設計問題上更加努力地工作,同時當然也沒有放棄找工作。

我每天都堅持練習面試,雖然這很難。在真正的採訪中,他們會要求你站在白板前面,然後問你關於二叉樹(binary trees)的問題,而在我後來面試時,他們真的問我這個問題了。

數字勝於雄辯,下面是我面試的數據:

  • 申請總數:192個(包括2016年的65個)

  • 電話面試總數:17

  • 關鍵代碼挑戰:6

  • 現場面試:3

  • 得到的Offer:1

  • 時間總計:6周

  • 成功率:0.52%

那個唯一的Offer來自一家叫Trustar Technology的科技公司,我很高興加入他們的團隊。這個公司正在建立一個平台,讓企業共享網路智能數據,以避免並減少網路攻擊。

我在他們應用程序的前端工作,並使用我學的JavaScript技能。迄今為止,這樣的經驗對我來說是難以置信的,因為我終於可以利用我學到的東西來為公司創造價值了。

過去一年我學到的經驗和教訓

以下是我給想要學習軟體編碼工程師的建議。

  • 你需要真實的技能,你需要學習很多。這意味著要投入很多時間,所以你必須有很大的熱情才可以。

  • 做項目是一個很好的學習方式,一旦你熟練之後,開源項目或其他高難度的項目對你來說就不是一件難事了。

  • JavaScript和React非常有意思,同時也是當下需求很大的技能,但你還是要學習你感興趣的東西。

  • 不管是在你所在的城市還是網路上的朋友,你必須有學習代碼或工程師的圈子。找機會跟他們一起合作,並且適當尋求他們幫助,一起解決問題。

  • 如果有可能的話,要有耐心。

以上就是我成為一個軟體工程師的過程。我相信每個人的路都會有所不同,但這也是其中樂趣的一部分。

找到自己的道路,如果你自己相信足夠強大,不要害怕忽視別人的觀點,包括我的看法。

技術行業的機遇是非常真實的,你要有決心達到你的目的,你可以找到一種方式。

作為工程師,你的工作將是解決問題,如果你是自學的,你必須解決的第一個問題是如何教你自己。

希望你們有一個愉快地學習編程的旅途。

【編譯組出品】編輯:楊志芳



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦