如何成功拿下 Google 等頂尖科技公司的 offer?
想入職Google、亞馬遜、微軟、Facebook等頂級科技公司嗎?
本文的作者就成功拿下了Google軟體工程師的工作。本文中,他將分享自己的面試策略,包括如何學習編程、如何獲得第一份工作機會、申請軟體工程師的最佳方式、如何準備面試、上名牌大學真的很重要嗎等話題。
我曾在我個人的YouTube編程教育頻道(名為CS Dojo)視頻中討論過,我是如何拿下Google軟體工程師工作的。
本文中我將做更詳細的介紹。下面讓我們開始吧!
第1步:學習編程
這是成為軟體工程師的最低要求。
為此,我建議你從一些互動式教學網站著手,你可以從這些網站學習到最基本的編程知識。例如Codecademy、freeCodeCamp、SoloLearn等。
之後,我會看視頻教程來學習更多高級的主題。我推薦YouTube、Pluralsight、Lynda.com和Udemy等網站。在這些網站上,你可以找到的教程包括:Web開發;移動開發;遊戲開發。
請根據個人興趣選擇。
但我應該先學習哪種編程語言呢?
簡單的答案是:選擇JavaScript或Python,但實際上取決於你的個人興趣。我在以下的視頻中有做更加詳細的介紹。
由於這個系列只有7個視頻,所以你需要更多資料來學習更高級的主題。
下面是幾種流行的選擇:
- 斯坦福大學的課程:
- https://www.coursera.org/specializations/algorithms
- 麻省理工學院的YouTube課程:
- https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
- 《演算法設計手冊》(The Algorithm Design Manual),作者Skiena;
- 《演算法》第四版 (Algorithms),作者:Robert Sedgewick,Kevin Wayne。
你應該看看上述的資源,然後選擇個人最喜歡的學習。
第5步:準備編程面試
Google和微軟等公司的編程面試非常難,但是準備這些面試很簡單。
在你對數據結構和演算法有了深刻的理解後,我會推薦下列三種資源:
- Leetcode:練習編程面試問題的互動平台;
- Cracking the Coding Interview?(攻克編程面試): 一本關於編程面試的流行書籍;
- Daily Coding Problem?(每日編碼問題):一個郵件列表,每天都會給你一個問題。
練習幾周後,你應該開始模擬面試。
怎麼進行模擬面試?
基本上,你可以讓你朋友根據上述資源提問你。然後,在紙上或Google文檔上解決每個額外難題,並向你的朋友解釋解決方案。你需要從面試者和被面試者兩個角度做練習,如此你就可以感受一下面試官。
在做大約20次左右的模擬面試後,你就可以開始面試你想去的公司了。
第6步:申請,申請並再次申請
在申請頂級科技公司的時候,請利用上述三種策略:
- 參加附近大學的招聘會和招聘活動;
- 找就職於這些公司的朋友,讓他們推薦你;
- 只需在線申請。
如果一次申請不成功,也不要灰心。事實上,這些公司的競爭十分激烈,失敗也是意料之中的事。
就我個人而言,我申請了5次,才拿到了Google軟體工程師的工作。
總結
- 第1步:學習編程;
- 第2步:建立一些個人項目;
- 第3步:找到第一份編程工作或實習機會;
- 第4步:學習數據結構和演算法;
- 第5步:準備編程面試;
- 第6步:申請,申請並再次申請:)
真的就這麼簡單嗎?沒錯,就這麼簡單。儘管如此,想要完成以上六個步驟還是花費大量的時間和精力。
那麼補充一個問題:我需要獲得計算機科學學位嗎?
簡單的答案是:不。但是,計算機科學學位的幫助性非常大。如果你讀完計算機科學,那麼就會掌握第1-4步的大部分內容(學習編程、做個人項目、找到第一份編程工作或實習機會以及學習數據結構和演算法)。
如果沒有計算機科學學位,你只能自學。
此外,請注意,即使擁有計算機科學學位,想要在頂級科技公司找到一份軟體工程師的工作也需要很多準備工作。
我需要就讀麻省理工學院、斯坦福大學、卡內基梅隆大學等頂尖大學嗎?
同樣,簡單的答案是:不。這些大學畢業會有所幫助,但遠非必要。
Google的前任人事高級副總裁Laszlo Bock也同意這一觀點。
他曾在他的著作《重新定義團隊:谷歌如何工作》(Work Rules!)中寫道:與麻省理工學院等頂尖學校中表現平平的學生相比,Google更加喜歡知名度較低的學校畢業表現優異的學生。
我認為這是有道理的,因為如果你聰明而專註,那麼去哪所學校並不重要。
我需要很漂亮的成績單嗎?
簡單的答案依然是:不。
擁有高分可能對面試有點幫助,但是在簡歷中展示紮實的實踐經驗和有趣的項目更為重要。
事實上,《重新定義團隊:谷歌如何工作》(Work Rules!)一書中提到:過去Google比較關注候選人的成績單。然而,他們發現高分與長期在工作中有良好表現並沒有太大關係。之後,他們不再強調成績單。
那麼我需要什麼?
基本上,你所需要的只是強大的編程技術和解決問題的能力,對計算機科學知識良好的理解,以及在簡歷中展示有趣的項目和經驗。
通過以上我介紹的6個步驟,你可以具備所有這些能力。
那麼怎樣才能寫一份好簡歷?
以下是我在申請Google時的簡歷模板,你可以參考:
這是我過去申請Google的軟體工程師時,使用的簡歷。它應該只有一頁,所以我會說我的簡歷太長了。僅作參考吧。
其他關於寫簡歷的資源
- CareerCup很好地概述了該主題:
- https://www.careercup.com/resume;
- 我朋友Zhia Hwa Chong是Twitter的軟體工程師,他寫了一篇很好的文章進行了介紹:
- https://medium.freecodecamp.org/how-to-write-a-great-resume-for-software-engineers-75d514dd8322
謝謝你閱讀這篇文章,祝你好運!
原文:https://medium.freecodecamp.org/how-to-get-a-software-engineer-job-at-google-and-other-top-tech-companies-efa235a33a6d
作者:YK Sugi,CS Dojo創始人。
譯者:彎月,責編:郭芮
「徵稿啦」
CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。
如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯繫 CSDN 投稿,聯繫方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱(guorui@csdn.net)。
※React Native 已死?
※羅永浩「重新定義」 的 TNT 黃了?
TAG:CSDN |