刷多少题才能进Google?
大家都说
CS简单,刷刷题就好。
但是刷了半天,
LeetCode都没刷完
大家都说
   Career fair要懂得怎么跟Recruiter聊天。 
但是说了半天Recruiter还是跟你说,
把你的Resume在网上给我吧
大家都说
你准备好了就一定有的聊。 
但是去了Career Fair,
还是被Recrutier应付了几句打发走
今天我们来听Phoebus导师说说
如何应对HR们,
如何2星期刷完LeedCode,
帮助你稳步走进你心仪的公司
1
导师背景
国内Top2物理本科,在大学期间对Coding有兴趣。之后读了美国常春藤的master,读的是EE Major,同时也选了很多Coding的课。毕业之后顺利找到SWE的工作。现在在Google工作。
2
如何应对Career Fair
你首先要理解Career Fair 和一般投简历的不同。这个是流程是不一样。一般投简历是先有简历,然后有HR。但是Career Fair 就是相反的。这就导致你一定要对这个公司有一些了解。 尤其是中小型的公司,你是一定要有备而来的。
那如果你是有备而来的话,又该怎么办呢? 不仅仅只是丢一个简历,跟他们聊一聊工作上面的事情。而是问一些如下的问题。
 你们这个部门招不招人?
 你们的某个product我很感兴趣,我想去学习。
3
如何根据公司介绍提问
这是一家叫Moz的公司官网上面的宣传。

比如说拿Moz做例子。这段话其是你要看出来几个关键词“Marketing Analytics” 还有“Help people access this data easily”。可以看出这家公司不是卖数据库的,他们的核心业务是Marketing Analytics
那么我们能探讨的问题就有
卖的好的Marketing Analytics产品有哪些? 
你们有多少Data?
用什么处理Data?
准备这些问题的同时,你也要在网上搜索一下。有答案的就不要再问了。还有一些基本的问题也可以问,比如说:
你们的软件team有所少人?
有多少客户?
公司规模有多大?
4
如何根据职位提问
这是Moz的公司官网上面SWE的招人条件。
这一段里面,Moz说他们有很多牛人,那么你就可以问:
我进去之后会不会有Mentor?
我的背景能不能很快上手?
这个上面同时也说了申请者需要学很多新的技能,所以,你在跟HR聊天的时候,可以说你很喜欢学习新的技术。
总共控制在5-10分钟就可以了。 目的是能给他们留一个影响
有很多HR其是都是前几年刚毕业的,所以很多事情他们自己也不知道。所以,对于这些人,你吹出花来都没有用的。你只要确定你知道你要面试的是什么职位就好了。 
5
导师的面试经验
我面试的时候,因为准备的很充分。所以特别顺利。那周总共有3个onsite,前一天晚上我只睡了3-4个小时就上战场了。 一共有5轮面试。都是1-2道题目,很多都是没有听说过的题目。大概包括了算法,数据结构,另外是数学,最后还是算法还有coding。大概都是一开始先聊一聊简历。介绍完之后就是步入正题。 然后就开始问coding的问题。由简单到难。
这里大家要注意的是,有些面试官由于一开始不知道你的水平,所以先给你一道简单的。你要是做出来的,然后就会给你一道难一点的题目。如果这个你也做出来了,那么他也考察完你的水平了。剩下的时间就是聊天。
6
面试细节
Onsite的时候,一般有两种。在白板上做,还有小公司要求你自己带电脑。
如果你是在白板上面写,那你就把问题问明白之后,把关键词写在白板上面。很多公司面试时候的Communication是算分的。跟她们说清楚你是怎么想的,你想怎么做,交流的差不多了再开始做。
开始写代码的时候,你觉得有必要的话,就写上备注,但是不要硬加。时间和空间都要分析。每个公司都需要,所以不要出错。
然后关于到底是写最优还是最差。我建议你可以先把简单的方法解释出来,不一定要写出来。不要一开始上来就写最难的,要看出他想考什么,然后再动手写。还有一点就是,如果你因为想写最难的,注意控制时间长度。因为要是你写不完,最后还是算你没有做完。
题目写完了,要是有时间可以写一个Test Case,自己跑一下。
7
简历简谈
面试的时候,因为他们都是照着你的简历问的,所以,应该把你希望被问到的写出来。放在最前面。你这样想,都是按照你自己写的来问的,要是你被问楞了,那是很扣分的事情。所以你要做到只要写上去就不要怕被问。 
8
准备面试
我准备面试的时候,一般是在吃完晚饭之后跟朋友一起刷。我们都是在白板上写。说昨天看了什么。 每个人都上去做。说Update,把你学会的跟别人分享。每个人出一两道题。 后来就会非常自然。当然一开始有些人会不自然。 
9
关于背答案
理解和背我觉得其是是一回事。理解了之后,就自然地背下来了。那你也可以背下来之后,慢慢想,自然也就理解了。不是单纯的理解,单纯的背。一定要有一个过程,想想你刷题是为什么。你刷题不是为了安慰自己。是为了通过刷题来提高自己的实力。如果你刷了几遍,你没有到那个实力,那你还要继续刷。比如说Two Sum 的O(n) ,做完之后要想想有没有更好的方法。有一些题目,时间和空间会有Trade Off的。两种方法你都要会。就算是超时的答案,你也要知道。 
当然大家的目标是不一样的。想找稍微好一点的公司的话,Leetcode上面的题目,就至少要过一遍。但是,不要把自己Block住。20分钟一道题。写不出来就去翻答案。只要理解了,第一遍你可以就这样过。只要你的能力提升了。不必纠结是不是你做出来。 尤其是第一遍。
原因是:刷题是为了学东西,看答案也是学东西。没有对不起自己啊。 苦思冥想,你想出来还是要看人家答案。看到别人的答案,就想把自己给撕了。那你想出来的答案是为啥呢? 现在面试的要求越来越高了。这样Block自己之后,你该怎么刷完呢?
10
导师带过的几个学生 
学生A
TA去的是一线公司的广告组,因为面试发挥的特别好,公司给了Senior 的职位。跟我学了比较长,大半年。强度也非常大。每次打电话会说几个题目,研究。每天都有Sync Up,当天就会看。我会给他指出哪里不对,哪个不够clean,算法不对,时间不对等等。我们也常常会有Mock Interview,我也给了他我的答案,这样学员就能跟我的答案相互比较。自己也会想。 面试的时候非常出色的。
一开始的时候,A觉得自己的coding实力不错。后来越做题越觉得实力不够强。要耐心的学习。现在实力很强,反而没有那个时候骄傲。
学生B
这是一位CS 的PHD,lab做的比做题好。 简历写的很好了,所以只是在讲刷题。我们现在做了100-200道。都不是特别难的题目。不过明显实力强了。
一开始的时候是算法稍微难一点的就不可以。现在只要不是tricky就可以写出来了。 现在知道更系统化地思考问题, 从哪里入手。 就算一下子说不出答案,也能讲出更多。
11
Leetcode之后呢? 
要学会很好的利用github,把Leetcode的答案保存上去。可能有多个答案,多个版本。还可以修改之类的。怎么一步步的写的更简明的。
这些是我推荐的网站:
一小半是不跟leetcode重复的, 题不错
适合对数学比较感兴趣,喜欢做优化的。
竞赛人,按分类刷题目。 这里面简单的题目 就相当于面试的难的题目。 大约3000道题。
导师对于学生秉着因人受教的原则,
如果你也想直接联系Phoebus,
也想面试的时候直接拿下Senior职位。
请加小助手,回复“Phoebus导师” 
文末福利

每150个国际留学生,只有9个人能拿到面试,最终只有1人最终拿下Offer,
想在美国找工作,你必须学习这门课程,没有报名的同学都后悔了!
直接点击下图了解课程详情
继续阅读
阅读原文