我是如何在5個月內找到一份薪水翻番的工作的?
英文原文:How I Doubled my Salary in Five Months and Got an Amazing Job
六個月前,我辭掉了初級 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 中選擇了我最喜歡的一家公司。我現在已經在這家公司工作兩周時間了,而且我很喜歡這份新工作。























