醇香麥芽糖
招聘的流程?在線申請簡歷篩選電話訪談現(xiàn)場面試Offer發(fā)放面試包括哪些內(nèi)容?簡短介紹介紹你的專長或進行技術(shù)評估提出你的問題面試沒有益智類問題(因為益智問題并不能反映你的編程能力)如何對申請人的工程技能進行評估?我們會根據(jù)以下四個方面來進行評估:編程語言的語法,關(guān)鍵庫函數(shù),編程風(fēng)格,對程序性能的考慮等算法和數(shù)據(jù)結(jié)構(gòu)分析能力合理設(shè)計如何準備面試?復(fù)習(xí)基礎(chǔ)知識復(fù)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)練習(xí)寫代碼 在白板上或在紙上練習(xí)不要使用偽代碼你可以選擇你最擅長的編程語言認識Google員工?和他聊聊他在Google的經(jīng)歷。讓他成為你的推薦人,或者讓招聘者知道誰可以成為你的推薦人。在實際面試過程中:我們希望了解你解決問題的能力我們會向你提出一個有深度的問題,我們想了解你對復(fù)雜問題的解決方法不一定要得到正確答案,你的思考過程比正確答案更加重要我是在校生,離畢業(yè)還有兩三年的時間,應(yīng)該怎么努力?打好專業(yè)基礎(chǔ)學(xué)習(xí)編程語言:C、C++、Java、Perl、Python參加課堂之外的活動參加計算機俱樂部或社團參加編程競賽爭取盡可能多的實習(xí)生機會參與開源項目(不要忘記參加Google編程之夏-Google Summer of Code)博士生的面試會有所不同么?我們會根據(jù)每個人的情況安排有針對性的面試面試內(nèi)容包括標準算法,設(shè)計,編碼能力論文討論所有的面試官都具有博士學(xué)位Google軟件工程師如是說: 問:在Google工作,最擔(dān)心的一點是什么? 答:公司的零食太多了,在Google工作要防止長胖 問:在Google工作,最輕松的事情是什么? 答:坐在桌子上跟老板說話 問:在Google上班,著裝有什么要求? 答:穿總比不穿好。 問:Google工程師幾點上班? 答:Google工程師的工作比較自由,沒有固定考勤,允許Work from home。但由于需要和其他辦公室的同事交流,有可能一大清早就爬起來開會,或者一直工作到深夜。 問:在Google工作,最讓你欣喜的事情是什么? 答:在Google工作,有機會與許多大牛共事,一起交流技術(shù)。 問:出差的機會多嗎? 答:取決于項目安排,可能需要去美國東西海岸、倫敦、蘇黎世、悉尼、東京等地出差 問:怎么才能獲得上萬臺計算機來做大規(guī)模并行計算實驗? 答:到Google工作,你隨時可以做到。 問:在Google可以做開源軟件嗎? 答:可以,很多著名的開源軟件程序員加入了Google,包括Google中國也有很多著名的開源軟件程序員 問:你們的夢想是什么? 答:我們的夢想是:技術(shù)改變世界,do good things that matter in the worldGoogle 非軟件工程師如是說: 問:聽說在 Google 吃的很好,如果胖了怎么辦? 答:公司有健身房,瑜伽房,吃多了下去跑兩圈。 問:Google 員工有保險么? 答:有,很好的員工保險,還包括員工家屬呢。 問:Google員工有帶薪假期么? 答:員工在入職的第一年有15天的帶薪假期。在Google工作每多一年,帶薪假期就多一天。所以,如果你在Google 工作滿235年,就可以全年休假啦! 問: Google對于非技術(shù)性職位的要求是什么? 答:用戶至上,無論是對終端客戶還是內(nèi)部用戶,都將是最重要的標準之一。 問:面試Google非技術(shù)性職位有什么技巧? 答:陳述事實,善用數(shù)據(jù),如果你經(jīng)驗足夠豐富!你懂的。:) 問:Google的銷售工作壓力大嗎? 答:我們歡迎敢于接受挑戰(zhàn)的人加入銷售團隊,按摩椅,健身房,瑜伽室是你最好的減壓伙伴。
蝦蝦蝦蝦醬
谷歌員工眼中的 6 個關(guān)鍵點
在我向你提供課程列表前,先讀第一二點
全職工作人員——基于你的行業(yè)經(jīng)驗和學(xué)術(shù)背景去選擇性的看待這個回答
準大學(xué)生——請直接跳到第七點
標記說明:
# 可選的
**必須的
#第一點:讓我們回到這個問題本身,也即是如何準備才能讓自己成為“優(yōu)秀”的軟件工程師?
是的!這個問題的剩余部分都是可選的。加入谷歌不是登月計劃。任何優(yōu)秀的軟件工程師都有好機會成為谷歌工作文化的一部分。問題是你如何定義“優(yōu)秀”。
**第二點:調(diào)整態(tài)度
在你給谷歌招聘人員留下深刻印象之前,讓我們來看看谷歌的軟件工程師這一角色是否是你真正想要的。
軟件工程師并不是像普遍觀念所說的那樣有趣。除了用戶界面和用戶體驗的職位,通常來說,不管你用什么文字編輯器——Eclipse、Vim或者Emacs——你的屏幕將是黑的,無聊和枯燥的。全職的軟件工程師,不僅需要有從事復(fù)雜算法的能力,還需要足夠的包容和耐心來一絲不茍地關(guān)注大型程序上的細節(jié)。
在谷歌,通常大多數(shù)軟件工程師的角色主要是處理數(shù)學(xué)問題。你掌握了多少種語言或者你把Java、C、C++等玩得多溜是無所謂的。
重要的是這個四個目標:
你創(chuàng)造有效算法的能力
你閱讀別人寫的代碼以及發(fā)現(xiàn)其中存在任何問題的細心品質(zhì)
你的學(xué)習(xí)和實現(xiàn)新技術(shù)趨勢并且適應(yīng)需求的好奇心
最后也是最重要的:你創(chuàng)造了什么,如何創(chuàng)造的?
我必須之處要實現(xiàn)以上四個目標并不容易。我們大多數(shù)谷歌員工都有一段苦逼時間來達到這些目標,但是我們嘗試過,所以你也應(yīng)該去嘗試。
每個人都有不同的學(xué)習(xí)方法。于我,我每天讀一篇我在Quora鏈接上找到的研究論文(可能和也可能不和計算機科學(xué)有關(guān)),一篇谷歌的研究文章(內(nèi)部記錄)。
一旦你加入谷歌,將可以訪問所有的代碼庫,數(shù)據(jù)庫,論壇,研究論文和一些能給你學(xué)習(xí)時提供巨大幫助而你卻無法在維基百科上找到的項目。但當(dāng)你在為加入谷歌而準備路上時,有幾樣事情在學(xué)習(xí)的過程中很常見。在第五點中,你將會更多地了解到——怎樣來實現(xiàn)這四個目標——但在這之前有些前提還是需要看看的。所以,我們進入下一點吧。也即是:
#第三點: 2014年技術(shù)發(fā)展指南——來自谷歌
作為一個成功的軟件工程師,有著扎實的計算機基礎(chǔ)是很重要的。對于大學(xué)生,通過自我把握節(jié)奏地親身實踐學(xué)習(xí),來專業(yè)性地或者非專業(yè)性地培養(yǎng)他們的技術(shù)能力,跟隨這份谷歌指南是一條建議路徑。
請自己權(quán)衡使用這份指南
這份指南之外可能也有你想學(xué)或者想做的其他東西——盡管去做吧!
**第四點:對專業(yè)性學(xué)習(xí)的建議
計算機科學(xué)入門課程
注:計算機科學(xué)的入門課能提供編程的一些指導(dǎo)。
在線資源:
Udacity – intro to CS course,Coursera – Computer Science 101
*譯者注:這些在線資源大都是英文授課,因此沒有翻譯課程名(下同),另外作為程序員英語必須得好啊,可以參看伯樂在線老碼農(nóng)寫的《老碼農(nóng)教你學(xué)英語》一文。
至少用一種面向?qū)ο蟮木幊陶Z言寫代碼:C++,Java,或者Python
初學(xué)者在線資源:
Coursera – Learn to Program: The Fundamentals,
MIT Intro to Programming in Java,
Google’s Python Class,
Coursera – Introduction to Python,
Python Open Source E-BookIntermediate Online Resources:
Udacity’s Design of Computer Programs,
Coursera – Learn to Program: Crafting Quality Code,
Coursera – Programming Languages,
Brown University – Introduction to Programming Languages
學(xué)習(xí)其他編程語言
注:可以將這些語言加到你的倉庫里:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
在線資源: – HTML教程*,?Learn to code
測試你的代碼
注:學(xué)會如何跟蹤bugs,創(chuàng)建測試,并且破壞你的軟件
在線資源:?Udacity – Software Testing Methods,?Udacity – Software Debugging
培養(yǎng)邏輯思維和積累離散數(shù)學(xué)知識
在線資源:
MIT Mathematics for Computer Science,Coursera – Introduction to Logic,Coursera – Linear and Discrete Optimization,Coursera – Probabilistic Graphical Models,Coursera – Game Theory.
譯者注:coursera課程大多都有中文字幕,對于學(xué)習(xí)語言門檻會降低,不過仍推薦學(xué)習(xí)原版課程。
培養(yǎng)算法和數(shù)據(jù)結(jié)構(gòu)的深刻理解能力
注:了解一些基本數(shù)據(jù)類型(棧、隊列和包),排序算法(快排、合并排序、堆排序)和數(shù)據(jù)結(jié)構(gòu)(二分查找、紅黑樹、哈希表),大O表示法等
在線資源:
MIT Introduction to Algorithms,Coursera – Introduction to Algorithms?Part 1?&?Part 2,Wikipedia –?List of Algorithms,Wikipedia –?List of Data Structures,Book:?The Algorithm Design Manual
培養(yǎng)對操作系統(tǒng)的深刻理解能力
在線資源:UC Berkeley Computer Science 162*
*譯者注:這個鏈接是YouTube上的,國內(nèi)有很多電驢的資源,親測可用(如果找不到可用鏈接,譯者可提供)
學(xué)習(xí)人工智能的知識
在線資源:Stanford University –?Introduction to Robotics,?Natural Language Processing,?Machine Learning*
*譯者注:斯坦福Andrew Ng的這門機器學(xué)習(xí)課程強烈推薦,譯者也有大量該課程資源。
學(xué)習(xí)如何構(gòu)造編譯器
在線資源:Coursera – Compilers*
*譯者注:這門課程也是相當(dāng)實用,最好跟著可能動手完成課程的編譯器項目。
學(xué)習(xí)密碼學(xué)
在線資源:Coursera – Cryptography,?Udacity – Applied Cryptography
學(xué)習(xí)并行編程
在線資源:Coursera – Heterogeneous Parallel Programming
**第五點:對非專業(yè)性學(xué)習(xí)建議
參與課堂之外的項目
注:創(chuàng)建和維護一個網(wǎng)站,構(gòu)建你自己的服務(wù)器,或者做一個機器人。
在線資源:Apache List of Projects,?Google Summer of Code,Google Developer Group
參與大系統(tǒng)(代碼庫)中的小代碼片段,閱讀和理解已有的代碼,查文檔并且跟蹤調(diào)試。
注:用GitHub來閱讀別人的代碼或者去貢獻一個項目是一種很好的方式。
在線資源:Github,?Kiln
和其他程序員一起參與項目
注:這將會幫你提高在團隊工作的能力,也使你能夠向他人學(xué)習(xí)。
鍛煉你的算法知識和編程能力
注:通過像CodeJam或者ACM ICPC這些編程競賽來鍛煉你的算法知識
在線資源:?CodeJam,?ACM ICPC*
*譯者注:國內(nèi)有很多OJ也可以起到這個作用,比如POJ、九度等
成為一個助教
注:幫助教其他學(xué)生將會有助于增加你在這個學(xué)科的知識
軟件工程方面的實習(xí)經(jīng)歷
注:確保你在實習(xí)招聘期來臨前申請了實習(xí)工作。在印度和美國,實習(xí)期在暑假,5至9月份,而申請通道通常提前幾個月就打開了。
在線資源:
#第六點:谷歌推薦/贊助的項目和團隊
在你興趣領(lǐng)域內(nèi),你可能選擇訂閱的課程很少。這些課程和項目是非常好的學(xué)習(xí)地方,但他們不會增加或減少你進谷歌的機會——他們不等于實習(xí)。(更多信息來自?Robert Love)
谷歌課程——Making Sense of Data
這門自我把握節(jié)奏的在線課程是為任何想學(xué)習(xí)更多關(guān)于結(jié)構(gòu)、可視化、操作數(shù)據(jù)的人準備的。
2.?谷歌課程——BOLD Discovery
這個為期兩天的互動會議將給一二年級的大學(xué)生提供一些關(guān)于谷歌文化和這家公司職業(yè)前景的介紹。
3.?谷歌編程之夏
一個全球在線項目,提供給上完中學(xué)且年齡在18以上學(xué)生開發(fā)者津貼,讓他們?yōu)楦鞣N各樣的開源軟件項目寫代碼。
4.?谷歌獎學(xué)金政策
這個項目提供學(xué)生在暑假期間為互聯(lián)網(wǎng)工作的機會和在公共利益組織上提出的技術(shù)政策。
5.?谷歌學(xué)生退伍軍人峰會
谷歌學(xué)生退伍軍人峰會包括為老兵適應(yīng)工作環(huán)境而準備的職業(yè)培養(yǎng)課程。也可以參看:Ellen Spertus?在?How can I effectively use my last two years of college to prepare for a great Software Engineering job at Google/FB or a startup??這個問題上的觀點。*
*譯者注:這是Quora上Ellen Spertus對另一個問題(我是怎樣高效地利用大學(xué)最后兩年來為谷歌/Facebook或者初創(chuàng)企業(yè)的一個很好的軟件工程師職位做準備的)的回答。
**第七點:對數(shù)學(xué)課程的建議
(對準大學(xué)生而言)
個人觀點:任何忽視這些學(xué)科企圖將使你進入完全以錯誤方式學(xué)習(xí)的平庸程序員的范疇。之前準備的越充分就越使得寫代碼越享受。這些是軟件工程的幾個前提,對軟件工程你需要去理解算法的精髓。如果軟件工程師能夠回憶起學(xué)校里學(xué)的簡單知識,大多數(shù)他們犯的錯誤本可以避免的。
在你深入學(xué)習(xí)數(shù)學(xué)或者計算機科學(xué)中,你將意識到你“大學(xué)本科時學(xué)過的數(shù)據(jù)結(jié)構(gòu)”和“研究生時學(xué)過的機器學(xué)習(xí)”的重要性。因此,要想設(shè)計復(fù)雜的算法,一下是你必須精通的課程清單。對于大學(xué)研究生,如果你忽視了這些學(xué)科,我強烈建議你應(yīng)該你能做到的最好的方式去復(fù)習(xí)它們。
在你學(xué)習(xí)完學(xué)校課本上的介紹性大綱之后,練習(xí)下面的課程來加深理解吧。大多數(shù)大學(xué)生(甚至在職員工)低估了這些課程然后成為了另一類平庸的程序員;
線性代數(shù)
1.?Linear Algebra | Mathematics | MIT OpenCourseWare?(我推薦的)2.?Coding the Matrix: Linear Algebra Through Computer Science Application?(同事推薦的)
學(xué)習(xí)這些會幫你理解后續(xù)的回歸模型——機器學(xué)習(xí)基本的一步。任何學(xué)校、大學(xué)、研究室或者機構(gòu)都不會教你這些線性代數(shù)課程。自己去學(xué)吧。
微積分
1.?Calculus 1?– Ohio State University2.?Pre-Calculus Courses?– Universitat Autonoma de Barcelona3.?Calculus for Beginners and Artists?– MIT
統(tǒng)計&概率
注:當(dāng)你上大學(xué)和讀研究生時,大綱就會變成機器學(xué)習(xí)的算法了。對于大多數(shù)大學(xué)生,機器學(xué)習(xí)課程的頭三個月里數(shù)學(xué)使他們苦不堪言,而當(dāng)他們好不容易趕上進度了,大綱又推進到更加機器學(xué)習(xí)復(fù)雜的領(lǐng)域,比如深度學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)和神經(jīng)網(wǎng)絡(luò)流處理。#準大學(xué)生:谷歌推薦/贊助的項目
谷歌的Code-in項目(GCI)
這個比賽為年齡在13至17歲的準大學(xué)生介紹了各種各樣使得開源軟件開發(fā)成為可能的貢獻。
RISE獎金
谷歌RISE是一種對合伙人的獎勵,它獎勵旨在促進和支援為全世界的K12*小學(xué)生和中學(xué)生的STEM*以及計算機教育舉措的項目。
*K12,從幼兒園到12年級
*STEM,Science,Technology,Engineering,Math,科學(xué)、技術(shù)、工程、數(shù)學(xué)
前沿計算機科學(xué)研究院(LEAD-CSI)
這個項目使得來自不同社區(qū)的中學(xué)生可以接觸到STEM領(lǐng)域的大學(xué)和職業(yè)。
用代碼創(chuàng)造
編程是種新能力-它承載著創(chuàng)造、創(chuàng)新和文明改造世界的潛能。這個舉措旨在激勵數(shù)以百萬計的女孩體驗代碼的魔力。
高中座談會
這個為期一天的項目旨在為優(yōu)秀的高年級中學(xué)生在上大學(xué)前提供有價值的商業(yè)技巧。
先驅(qū)者
先驅(qū)者項目是一個全球性的網(wǎng)絡(luò),這里聚集著領(lǐng)導(dǎo)者、倡導(dǎo)者和計算機教育大使,大使們負責(zé)讓全球的青年和教育工作者通過計算機科學(xué)被聯(lián)系和激勵。
谷歌科技博覽會
谷歌科技博覽會是對13到18歲青少年開放的全球性競賽。學(xué)生在線提交項目并得到贏得大獎的機會。
計算機科學(xué)暑期研究所(CSSI)
CSSI是一個為期三周的暑期項目,針對即將進入大學(xué)且對學(xué)習(xí)計算機科學(xué)感興趣的新生而設(shè)。
Google+露營項目
30天的DIY和制作活動。Maker Camp是一個在Google+上對所有人開放的免費虛擬暑期露營活動
互聯(lián)教室
在Google+ 上和老師、教育組織協(xié)作來為K12學(xué)生提供經(jīng)驗性的學(xué)習(xí)機會。
參考:
優(yōu)質(zhì)工程師考試問答知識庫