懶癌末期
有個規(guī)劃,興趣或者ambition兩者之一做到超乎常人,三年努力可以把人帶到任何高度。首先要明確知道自己為什么讀研以及讀研要做什么方向。很多人讀研都是稀里糊涂地就讀了,最后變成了老板的免費勞動力。毫無目的的讀研只會白白浪費時間,遠不如本科就直接工作成長的多。既然選擇讀,就一定要讀得有價值,不要讓這三年白費。 ? ?在認清了自己的研究方向后,就要有針對性地加強自己方向的技術(shù)能力。最強的面試者就是應(yīng)該有說出“這個方向應(yīng)屆生里我最牛X”的氣勢。否則浪費了三年時間,編程能力與思維速度都會退化,反而沒有本科有優(yōu)勢。以我自己為例,我現(xiàn)在的算法能力已經(jīng)大不如本科階段,但是因為研究生階段發(fā)了幾篇頂會的論文,因此給很多面試官都留下了很深刻的印象,其中有一面facebook的面試官甚至主動要了我的論文下載地址。 ? ?另外,google or facebook目前的面試題已經(jīng)不像以前那么難了,基本都是經(jīng)過簡單思考就能想到的動態(tài)規(guī)劃、模擬、貪心,常用數(shù)據(jù)結(jié)構(gòu)等題,基本屬于leetcode難度。但是難度降低是以clean code && bug free為條件的。你最終需要有在白板 or 白紙上bug free的把代碼實現(xiàn)的能力,做到這點就基本沒有問題了。
靜水居士
谷歌也曾經(jīng)錄用過一位沒受過正規(guī)大學(xué)教育、連本科文憑都沒有、基本全靠自學(xué)成才的草根碼農(nóng),大家會不會覺得不可思議?但是,這事兒真的可以有——曾就職于谷歌、Square、DoubleHelix 等公司的資深軟件工程師及創(chuàng)業(yè)者大衛(wèi)·比托(DavidByttow)日前撰文介紹了他從一介草根到被谷歌錄用的經(jīng)歷,故事絕對勵志!文章摘要: 第一,鼓起勇氣挑戰(zhàn)很牛的事情,做著做著自己也就變牛了。第二,與業(yè)界“大拿”為友,能改變解決問題和看待世界的方式。第三,勤能補拙,在大量實踐中彌補基礎(chǔ)知識方面的差距。第四,抹去簡歷中的教育背景,意外得到面試機會;做足準(zhǔn)備,谷歌面試也能變得樂趣十足。事實證明,谷歌對優(yōu)秀的人才并不完全拘泥于學(xué)歷。其實,我當(dāng)年非常非常想上大學(xué)。我選擇申請加州大學(xué)洛杉磯分校(UCLA),但是很不幸,我在高中的平均績點(GPA)只有可憐巴巴的 ,所以我也就沒法被大學(xué)錄取了。然后,我在普渡大學(xué)蓋萊默校區(qū)(PurdueUniversityCalumet)進修計算機課程,同時盼望自己有朝一日能順利轉(zhuǎn)學(xué)或者另謀出路。過了將近兩個學(xué)期之后,出路來了——我得到了一個令人無法拒絕的錄用通知。第一步:假裝自己很牛,直到真的變牛 上大學(xué)時,我曾經(jīng)給印第安納州格里菲斯市的一家小公司打工,工作內(nèi)容是幫助本地公司建網(wǎng)站,時薪 12 美元。這份工作與我所夢想的未來職業(yè)相去甚遠,但也不算太糟糕。我埋頭苦干、不說大話,把好幾個項目做得超乎預(yù)期。這為我建立了很好的聲譽,也讓那家公司獲利頗豐。與此同時,我還在并不充裕的業(yè)余時間里嘗試游戲開發(fā)。后來我孤注一擲,請求公司管理層給我三個月時間和一點點錢來開發(fā)一款能在網(wǎng)上銷售的游戲。我做出了漂亮的電子表格和豐富多彩的圖表,向他們展示了共享軟件模式的原理和游戲的光明“錢途”。當(dāng)時我也不大清楚自己在做什么,但他們還是買了我的賬,可能是因為我做的東西顏色很漂亮吧。開發(fā)了兩個多月之后,我在網(wǎng)上發(fā)布了一段演示,引起了加州初創(chuàng)企業(yè) CodeFire 的注意,因為他們做的也是一模一樣的太空射擊游戲,類似于非 3D 的 SubSpace。但引起關(guān)注未必就是好事——很不幸,他們向我發(fā)出了勒令停止通知函。于是我也只能回復(fù)曰:“沒問題,我會到此為止——前提是你們得雇我開發(fā)你們的游戲?!彼麄兓匾砸环蒌浻猛ㄖ倚{了它。注意:這家公司持有這款游戲的原始版權(quán),而我在離職前也按照規(guī)定提前三周通知了老東家。第二步:與“大拿”交朋友 這或許是你能做的最重要的事情之一——找到你們行業(yè)中的大拿,讓他們做你的導(dǎo)師,切記學(xué)無止境。在 DoubleHelix 工作時,我遇到的大拿是內(nèi)森·亨特(NathanHunt),他是我見過的最聰明、最謙遜的牛人之一,而且他對我提出的所有問題都極具耐心,無論這些問題有多么初級。我成百上千次走進他的辦公室,隨意提出諸如“我如何才能把一個旋轉(zhuǎn)矩陣順利插入另一個?”之類的問題。多年之后,他比我晚一個月加入了谷歌。我的每一位導(dǎo)師都在一定程度上改變了我解決問題或看待世界的方式,我在此就不一一贅述了。第三步:彌補差距 我沒有正式的計算機學(xué)位,因此我明白自己缺乏很多基本知識,例如我曾經(jīng)用物理引擎解決一個動態(tài)編程問題,結(jié)果總也不成功。為了彌補這些差距,我實踐過我所聽聞或讀到過的幾乎所有最常見的數(shù)據(jù)結(jié)構(gòu)和算法。你肯定能找到自己需要的信息,但是通過觀察“知其然”與通過實踐“知其所以然”之間存在著巨大的差距。隨著時間的推移,你需要做到以下事情:1. 精通C、C++、Objective-C、Java、PHP、Python 或 Ruby 當(dāng)中至少一門編程語言,熟練使用至少一種其他語言,并且熟悉 Scala、Haskell 或 Lisp。2. 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),實踐大多數(shù)常用數(shù)據(jù)結(jié)構(gòu),了解它們的復(fù)雜性。3. 解決編程問題,多看多練多思考。4. 構(gòu)建自己的已完成(未完成)項目作品集(例如編程框架、移動或 Web 應(yīng)用、小游戲,等等)第四步:找到自信 離開印第安納六年后,我已經(jīng)在多個平臺上推出了大約 6 款游戲。我開始感到無聊,需要尋求新的挑戰(zhàn)。我申請了谷歌的職位,覺得被谷歌雇傭能讓我成為“真正的工程師”——對于我這個沒有一紙文憑的人來說,這就是我為之奮斗已久的理想。但是,我一直沒有收到谷歌的回音,而我對此并不感到驚訝。一年之后,我重新提交了自己的簡歷,但是這一次索性把“教育背景”一欄整個兒去掉了。令人哭笑不得的是,一名招聘人員居然打來了電話并為我安排了一次技術(shù)方面的電話面試。我問她能否把電話面試安排在兩周之后,她同意了。我需要那段時間——我分秒必爭地臨時抱佛腳,最大限度地向自己的腦袋里填裝各種算法和數(shù)據(jù)結(jié)構(gòu),每天編程 12 到 14 個小時,解了數(shù)百道編程題目。我如癡如醉地投入其中,直到我對谷歌面試的恐懼感變成了自信和興奮。我依然記得在谷歌面試過程中遇到的每一個人,與他們打交道實在是一種樂趣。面試官們說起話來風(fēng)趣幽默,而我相信他們一定看到了我的興奮和對面試問題的期待。以下是我遇到的一些面試題目: 1)給出一組二維點,計算出它們的 skyline。此題很簡單,解法有好幾種,而我使用了一種叫做“最大堆”(maxheap)的常用數(shù)據(jù)結(jié)構(gòu)。3)講一講你最看重的軟件優(yōu)點。這是一次“開放性”討論面試,我講到了各種測試以及它們發(fā)揮價值的時候(例如單元、整合、驗收),還講到了利于代碼可維護性的一致風(fēng)格,等等。這些內(nèi)容能在《CodeComplete》和《EffectiveJava》等圖書中找到。我真的非常享受每一輪面試和解答各種題目的過程。如果我不是有備而來,情況肯定就會大不相同。面試之后,我自我感覺很好,但是我聽說即便招聘委員會最終決定發(fā)放錄用通知,也需要 CEO 拉里·佩奇親自簽字才有效。我很擔(dān)心他一看到我在教育背景方面的不足,我就立馬完蛋了。但是,這樣的悲劇終究沒有發(fā)生——一天中午,我在圣克拉拉市(SantaClara)吃壽司時接到了電話,然后欣喜若狂地接受了錄用通知。從那天起,我終于可以確信我再也不用回學(xué)校念書了。正如孫子曰:“是故勝兵先勝而后求戰(zhàn),敗兵先戰(zhàn)而后求勝。”注:我在谷歌度過了精彩非凡的五年,作為一名工程師不斷學(xué)習(xí)和成長,但是現(xiàn)在我已經(jīng)不在谷歌工作了。
美食VS鈔票
不要成為腦殘粉,不要盲目崇拜任何人、事、物。你學(xué)得再好google也有可能不要你,招聘是看命的事情,可能要2、3次你才能混上運氣去google,但別因為google不要你就喪失信心。努力成為一個優(yōu)秀的程序員,不要只以混進google為標(biāo)準(zhǔn)。就算第一次沒混進google,就算考研失敗,甚至連淘寶都拒了你,也不要灰心,努力前行才是正事。具體在往下走的時候,肯定會遇到很多困難,像你說的組成原理什么頭大,那純粹是編寫教材的人不想讓你看懂(當(dāng)然他自己也是半吊子),就得自己努力思考解答。
優(yōu)質(zhì)工程師考試問答知識庫