-
1 # 石頭40695
-
2 # 石頭40695
第1步:學習程式設計
這是成為軟體工程師的最低要求。
為此,我建議你從一些互動式教學網站著手,你可以從這些網站學習到最基本的程式設計知識。例如Codecademy、freeCodeCamp、SoloLearn等。
之後,我會看影片教程來學習更多高階的主題。我推薦YouTube、Pluralsight、http://Lynda.com和Udemy等網站。在這些網站上,你可以找到的教程包括:Web開發;移動開發;遊戲開發。
請根據個人興趣選擇。
但我應該先學習哪種程式語言呢?
簡單的答案是:選擇JavaScript或Python,但實際上取決於你的個人興趣。我在以下的影片中有做更加詳細的介紹。
第2步:建立一些個人專案
在學習了程式設計教程之後,你應該建立一些個人專案來練習學到的知識。
為此,你應該找到你感興趣的東西來建立。
例如,如果你喜歡攝影,那麼或許你可以建立一個所有照片的作品集。如果你喜歡炒股,那麼也許你可以建立一個系統,來為你分析股票圖表。又或者你喜歡解決問題,那麼可以嘗試參加程式設計大賽。
在建立自己的專案的時候,首先建立儘可能多的內容。如果遇到困難,可以利用線上或線下資源尋求幫助。例如,如果你遇到與程式設計相關的問題,那麼可以在Stack Overflow詢問具體的技術問題。
第3步:找到第一份程式設計工作或實習機會
在建立了一些個人專案之後,你應該可以獲得第一份程式設計工作或實習機會了。這可以為你今後面試頂級科技公司積累工作經驗。
第一份工作就進入頂級科技公司也是有可能的,但是有點操之過急,一般來說首先在不知名的公司獲得第一份工作的情況更加常見。
申請軟體工程師工作的最佳方式
簡單地線上申請工作不一定是最好的策略,因為差不多別人都會這麼做。
相反,我建議你使用LinkedIn和實名網路找到第一份程式設計工作。
在LinkedIn上,首先找到你感興趣的公司的招聘人員。然後,問問他們你是否有資格獲得你感興趣的職位。如果你不夠格,那麼你也應該問問怎樣更好地做準備。
對於實名網路,我推薦你透過Meetup等網站,與當地公司的工程師和招聘人員會面。
不過這些還不夠
對於這些大公司,我建議你結合以下三種策略:
參加附近大學的招聘會和招聘活動;
找就職於這些公司的朋友,讓他們推薦你;
只需線上申請。
結合上述策略可以增加拿到這些頂級科技公司面試的機會。
第4步:學習資料結構和演算法
在與Google和微軟等頂級科技公司面試中,經常會遇到有關資料結構和演算法的問題。所以,你應該學一學這些內容。
我推薦你觀看我的這個關於資料結構和演算法的影片來學習基礎知識。透過這些影片,可以讓你更加簡單地學習這個主題。
由於這個系列只有7個影片,所以你需要更多資料來學習更高階的主題。
下面是幾種流行的選擇:
斯坦福大學的課程:
https://www.coursera.org/specializations/algorithms
麻省理工學院的YouTube課程:
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
《演算法設計手冊》(The Algorithm Design Manual),作者Skiena;
你應該看看上述的資源,然後選擇個人最喜歡的學習。
第5步:準備程式設計面試
Google和微軟等公司的程式設計面試非常難,但是準備這些面試很簡單。
在你對資料結構和演算法有了深刻的理解後,我會推薦下列三種資源:
Leetcode:練習程式設計面試問題的互動平臺;
Cracking the Coding Interview (攻克程式設計面試): 一本關於程式設計面試的流行書籍;
Daily Coding Problem (每日編碼問題):一個郵件列表,每天都會給你一個問題。
練習幾周後,你應該開始模擬面試。
怎麼進行模擬面試?
基本上,你可以讓你朋友根據上述資源提問你。然後,在紙上或Google文件上解決每個額外難題,並向你的朋友解釋解決方案。你需要從面試者和被面試者兩個角度做練習,如此你就可以感受一下面試官。
在做大約20次左右的模擬面試後,你就可以開始面試你想去的公司了。
第6步:申請,申請並再次申請
在申請頂級科技公司的時候,請利用上述三種策略:
參加附近大學的招聘會和招聘活動;
找就職於這些公司的朋友,讓他們推薦你;
只需線上申請。
如果一次申請不成功,也不要灰心。事實上,這些公司的競爭十分激烈,失敗也是意料之中的事。
就我個人而言,我申請了5次,才拿到了Google軟體工程師的工作。
第7步:總結
第1步:學習程式設計;
第2步:建立一些個人專案;
第3步:找到第一份程式設計工作或實習機會;
第4步:學習資料結構和演算法;
第5步:準備程式設計面試;
第6步:申請,申請並再次申請:)
真的就這麼簡單嗎?沒錯,就這麼簡單。儘管如此,想要完成以上六個步驟還是花費大量的時間和精力。
那麼補充一個問題:我需要獲得計算機科學學位嗎?
簡單的答案是:不。但是,計算機科學學位的幫助性非常大。如果你讀完計算機科學,那麼就會掌握第1-4步的大部分內容(學習程式設計、做個人專案、找到第一份程式設計工作或實習機會以及學習資料結構和演算法)。
如果沒有計算機科學學位,你只能自學。
此外,請注意,即使擁有計算機科學學位,想要在頂級科技公司找到一份軟體工程師的工作也需要很多準備工作。
我需要就讀麻省理工學院、斯坦福大學、卡內基梅隆大學等頂尖大學嗎?
Google的前任人事高階副QuattroporteLaszlo Bock也同意這一觀點。
他曾在他的著作《重新定義團隊:谷歌如何工作》(Work Rules!)中寫道:與麻省理工學院等頂尖學校中表現平平的學生相比,Google更加喜歡知名度較低的學校畢業表現優異的學生。
我認為這是有道理的,因為如果你聰明而專注,那麼去哪所學校並不重要。
我需要很漂亮的成績單嗎?
簡單的答案依然是:不。
擁有高分可能對面試有點幫助,但是在簡歷中展示紮實的實踐經驗和有趣的專案更為重要。
事實上,《重新定義團隊:谷歌如何工作》(Work Rules!)一書中提到:過去Google比較關注候選人的成績單。然而,他們發現高分與長期在工作中有良好表現並沒有太大關係。之後,他們不再強調成績單。
那麼我需要什麼?
基本上,你所需要的只是強大的程式設計技術和解決問題的能力,對計算機科學知識良好的理解,以及在簡歷中展示有趣的專案和經驗。
透過以上我介紹的6個步驟,你可以具備所有這些能力。
回覆列表
第1步:學習程式設計
這是成為軟體工程師的最低要求。
為此,我建議你從一些互動式教學網站著手,你可以從這些網站學習到最基本的程式設計知識。例如Codecademy、freeCodeCamp、SoloLearn等。
之後,我會看影片教程來學習更多高階的主題。我推薦YouTube、Pluralsight、http://Lynda.com和Udemy等網站。在這些網站上,你可以找到的教程包括:Web開發;移動開發;遊戲開發。
請根據個人興趣選擇。
但我應該先學習哪種程式語言呢?
簡單的答案是:選擇JavaScript或Python,但實際上取決於你的個人興趣。我在以下的影片中有做更加詳細的介紹。
第2步:建立一些個人專案
在學習了程式設計教程之後,你應該建立一些個人專案來練習學到的知識。
為此,你應該找到你感興趣的東西來建立。
例如,如果你喜歡攝影,那麼或許你可以建立一個所有照片的作品集。如果你喜歡炒股,那麼也許你可以建立一個系統,來為你分析股票圖表。又或者你喜歡解決問題,那麼可以嘗試參加程式設計大賽。
在建立自己的專案的時候,首先建立儘可能多的內容。如果遇到困難,可以利用線上或線下資源尋求幫助。例如,如果你遇到與程式設計相關的問題,那麼可以在Stack Overflow詢問具體的技術問題。
第3步:找到第一份程式設計工作或實習機會
在建立了一些個人專案之後,你應該可以獲得第一份程式設計工作或實習機會了。這可以為你今後面試頂級科技公司積累工作經驗。
第一份工作就進入頂級科技公司也是有可能的,但是有點操之過急,一般來說首先在不知名的公司獲得第一份工作的情況更加常見。
申請軟體工程師工作的最佳方式
簡單地線上申請工作不一定是最好的策略,因為差不多別人都會這麼做。
相反,我建議你使用LinkedIn和實名網路找到第一份程式設計工作。
在LinkedIn上,首先找到你感興趣的公司的招聘人員。然後,問問他們你是否有資格獲得你感興趣的職位。如果你不夠格,那麼你也應該問問怎樣更好地做準備。
對於實名網路,我推薦你透過Meetup等網站,與當地公司的工程師和招聘人員會面。
不過這些還不夠
對於這些大公司,我建議你結合以下三種策略:
參加附近大學的招聘會和招聘活動;
找就職於這些公司的朋友,讓他們推薦你;
只需線上申請。
結合上述策略可以增加拿到這些頂級科技公司面試的機會。
第4步:學習資料結構和演算法
在與Google和微軟等頂級科技公司面試中,經常會遇到有關資料結構和演算法的問題。所以,你應該學一學這些內容。
我推薦你觀看我的這個關於資料結構和演算法的影片來學習基礎知識。透過這些影片,可以讓你更加簡單地學習這個主題。
由於這個系列只有7個影片,所以你需要更多資料來學習更高階的主題。
下面是幾種流行的選擇:
斯坦福大學的課程:
https://www.coursera.org/specializations/algorithms
麻省理工學院的YouTube課程:
https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
《演算法設計手冊》(The Algorithm Design Manual),作者Skiena;
你應該看看上述的資源,然後選擇個人最喜歡的學習。
第5步:準備程式設計面試
Google和微軟等公司的程式設計面試非常難,但是準備這些面試很簡單。
在你對資料結構和演算法有了深刻的理解後,我會推薦下列三種資源:
Leetcode:練習程式設計面試問題的互動平臺;
Cracking the Coding Interview (攻克程式設計面試): 一本關於程式設計面試的流行書籍;
Daily Coding Problem (每日編碼問題):一個郵件列表,每天都會給你一個問題。
練習幾周後,你應該開始模擬面試。
怎麼進行模擬面試?
基本上,你可以讓你朋友根據上述資源提問你。然後,在紙上或Google文件上解決每個額外難題,並向你的朋友解釋解決方案。你需要從面試者和被面試者兩個角度做練習,如此你就可以感受一下面試官。
在做大約20次左右的模擬面試後,你就可以開始面試你想去的公司了。
第6步:申請,申請並再次申請
在申請頂級科技公司的時候,請利用上述三種策略:
參加附近大學的招聘會和招聘活動;
找就職於這些公司的朋友,讓他們推薦你;
只需線上申請。
如果一次申請不成功,也不要灰心。事實上,這些公司的競爭十分激烈,失敗也是意料之中的事。
就我個人而言,我申請了5次,才拿到了Google軟體工程師的工作。
第7步:總結
第1步:學習程式設計;
第2步:建立一些個人專案;
第3步:找到第一份程式設計工作或實習機會;
第4步:學習資料結構和演算法;
第5步:準備程式設計面試;
第6步:申請,申請並再次申請:)
真的就這麼簡單嗎?沒錯,就這麼簡單。儘管如此,想要完成以上六個步驟還是花費大量的時間和精力。
那麼補充一個問題:我需要獲得計算機科學學位嗎?
簡單的答案是:不。但是,計算機科學學位的幫助性非常大。如果你讀完計算機科學,那麼就會掌握第1-4步的大部分內容(學習程式設計、做個人專案、找到第一份程式設計工作或實習機會以及學習資料結構和演算法)。
如果沒有計算機科學學位,你只能自學。
此外,請注意,即使擁有計算機科學學位,想要在頂級科技公司找到一份軟體工程師的工作也需要很多準備工作。
我需要就讀麻省理工學院、斯坦福大學、卡內基梅隆大學等頂尖大學嗎?
Google的前任人事高階副QuattroporteLaszlo Bock也同意這一觀點。
他曾在他的著作《重新定義團隊:谷歌如何工作》(Work Rules!)中寫道:與麻省理工學院等頂尖學校中表現平平的學生相比,Google更加喜歡知名度較低的學校畢業表現優異的學生。
我認為這是有道理的,因為如果你聰明而專注,那麼去哪所學校並不重要。
我需要很漂亮的成績單嗎?
簡單的答案依然是:不。
擁有高分可能對面試有點幫助,但是在簡歷中展示紮實的實踐經驗和有趣的專案更為重要。
事實上,《重新定義團隊:谷歌如何工作》(Work Rules!)一書中提到:過去Google比較關注候選人的成績單。然而,他們發現高分與長期在工作中有良好表現並沒有太大關係。之後,他們不再強調成績單。
那麼我需要什麼?
基本上,你所需要的只是強大的程式設計技術和解決問題的能力,對計算機科學知識良好的理解,以及在簡歷中展示有趣的專案和經驗。
透過以上我介紹的6個步驟,你可以具備所有這些能力。