做者 YK Sugi
編譯 Mika
本文爲 CDA 數據分析師原創做品,轉載需受權面試
前谷歌軟件工程師YK Sugi分享了他是如何經過六個步驟,順利開啓了本身的數據科學職業生涯。算法
你們好,有不少人問我如何得到谷歌的軟件工程師工做,在本文中我將分享我是怎麼作的。編程
用相同的方法,你也能夠在谷歌、亞馬遜、微軟、Facebook等頂尖科技公司得到軟件工程師的工做。網絡
在以上公司順利求職共須要6個步驟,此外我還將討論如下內容:數據結構
· 首先該如何學習編程
· 學會編程後要學什麼
· 如何得到第一份編程工做或實習機會
· 軟件工程師工做求職的最佳方式
· 如何充分準備編程面試
· 是否要得到計算機科學學位?
· 是否要畢業於頂尖大學?數據結構和算法
好的,咱們開始吧!編程語言
第1步:學習編程學習
這是成爲軟件工程師所需的最低要求。網站
爲此,我建議你使用Codecademy和freeCodeCamp等交互式網站。在這些網站上你能夠學習大多數編程基礎知識,SoloLearn也是不錯的選擇。編碼
以後,我會使用視頻教程來學習更深刻的知識。我推薦YouTube,Pluralsight,Lynda.com和Udemy等網站。在這些網站上,你可以找到如下主題的教程:
· Web開發
· 移動開發
· 遊戲開發
取決於你的興趣。
可是等一下,我應該先學習哪一種編程語言呢?
個人簡短回答是,選擇JavaScript或Python,但這實際上取決於你的興趣。我在以前的文章中有探討過這個問題。
第2步:作些我的項目
在學習了一些編程教程以後,你應該經過構建一些我的項目來練習學到的知識。
爲此,你應該找到你感興趣的東西。
例如,若是你喜歡攝影,那麼你能夠開發一個網站整理你所拍的照片。若是你對股票感興趣,那麼可以構建一個系統來分析股票圖表。若是你喜歡解決問題,那麼能夠嘗試參加編程比賽。
當處理項目時,首先要儘量靠本身完成。而後,若是遇到困難,可使用在線或離線資源獲取其餘人的幫助。例如,若是遇到與編程相關的問題,你能夠在Stack Overflow對特定技術問題進行提問。
第3步:得到第一個編程工做或實習
一旦完成了一些我的項目,你就有機會得到第一份編程工做或實習機會。這樣在與頂級科技公司面談以前,你將有一些編程的經驗。
你徹底有可能在一家頂級科技公司得到第一份工做,可是這種概率比較小,你得到的第一份工做更多是在一家不那麼知名的公司。
申請軟件工程師工做的最佳方式
除了在網上投簡歷,你還有其餘的方法能夠嘗試。
這裏我建議你使用LinkedIn和人脈網絡。
在LinkedIn上,首先找到你感興趣的公司的招聘人員。而後,你能夠問他們你是否有資格得到你感興趣的職位。若是你的資格還不夠,你也應該問他們如何能更好地作準備。
還有Meetup這種人脈網絡的網站,你能夠直接與當地公司的工程師和招聘人員進行交流。
這還不是所有。
LinkedIn這種人脈網站對於中小型公司的職位很適用。可是,對於想應聘谷歌和Facebook等大型公司而言,效果就不那麼好了。
對於這些大公司,我建議結合如下三種方法:
1.參加你附近大學舉辦招聘會。
2.經過在其中一家公司工做朋友的推薦。
3.網上投簡歷。
結合這些方法可以增長你得到大型公司面試的機會。
對於大型公司,LinkedIn上大公司招聘人員收到的消息太多了,所以效果不太好。
第4步:學習數據結構和算法
谷歌和微軟等頂級科技公司在面試時,常常會問到關於數據結構和算法的問題。因此,若是你對這方面不太瞭解,那麼你應該學習。
針對這方面的基礎知識,我推薦我YouTube頻道的數據結構和算法系列視頻。
書籍:
《算法設計手冊》 (The Algorithm Design Manual) 做者Skiena
《算法》Algorithms 做者 Robert Sedgewick
第5步:準備編程面試
谷歌和微軟等公司的編程面試很難,但能夠有針對性的進行準備。
一旦你對數據結構和算法有了深刻了解,我就會推薦如下三種資源用於練習:
· Leetcode——練習編程面試問題的互動平臺。
· 《搞定編程面試》(Cracking the Coding Interview)——關於編程面試的熱門書籍。
· 每日編程問題(Daily Coding Problem) ——天天給你提供一個編程問題的郵件列表。
在本身練習幾周以後,你能夠開始進行模擬面試。
怎麼作模擬面試
與你的朋友一塊兒練習,從我以上提到的資源中選問題互相提問。
解答每一個問題,並對你的解決方案進行解釋。
在練習時,除了面試者還要充當面試官的角色,從而揣摩面試官的想法。
進行約20次模擬面試,以後你對實際面試將有必定把握。
第6步:反覆嘗試
使用我以上提到的三種方法應聘頂級科技公司:
· 招聘活動/招聘會
· 朋友推薦
· 網上求職。
若是第一次沒有成功,請不要泄氣。在找到心儀的工做前必然會經歷一些失敗。
在我成爲谷歌的軟件工程師以前,我曾嘗試了五次。
總結:
第1步:學習編碼
第2步:作些我的項目
第3步:得到第一個編程工做或實習
第4步:學習數據結構和算法
第5步:準備編程面試
第6步:反覆嘗試
等等,真的那麼簡單嗎?
是的,可是完成這六個步驟須要大量的時間和精力。
其餘問題
問題1:我須要得到計算機科學學位嗎?
不用,可是擁有計算機科學學位有很大幫助。若是你參加一個完善的計算機科學課程,當中包含了步驟1,2,3和4的大部份內容(學習編程,作我的項目,得到第一個編程工做或實習,以及學習數據結構和算法)。
若是沒有計算機科學學位,你須要自學當中許多內容。
要注意,即便擁有CS學位,得到頂級科技公司的軟件工程師工做也須要付出不少努力。
問題2:我是否須要畢業於麻省理工學院,斯坦福大學,卡內基梅隆大學等頂尖大學?
一樣,並不須要。畢業於頂尖大學固然有些幫助,但這並非必備條件。
谷歌人事業務部的高級副總裁Laszlo Bock也贊成這一觀點。
在他的書《 Work Rules!》中提到,比起來自麻省理工學院等頂尖學校但表現平庸的學生,谷歌更青睞來自普通院校但表現優異的學生。
我認爲這是有道理的,若是你很聰明且專一,那麼來自哪所學校並不重要。
問題3:我須要很高的GPA(績點)嗎?
不用。
較高的績點在面試中有必定優點,但你擁有紮實的實踐經驗,且完成了有趣的項目更爲重要。
事實上,根據《 Work Rules!》,谷歌過去經常注重面試者的績點。然而以後他們發現,較高的績點並不意味着出色的工做能力。所以谷歌再也不強調面試者的績點。
問題4:那我須要什麼?
你所須要的是強大的編程能力和解決問題的能力,熟練掌握計算機科學的基礎知識,以及在簡歷中展現出完成的項目和具有的經驗。
根據我在文中提到的六個步驟,你就能作到。
問題5:怎麼能寫一篇好的簡歷呢?
你能夠參考我在面試谷歌時用的簡歷。
簡歷的篇幅最好控制在一頁,個人稍微有些長,但能夠做爲參考。
祝你好運!