有! Google有可能是全世界最不看重GPA的公司了。Google People Op老總 Laszlo Bock自己說過,Google通過多年統計和研究發現,GPA和個人成功的correlation極小。鏈接:Google HR Boss Explains Why GPA And Most Interviews Are Useless
Base在美國的hiring committee。上文說到的package會被發到committee,committee中人會定時開會並討論每一個被發過來的case。前面說過面試官會打分,平均分低的就直接被刷,平均分中等以上的就會開始case by case討論,直到大家同意這個case是hire or no hire。無法統一意見的case可能會被退回給recruiter,然後recruiter可能會去collect more information如加多一輪interview。
轉載一下官網 How we hire - Google Careers 上的說法吧,方便被牆的知友:
Leadership
We』ll want to know how you』ve flexed different muscles in different situations in order to mobilize a team. This might be by asserting a leadership role at work or with an organization, or by helping a team succeed when you weren』t officially appointed as the leader.
Role-Related Knowledge
We』re looking for people who have a variety of strengths and passions, not just isolated skill sets. We also want to make sure that you have the experience and the background that will set you up for success in your role. For engineering candidates in particular, we』ll be looking to check out your coding skills and technical areas of expertise.
How You Think
We』re less concerned about grades and transcripts and more interested in how you think. We』re likely to ask you some role-related questions that provide insight into how you solve problems. Show us how you would tackle the problem presented--don』t get hung up on nailing the 「right」 answer.
Googleyness
We want to get a feel for what makes you, well, you. We also want to make sure this is a place you』ll thrive, so we』ll be looking for signs around your comfort with ambiguity, your bias to action and your collaborative nature.
本科學得是心理學專業,07年大三的時候陰差陽錯自學了互聯網前端開發,接了一些外包項目,也開始了解互聯網。當時有認識的小夥伴在Google 工作,經常講其公司的種種,慢慢被 Google 企業文化、產品、技術、理念打動。Google作為全球網民和IT人員的殿堂,作為鐵杆谷粉的我,當時最大的願望就是可以進入Google工作。
08年大四畢業的時候申請過一次 Google 前端工程師,因為技術自學,水品很差,簡歷投遞直接拒信;
09年第一份工作是在一家傳統教育公司,發現 Google 有一些 Android 工程師的職位 Openning,每天下班開始業餘自學Android開發,開發了幾個App之後再次嘗試,簡歷投遞直接拒信;
10年曲線救國,去了一家互聯網創業公司,希望積累相關從業經驗,也可以多一些行業內人脈,這樣申請 Google 成功幾率高一些;在職期間投了一次簡歷,直接拒信;
11年4-7月 開始各種渠道投遞簡歷。因為借住在計算機系宿舍,先天優勢,每天在水房打聽有沒有哪位童鞋實驗室的師兄師姐師弟師妹在Google實習,求幫忙內推;只要聽到Google 校園招聘的消息,必出現投遞簡歷,獲取職位信息;掃描了之前同事和行內朋友的各種有可能和 Google 有關係的人,不同渠道投遞簡歷。每次簡歷被拒絕,換個馬甲接著投。為了積累面試經驗,也擔心如果沒有如願Google,也要有備選方案,所以期間同時也申請了其他眾多公司,拿了很多一線互聯網公司的offer,BAT、Top創業公司等等。但每次拿到了Offer後,只要聽聞Google 這邊可能有職位放出、有一線希望,就拒絕掉其他Offer,接著為Dream Offer準備。
11年6月 經過屢敗屢戰的簡歷投遞後,終於拿到了第一次 Google on-site 面試機會,是Eng Team,考演算法,一面就掛了。
11年7月 Google AdSense 組織了一個沙龍活動,開放給網站站長。為了打入內部,托關係用朋友的網站報了名,混了進去。在活動當天,電梯裡面了遇見了 AdSense 的一位 team member,套了套熱乎,得知AdSense 團隊在招人,擔心直接投遞簡歷會有些唐突,就想辦法聊出了我們一個共同朋友。活動回來之後,趕忙聯繫那個共同朋友朋友幫忙遞了分簡歷,也拿到面試。第一輪電面和之後的第二、三、四、五輪onsite面試都很順利,可最後一關老闆面,還是覺得我資歷太淺,恐難勝任,又被斃掉了。
11年8月 為了不讓Gap期太久,打算接受之前拿到的一家 IT 公司的Offer,之後再伺機而動。這時居然又收到Google HR 的電話,說有一個更junior 一點的職位空缺了,之前電面的面試官非常幫忙的推薦了我,不需要額外面試,但是因為有被拒過的記錄,需要準備更多的材料(推薦信、Essey、簡歷等)來向總部說明。我當然心花怒放的希望再次嘗試,於是新工作還沒入職就辭職了,專心準備各種文檔,找各種xGoogler的人幫忙寫推薦信背書。兩周的焦慮等待後,收到了Google的聘用合同。。。
除了一些大牛,程序員很難具體描述強弱。個人感覺要拿到面試,基本上是 推薦 and (好學校 and / or 相關工作經驗) 。能否通過面試,Google基本完全就是演算法代碼。我一直覺得自己最弱的就是演算法,面試前狠補了一下,大概達到Google的及格線。個人沒試過ACM、Code Jam之類,自我評價(面試前)中等偏上,基本夠用。Introduction to Algorithm能勉強看懂並應用。
收到簡歷之後,如果過了初篩,就會有HR聯繫你,進行一個大約半個小時的電話面試,一周之後會通知你on site
interview。
On site interview差不多會有5-7輪,基本上會讓你見到未來你要工作的主要同事,每個人都會從不同的方面進行面試。另外,如前面提到的,團隊找的是跟自己氣質相投的人,所以儘可能讓更多人見到你是比較重要的。另外,每一個面試的同事,都需要進行專業的面試培訓,並且在面試的過程中,會進行詳細的記錄,最後匯總。
大三暑假參加了一個在我看來意義十分重大的活動,叫Google Summer of Code(GSoC)。我在這個活動中幫開源編譯器項目GCC編寫代碼(一個正則表達式引擎),而且得到了他們的肯定。這份經歷在後來的面試中起到了很大的作用。上一個寒假的時候,我看到Apple的LLVM團隊招實習生,我也投了簡歷。他們表示感興趣,但是由於我即將畢業無法做實習生,而他們也不提供正式職位,所以終究沒有面試。直到最近,我還突然收到了華為的郵件,說看到我在GCC項目中的貢獻,問我願不願意去他們的編譯器組。
附Working Experience: Google, Mountain View, start from June 2, 2014 Interests Programming Languages, Compilers Skills Languages: C, C++, Java, Python, Go, Scheme Platform: GNU/Linux Projects GCC (on http://gcc.gnu.org) : GNU C++11 standard library & Evil (on http://github.com) : Yet another Scheme interpreter, in C compiler_practice (on http://github.com) : A compiler practice based on LLVM. OgrePractice (on http://github.com) : A WoW-like scene wandering program, in C++ Ogre Contests 2013 ACM-ICPC China Nanjing Invitational Programming Contest Bronze Award 2013 ACM-ICPC China Hangzhou Invitational Programming Contest Bronze Award Google of Greater China Test for New Grads of 2014, Rank 33/2142, identi?er TShen Google Code Jam 2013, stop at Round 2, identi?er INNOCENT Scholarship Google Summer of Code 2013, Completing C++11 regex, $5000 Education B.S. Computer Science, New York Institute of Technology, 2014
如果我一直想進一家公司,那麼常規情況下我會這樣: 1. 通過媒體以及員工兩方面更多地了解該公司,使用並體驗該公司的產品。 媒體用搜索引擎搜,員工的話可以搜他們在各種SNS上發的內容來看,以博客的信息為主。 a. 了解公司產品 b. 了解公司文化 c. 了解員工背景及日常生活 (如果一個公司里所有員工的風格都是吐槽自家公司,整日加班,苦逼生病過勞死,沒有什麼個人生活,我反正就會謹慎考慮這家了。不過Google福利很好這是眾所周知。)
2. 讓自己的簡歷變得好看一些並及時更新,這是一個長期的過程,會讓機會砸中你的幾率變高。我們lab里幾乎每個人都被Google的HR主動發信聯繫過問有沒有興趣來實習或者工作。Google的HR是直接從linkedin聯繫的我。HR一般會看的大概是: a. 名校 及 高學歷。 (本科學校也很重要) b. 相關項目經驗 c. 各種演算法相關比賽的金獎 (acm/icpc, 各種codejam) 之類。 d. 暑期實習經驗。 (很多公司會在優秀的實習生結束實習後簡化面試流程然後發正式offer) e. 對博士生來說,publication。 總之,牛人有各種各樣的牛法。沒有統一的標準。只要能突出自己的亮點即可。
3. 了解該公司如何招聘。 a. 看公司的招聘頁面,了解職位信息。 (在我自己沒有NB到可以靠臉或者公司為了特招我特意創造出一個職位的時候,還是先了解人家公司的信息比較好) b. 看是否有校招/宣講會。校招和HR聊天遞簡歷。面試門檻比社會招聘容易些。 c. 看有沒有該公司的朋友/同學/學長學姐可以內推我。這樣獲得面試的幾率最大。 很多公司員工內推成功後有獎金拿,因此會熱心幫忙。
4. 拿到面試機會之後, a. 網上搜索別人寫的面試經驗,面試準備流程。 b. 一般不同地區面試題的難度會有一定差異。個人感覺是歐洲&<美國&<中國(印度)。由淺入深地來做。 c. 做搜集到的所有的面試題,以及類似公司的面試題,發現自己面試知識欠缺之處。 d. 根據下一輪的面試類型,請朋友給自己做模擬面試。
Google 面試前的周末,我把自己關在一個會議室里,拿著筆在白板上練了一天的白板coding,最後證明還是很有幫助的。Google面試定在周一,不過真到面試的當天也不太緊張了。面試就這麼平平淡淡的過去了,Google的面試題比較活,follow-up比較多,可能比較背,所有題目都沒做過,也沒命中面經。非常喜歡Google的面試方式,感覺是在和面試官一起討論一個問題而不是被問好多奇怪的知識點。
還有兩點: 1.要找工作就去找refer,不然拿面試都困難 2.要投就投北美總部,像Singapore和HK的可能做salesmarketing的居多,總部SDE的機會會多的多 3.年輕人還是有vision一點,每年拒掉FGL的牛人很多,大部分去了比Google更難進的airbnb,uber,Pinterest,dropbox這些hot startups,你要的不是serve for Google,而是create a Google
Having a solid foundation in Computer Science is important in being a successful Software Engineer. This guide is a suggested path for University students to develop their technical skills academically and non-academically through self paced hands-on learning. You may use this guide to determine courses to take but please make sure you are taking courses required for your major or faculty in order to graduate. The online resources provided in this guide are not meant to replace courses available at your University. However, they may help supplement your learnings or provide an introduction to the topic.
Using this guide:
Please use this guide at your discretion
There may be other things you want to learn or do outside of this guide - go for it!
Checking off all items in this guide does not guarantee a job at Google
This guide will evolve or change - check back for updates
Follow our Google for Students +Page to get additional tips, resources, and other students interested in development.
Recommendations for Academic Learnings
Introduction to CS Course
Notes: Introduction to Computer Science Course that provides instructions on coding Online Resources:Udacity - intro to CS course, Coursera - Computer Science 101
Code in at least one object oriented programming language: C++, Java, or Python
Beginner Online Resources: Coursera - Learn to Program: The Fundamentals, MIT Intro to Programming in Java, Google"s Python Class, Coursera - Introduction to Python, Python Open Source E-Book Intermediate Online Resources: Udacity"s Design of Computer Programs, Coursera - Learn to Program: Crafting Quality Code, Coursera - Programming Languages, Brown University - Introduction to Programming Languages
Learn other Programming Languages
Notes: Add to your repertoire - Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme. Online Resources: w3school.com - HTML Tutorial, CodeAcademy.com
Test Your Code
Notes: Learn how to catch bugs, create tests, and break your software Online Resources: Udacity - Software Testing Methods, Udacity - Software Debugging
Develop logical reasoning and knowledge of discrete math
Online Resources: MIT Mathematics for Computer Science, Coursera - Introduction to Logic, Coursera - Linear and Discrete Optimization, Coursera - Probabilistic Graphical Models, Coursera - Game Theory
Develop strong understanding of Algorithms and Data Structures
Notes: Learn about fundamental data types (stack, queues, and bags), sorting algorithms (quicksort, mergesort, heapsort), and data structures (binary search trees, red-black trees, hash tables), Big O. Online Resources: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1 Part 2, List of Algorithms, List of Data Structures, Book: The Algorithm Design Manual
Notes: Create and maintain a website, build your own server, or build a robot. Online Resources: Apache List of Projects, Google Summer of Code, Google Developer Group
Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug things.
Notes: Github is a great way to read other people』s code or contribute to a project. Online Resources: Github, Kiln
Work on project with other programmers.
Notes: This will help you improve your ability to work well in a team and enable you to learn from others.
Practice your algorithmic knowledge and coding skills
Notes: Practice your algorithmic knowledge through coding competitions like CodeJam or ACM』s International Collegiate Programming Contest. Online Resources: CodeJam, ACM ICPC
Become a Teaching Assistant
Notes: Helping to teach other students will help enhance your knowledge in the subject matter.
Internship experience in software engineering
Notes: Make sure you apply for internships well in advance of the period internships take place. In the US, internships take place during the summer, May-September, and applications are usually open several months in advance. Online Resources: google.com/jobs