我是如何在5個月內找到一份薪水翻番的工作的?

六個月前,我辭掉了初級JavaScript開發者的工作,並去東南亞旅行了五個月。在回到英國后的一個星期內,我就拿到了三個正式Offer,並接受了其中一個Offer,這份工作的薪水差不多是我之前工作的兩倍。這個過程並不容易,但卻是非常值得的。下面是我的整個求職經歷。

我的目標

我原本計劃去東南亞旅行3-6個月,我也有信心在旅行回來后能夠找到一份更好的工作。我之前做初級JavaScript開發的工作經歷讓我明白了如下三點:

  • 我喜歡編程,不僅僅是我的個人愛好,也是我的職業興趣。

  • 我喜歡後台開發工作,因為不用涉及CSS和可視化的前端開發工作。

  • 我不是很喜歡Angular開發框架。

理清了上述這些東西后,我為自己設定了旅行回來后理想的工作目標,以及為實現理想工作目標所必需做的準備工作。我的目標是成為一個中級職位的全棧工程師。

審視與調研

為了能夠成為一名我目標中的合格的中層全棧工程師,以及我需要如何進一步提升自己的水平,我四處搜尋了一些我比較嚮往的工作招聘信息。我明白了他們對候選人的要求以及偏好。

通過我的調研,我發現這些工作招聘信息中絕大多數有如下要求:

  • 對JavaScript有較為深入的理解

  • 至少熟悉一種開發環境(通常是React或者Angular)

  • 能夠創建一個應用編程接口(REST API,通常是Express)

  • 至少熟悉一種數據庫技術(通常是MongoDB或者SQL)

制定行動計劃

基於上述調研信息,我明白我需要在以下關鍵方面提升自己:

  • 我需要讀完《你不知道的JS》(You Don』t Know JS)這本書。這個系列的書曾經為我初步學習JavaScript知識提供了很大幫助,所以我覺得也應該對我學習更高階的JS也會有不少幫助。

  • 我需要努力提升自己前端開發的能力,至少熟悉一種前端開發環境。我簡單對比研究了Angular, Vue和React這幾種開發環境,並決定選擇React。因為我之前接觸過一點React,並且很喜歡;我不太喜歡Angular,而且要求使用Vue的工作並不是很多。

  • 雖然我可以直接從頭創建一個Express API,但我不是很有信心,而且我只會做一些很基礎的東西。因此我需要全面強化自己這方面的能力,尤其我嚮往的目標工作又非常重視後端開發能力。

  • 我可以堅持使用關係型數據庫(比如PostgreSQL),也可以學習一種新的數據庫技術。我最後決定學習MongoDB,因為這個數據庫非常流行,並且可以讓我的簡歷上多一種非SQL數據庫技能。

由於當時我還不確定我要旅行多久,所以我制定的學習計劃如下:

  • 在讀《你不知道的JS》這本書的同時,開始學習React 及Redux知識。

  • 提升Express技能,並學習MongoDB。

  • 用所學知識做開發練習,學以致用。

  • 學習其他的東西。

我這樣制定計劃是有原因的。如果我三個月就結束旅行,並且完成了第一條學習內容,處於第二條學習階端中,那麼我依然能夠找到一份中級職位的開發工作,只是可能主要是一些前端開發工作。如果我先學習完後端開發的話,那麼三個月後我可能依然沒有太多信心能夠從事任何後端開發環境相關的工作;那樣的話,就可能對任何一個中級開發崗位都是一個卡點了。當然我也可以嘗試申請純後端開發工作崗位,但是這些崗位似乎都要求更多的開發工作經驗,而我又不達不到經驗這塊兒的要求。

學習React和Redux,讀《你不知道的JS》

我之前通過Youtube視頻學習和一些正常的網上教程學習過一點React知識,但是這次我決心要系統地學習一下。於是我從Udemy上購買了《React JS and Redux: 掌握網站應用開發》這個課程。這個課程非常不錯,我之前積攢的一點React經驗也很有幫助,但是我對Redux確實零基礎。課程學完后,自我感覺已經可以創建一個比較複雜的網站了,並能熟練使用React的句法和格式,以及Redux的數據控制。

我學完這個課程大概花費了兩周左右時間,這期間包括了一到兩周平均要花費1-2個小時自我練習。我在亞洲旅行的時候正好趕上節假日,所以學習就不再是第一位的優先事項了。就像我只要有機會坐在筆記本電腦前就學習這個課程一樣,我路上一有機會就讀《你不知道的JS》,並讀完了系列的後幾本。我把在線Github版本的電子版書存在了手機上,這樣我在旅行穿梭中就可以利用碎片化時間學習了。

由於有了一些實際開發練習經驗,我這次讀起來比我之前讀的時候理解更多了。像Promises這種技術知識點,你如果從來沒有使用過的話,會很難理解。

強化Express技能,同時學習MongoDB

現在我感覺前端開發已經隨心應手了,是時候提升我的後端開發能力了。這一次我依然打算選擇通過Udemy課程學習。因為我覺得這些課程是一個比較完整的學習體系,內容循序漸進並且能夠覆蓋開發工作的全過程。當然你也可以通過Youtube或者其他在線教程免費學習這些東西,但是它們並不能夠如Udemy課程那樣更好的覆蓋全部的內容。

接下來是要選擇哪一個課程了,Udemy上的課程有免費的,有付費的,而且有長有短。我最後還是決定為自己投資,購買課程(相對於這麼大的課程信息來說,10美元算是一筆很小的投資)。最後我篩選出了大概三個課程,每個課程時長從7小時到25.5小時不等。一開始我比較傾向於7小時的那個課程,因為我可以在一到兩周就學完,而且還可以很好的享受我的假期。那個25小時的課程明顯要佔用我更多的時間,但是應該覆蓋了更多內容。在旅行的這個時點,我決定要一直旅行,直到花光我的銀行存款;於是我就不在於時長長短,就選擇了25小時的課程。

Node加上React:全棧網絡開發(Node with React: Fullstack Web Development)

我其實之前對這個課程做過一個全面的測評,是個非常不錯的課程。由於之前學習接觸過React和Redux,這個課程中對React內容又重複了一遍。所以為了不浪費時間,你可以跳過你已經熟悉的內容部分,或者你可以直接2倍速播放,就當快速溫習回顧了。

這個課程真正精彩之處是後端開發部分的講解。它覆蓋了非常廣泛的內容,包括oAuth、事件處理,payments技術、開發密鑰(API Key)處理、MongoDB、mongoose技術、以及高級部署等。

這個課程之所以這麼長,是因為它非常細緻地涵蓋了非常多的內容。這既好又不好,我最後大部分內容都是以1.5倍速看完的。這個課程比我第一個學習課程長多了,但是我最終差不多用了一個半月成功學習完。

開始寫作

當我在中國的時候,我決定寫一篇文章,闡述在中國做開發有多麼的糟糕。後來這篇文章被自由編程社區(Free Code Camp)的出版物收錄,現在大約有1600多的閱讀量,和791次點贊。我對有這麼多人閱讀並喜歡我的文章感到很驚喜。

上述是我的文章發佈后30天的統計數據。那之後,我決定要寫更多的文章,描述我的日常以及我發現的一些有意思的事情。這也讓我在面試及採訪的時候能有更多的話題可說。寫博客也是一種很好記錄你進步的方式,讓你能夠看到你進步的軌跡。

學以致用

現在我所有準備工作和工具都已具備,我要開始學以致用了。我現在已經旅行了三個半月了,並設想還可以繼續旅行1-3個月。這也意味了,如果我想要回去后儘快開始工作的話,我就需要開始思考找工作的事情了。

為了申請工作,我首先需要更新我的簡歷和作品集網頁了。這時候就用到了我這幾個月來學習的成果了,用Node和React建立一個新的作品集網站。

我就是這樣做的,下面這個就是我的成果。我之前就說過,我並不是個設計師,但是這個網站也運行良好。我甚至用了一個Wordpress API將博客內容存儲在網站上。我知道我的設計功底很糟糕,於是我將它放到了reddit下一個網站設計子論壇。我收到了很多很好的建議,其中大多數都是建議我用幾個月時間好好研究學習基礎的網站設計知識。其中一點建議我確實採納了,那就是利用已有的輔助引導程序。這樣就生成了一個全新的網站,沒有用到任何新技能,但是已經看起來不那麼花里花哨了。

申請工作

我下一站旅行地是老撾境內一個偏遠的攀爬區。我覺得這應該意味着有限的電力以及沒有Wi-Fi網絡。於是我在接下來兩周的老撾旅行期間,就把我的筆記本電腦留在了曼谷。當我到達老撾的營地后,我發現那裡竟然有4G網絡!我買了一個當地的SIM卡(1.5GB數據流量需要2英鎊,超出部分每GB需要89便士),就滿足了一般性的上網需求。這個時候我意識到我回國之前還可以在老撾待兩周,然後在中國待4周。是時候嘗試申請工作了。

在接下來一個半月里,我申請了超過50個招聘崗位,通過電子郵件和Linkedin與大約25個人聯繫過,最後得到了5個面試機會。我找工作的過程主要是通過電子郵件,但是如果有人想直接通過電話聯繫,我也很推薦(我早就想到這個方法了)。

我認為通過一個真正的對話可以很大程度上提升你與對方的關係,並提高受邀面試或推薦工作的機會。如果你不想通過打電話或者Skype視頻聯繫對方,也可以使用傳統的電子郵件,不過我覺得那樣你的成功機率可能會小很多。

打造更多的案例

其中一個面試中,讓我為一個有着糟糕網站和極少客服服務能力的公司設計一個網站原型。我覺得這個很有趣,可以讓我學習網站原型設計。我寫了一系列關於如何構思網站原型的文章,並且具像化地製作了那些網站。

我最後又為處理退貨訂單,創建了一個在線智能聊天工具。我學習了在線智能聊天工具的工作原理,然後花費了大約一個星期才搞出來一個像樣能夠運行的版本。這個案例成果是我能夠最終得到那個工作Offer的很重要的一個影響因素。

面試

現在我有5個面試機會,我需要把它們轉化成最終的工作Offer。

(1)準備

我之前已經寫過一些關於JavaScript面試準備和掌握面試流程的一些文章,我覺得那些文章已經涵蓋的很全面了。

我清楚的知道我想重點強調哪些東西,如何回答關於自己弱點的這類問題,以及每個公司的回應。

(2)最後的面試

我其實一直比較擅長面試,雖然我天生有點內向的性格。我一直學習如何讓自己表現的更加外向,更多地與面試官交流。如果你面試中也有表現的害羞和內向的話,那麼我推薦你找本情商方面的書,並表現的更加自信。

我經歷的四分之三的面試中都有技術筆試(其中有兩個是在線筆試),而我之前的苦練準備也有回報。雖然其中有點疏忽,但是我還是積極轉動大腦思考,並良好的完成了所有測試。

最後的Offer與談判

我在前三個面試中,得到了兩個offer。第四個面試結束后,我就感覺那家公司並不適合我,於是我當時就告訴對方,我不會考慮他們的offer。如果你也有類似情景,如果你不打算接受一家公司的offer,就盡量不要引誘他們了。

現在我有兩家非常願意雇傭我的公司的offer。談判的時候到了。我一直不太擅長談判或者為自己爭取更多利益,但是我讀了一些這方面的指導文章,然後就試着為自己爭取利益了。

  • 你可能這樣想:「好吧,我不想抱有太高的期望,而且這個offer已經很不錯了,我覺得應該接受」

  • 打住,你還需要進一步談判。

  • 或者你這樣想:「我不想一開始表現的過於貪婪,給我未來僱主造成不太好的第一印象」

  • 打住,你還需要進一步談判。

  • 「但是這家公司很小,而且.....」

  • 打住,不要繼續說下去了,抓緊下一步的談判吧。

工作offer談判十大原則。我推薦所有正在找工作的人都讀一讀。

我這方面做的肯定不完美或者說沒那麼好,但是我確實通過一些行動為自己爭取了。我有兩個不相上下的offer,但是我更傾向於其中的一個。我先自己寫了一個小紙條(幾個緩解緊張的呼吸練習后),我就向我中意的那家公司的人事主管打去了電話:

您好,Dave。我打電話是想讓你知道我現在想法。首先感謝您給我這個工作機會,我很高興您認為我是公司的合適人選。我現在還有另外一個很不錯的offer,我這周末做出最後決定后,我會下周一12點前告訴您結果。

其實有一點,我覺得如果能滿足會讓我更加傾向於接受您這邊的offer。由於我無論我接受哪個offer,我都得搬家尋找新的住所,所以如果您這邊如果能在搬家住所費用方面能給我提供一些幫助的話,那就最好不過了。

最後事情的進展雖然和上面說的不完全一致,但是它也幫助了我很多。我向他們表達了提供工作機會的感謝,告訴他們最後的決定日期,並且在沒有要求更高工資的前提下表達了尋求其他方面利益的想法。

總結

我先弄明白了為了找到理想中的工作我都需要做哪些方面的準備。我利用這些信息制定了一個規劃,並通過網上付費課程快速學習到了所需的技能。

我申請了數不清的工作崗位,最後得到了5個面試機會。我又通過討價還價的談判從最後兩個offer中選擇了我最喜歡的一家公司。我現在已經在這家公司工作兩周時間了,而且我很喜歡這份新工作。

原文鏈接:https://medium.freecodecamp.org/how-i-doubled-my-salary-in-5-months-and-got-an-amazing-job-1110d1779e0b

編譯組出品。


想在手機閱讀更多程式設計資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems