一直以來(lái)漱牵,Google都憑借其強(qiáng)大的實(shí)力,吸引著一批優(yōu)秀的人才疚漆,特別是去年底酣胀,Google宣布在北京成立AI中心,更是吸引了一大批人娶聘。
千軍萬(wàn)馬過(guò)獨(dú)木橋闻镶,怎么能不好好準(zhǔn)備一場(chǎng)呢?
如果你選擇的是軟件工程相關(guān)的崗位丸升,在面試前你最好先掌握以下幾個(gè)方面的知識(shí):
編程實(shí)踐:你可以在CodeLab铆农、Quora、Stack Overflow等網(wǎng)站上找到一些編程示例狡耻。Cracking the Coding Interview這本書也是一個(gè)不錯(cuò)的資源墩剖。在某些站點(diǎn),你可以選擇在Chromebook或者白板上編程(提前詢問(wèn)招聘人員夷狰,這樣你可以先行練習(xí))岭皂。一定要測(cè)試代碼,確保代碼易于閱讀沼头,而且沒(méi)有bug爷绘。不用過(guò)分關(guān)注細(xì)微的句法錯(cuò)誤,比如在給定方法(start,end or start,length)時(shí)應(yīng)該使用哪種substring进倍,選擇一個(gè)土至,告訴你的面試官即可。
編程:你應(yīng)該熟練掌握至少一門編程語(yǔ)言猾昆,最好是C++毙籽、Java、Python毡庆、Go或者C坑赡。你需要知道API烙如,面向?qū)ο蟮脑O(shè)計(jì)和編程,如何測(cè)試代碼毅否,以及corner case和edge case亚铁。注意,我們關(guān)注的是你對(duì)概念的理解而不是記憶螟加。
算法:同時(shí)用自下而上的算法和自上而下的算法來(lái)處理問(wèn)題徘溢。你需要了解算法的復(fù)雜性以及如何改進(jìn)算法。Google里常用的包括排序算法(加上搜索和二分法檢索)捆探、分治算法然爆、動(dòng)態(tài)編程/記憶、貪心算法黍图、遞歸算法曾雕、鏈接到特定數(shù)據(jù)結(jié)構(gòu)的算法。了解大O符號(hào)(Big O notation助被,比如運(yùn)行時(shí))剖张,并做好討論Dijkstra和A*等復(fù)雜算法的準(zhǔn)備。我們建議你在寫代碼之前討論或概述你所想到的算法揩环。
排序:熟悉常用的排序函數(shù)以及了解它們對(duì)哪些輸入數(shù)據(jù)有效搔弄。從運(yùn)行時(shí)(runtime)和內(nèi)存占用的角度思考效率問(wèn)題。例如丰滑,在特殊情況下顾犹,插入排序(insertion-sort)或基數(shù)排序(radix-sort)比一般的快速排序/合并排序/堆排序(QuickSort/MergeSort/HeapSort)答案好得多。
數(shù)據(jù)結(jié)構(gòu):你應(yīng)該研究盡可能多的數(shù)據(jù)結(jié)構(gòu)褒墨。最常用的數(shù)據(jù)結(jié)構(gòu)有數(shù)組炫刷、鏈表、堆棧貌亭、隊(duì)列、哈希集认臊、哈希映射圃庭、哈希表、字典失晴、樹(shù)和二叉樹(shù)剧腻、堆和圖(arrays,linked lists,stacks,queues,hash-sets,hash-maps,hash-tables,dictionary,trees and binary trees,heaps and graphs)。你需要徹底了解數(shù)據(jù)結(jié)構(gòu)涂屁,以及不同算法對(duì)不同數(shù)據(jù)結(jié)構(gòu)的偏好书在。
數(shù)學(xué):有些面試官會(huì)問(wèn)一些基本的離散數(shù)學(xué)問(wèn)題,因?yàn)槲覀兘?jīng)常碰到各種計(jì)算問(wèn)題拆又、概率問(wèn)題儒旬、以及其他的Discrete Math 101問(wèn)題栏账。面試前,你可以花時(shí)間復(fù)習(xí)下(或者自學(xué))基本概率論和組合數(shù)學(xué)的基本知識(shí)栈源。你需要熟悉n-choose-k等同類型的問(wèn)題挡爵。
圖算法:考慮一個(gè)問(wèn)題是否可以應(yīng)用圖算法,如距離甚垦,搜索茶鹃,連接,循環(huán)檢測(cè)等(distance,search,connectivity,cycle-detection)艰亮。熟悉三種基本方法——對(duì)象和指針闭翩,矩陣和鄰接表——的利弊。了解基本的圖遍歷算法迄埃、廣度優(yōu)先搜索和深度優(yōu)先搜索疗韵,以及它們的計(jì)算復(fù)雜性、優(yōu)缺點(diǎn)调俘、實(shí)現(xiàn)方法伶棒。
遞歸:許多編碼問(wèn)題都涉及遞歸思考,而且可能還要對(duì)遞歸解決方案進(jìn)行編碼彩库。針對(duì)那些能夠用迭代解決的問(wèn)題肤无,你需要找到更簡(jiǎn)練、更優(yōu)雅的遞歸方法骇钦。
任重而道遠(yuǎn)宛渐,革命尚未成功,同志仍需努力眯搭!
歡迎關(guān)注~
需要資料的可聯(lián)系哦~