沒有CS文憑,如何通過Google面試?
非CS專業畢業,想要通過Google面試是否是異想天開?
並不!
其實很多在IT領域取得驚人成就的大牛並非CS專業畢業。事實上,只要你有足夠大的決心,很多技能是可以學習的。經過努力,你也可以拿到Google的offer。
1、填補空白
初期,你 需要掌握一門基本的計算機語言,如 Python,Java 等大眾計算機語言。 你完全可以在網上找到很棒的自學資源,也可以通過九章演算法的《Python 基礎演算法》入門課程,更快速地直接完成這一步準備工作。
在此基礎上, 你需要增強你的程式設計技能 。比如演算法、撰寫小程式等。
(1) 解決程式設計問題 。搜尋一些程式設計練習題,提高程式設計能力。
(2) 嘗試寫一些應用程式、小遊戲等等 ,增加實踐能力。
(3) 深入學習演算法 。演算法是Google面試中的重要測試內容。但學習演算法並不需要四年的時間,四周甚至更少的時間便可以掌握。實際上演算法是可以學習並且非常有趣的,不管你是否想要參加Google的面試,這都將提升你的程式設計能力。
2、掌握規律
後期, 針對Google面試,要找大量的Google面試題進行練習。
可以在 ofollow,noindex"> http://www. lintcode.com 上找到google的面試題庫,由易到難開始刷題。
Google的面試題並不神祕,都是程式設計的練習題。 與 Facebook, Amazon 等大多數IT界知名大公司的面試題型別沒什麼區別。事實上,與其他任何IT公司的面試題型別並無二致,都是演算法練習題。
儘管如此,也並不意味著這些題非常簡單。其實這對每個人來說都是難題。但是 只要你多加練習,掌握規律和技巧, 你就知道如何去解決、攻破它們。
3、尋找最佳解決方案
為什麼Google面試題這麼難? 因為Google面試官並不只是為了尋找題目的答案,而是 為了尋找最佳的答案。 最好的程式碼面試題有三種答案:a bad answer, a good answer, 以及 a great answer。每種答案都是正確的,決定它們是否比別的答案更好的因素是執行時間長短。

每一場Google面試,一個面試者在面試官的幫助下想要得a bad answer都得花一個小時,調整和改善才以得到a good answer,進一步努力才能得到a great answer。如果不考慮執行時間,這三種答案無疑都是獨特並且正確的。但是我們的最終答案是遠遠優於其他答案的,尤其當我們投入了巨大的精力,收穫的不僅僅是a bad answer,而是a great answer。
優秀的程式面試表現不僅僅是能夠誤打誤撞得到正確的見解,而且 要能解釋為什麼這個答案是最好的 。面試時,你需要能夠向面試官解釋:某個函式是如何有效解決問題以及如何找到更有效的解決方案。
4、對比學習
解決問題的過程是一個可學習的過程。 想要加快學習程序,最好的方法是去看樣例。 悶頭做題的進步是很慢的,多看樣例,參考別人的思維方式,思考如何寫出更高效的程式碼,縮短程式執行時間,才能更快提升自己的程式設計能力。
因此,在 LintCode 上刷完每道題後,馬上對比一下參考答案很有必要。這裡推薦一個提供優質的演算法題答案的網址: http://www. jiuzhang.com/solutions/ ,有助於對比學習,看到自己的差距所在。
5、不只是 Google 面試
不管你是不是在谷歌面試, 提升演算法思維都會大大提高你的程式設計技能 。只要練習,你就會有進步。每當寫程式碼時,你需要在頭腦中思考,什麼樣的程式碼能縮短執行時間,集思廣益,進行優化,你才能得到最優程式碼。這是從優秀工程師到偉大工程師的開始之路!
推薦閱讀
歡迎關注我的微信公眾號:九章演算法(ninechapter)。
精英程式設計師交流社群,定期釋出面試題、面試技巧、求職資訊等。