1. 程式人生 > >分享國外Python大咖如何在5個月內找到一份薪水翻番的工作的?

分享國外Python大咖如何在5個月內找到一份薪水翻番的工作的?

金三銀四,謹以此文獻給所有正在準備跳槽的你。

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

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

我喜歡程式設計,不僅僅是我的個人愛好,也是我的職業興趣。

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

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

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

審視與調研

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

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

基礎紮實,熟練掌握Python

熟悉 tornado 、django 或 flask 等框架。

熟悉MySQL、MongoDB、Redis資料庫和多執行緒程式設計;

實際程式設計能力強;

制定行動計劃

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

我需要讀完《Learning Python》這本書。這個系列的書曾經為我初步學習Python知識提供了很大幫助,所以我覺得也應該對我學習更高階的Python也會有不少幫助。

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

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

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

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

在讀《Learning Python》這本書的同時,並學習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倍速看完的。這個課程比我第一個學習課程長多了,但是我最終差不多用了一個半月成功學習完。

學以致用

現在我所有準備工作和工具都已具備,我要開始學以致用了。我現在已經旅行了三個半月了,並設想還可以繼續旅行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)準備

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

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

(2)最後的面試

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

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

最後的Offer與談判

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

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

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

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

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

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

“但是這家公司很小,而且.....”

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

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

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

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

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

總結

我先弄明白了為了找到理想中的工作我都需要做哪些方面的準備。我利用這些資訊制定了一個規劃,並通過網上付費課程快速學習到了所需的技能。當然有些細節並不每個人都適用,自己也會有合適的方法走出來。

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

後記

謹以此文獻給想學好Python而又不得其門路的朋友,我想也會有很多朋友希望通過自學來讓自己掌握好Python程式設計,但也少不了資料的輔助,我這裡有個資料學習群推薦給大家,歡迎點贊轉發,讓更多需要的朋友看到,謝謝大家!