注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
接上篇:
once again,这篇文章不单独针对谷歌或者任何公司,而是主要适用于湾区大厂,和那种hiring process已经非常完善的公司。文章中如有违反公司守则,请立即告知,我会马上删除
看到地里面经版里大家基本都在发自己做了什么题,但很少有人发自己面试的过程,更少会有人能观察一下面试官到底会在面试过程中注意到什么,所以想专门开个帖子说一下我作为面试官希望看到的一些面试者身上的品质。做出题目并不一定代表会过面试,有时候一些细节的力量真的比我们想象的要重要。
目前面了大概30几个人,我给hire和strong hire的10个人左右除了一个我写了concern的,全都发了offer,weak hire及以下的全都没有offer。可能刚好我面的人方差比较大所以容易判断,但这也证明我自己的判断标准据和hire committee还是非常一致的。
# 面试的关键:
其实大公司算法面试并不是那么公平。有人会碰到很和蔼善良的面试官,有人却会碰到疯狂刁难或者不理不睬的面试官;有人的题是easy,有人拿到的比hard还要难,有人拿了好几个strong hire却赶到hire freeze没过hire committee,有人拿了一个No Hire却一样过了面试。这些因素大家谁都无法控制。公司也知道这一点,所以才会弄出这套标准流程,就是为了尽量在不同面试官不同题目的情况下,可以相对公平有效地地衡量面试者水平。这套流程并不完美,但只要能发挥七八成作用即可。放过一些顶尖的放进一些水货对于大公司都是可以接受的,反正都是螺丝钉,进来还有一套培训流程,进来半年都能干活了。
这套流程的目的,主要是为了用尽量少的成本招到还不错的人才:面试不多不少4-5轮,每场只有45分钟一道题,对公司对HR省时省力。但对面试官和面试者来说,难度就大了。对于面试官,要在短短45分钟内全面考察面试者会什么,水平怎么样,适不适合申请的岗位。45分钟,就只做一道题能了解这么多吗?肯定不完全能,但多来几个人平均下来,误差就小很多了。
注意这一句“在45分钟内,全面考察面试者会什么,水平怎么样,适不适合申请的岗位”。这是面试官的核心问题,那么对面试者呢?
面试者的要求是,在45分钟内,全面展示自己的方方面面来证明自己*适合这个岗位*。面试不是为了看我们会做不会题,而是为了看适不适合这个工作岗位。那么这两者的区别是什么呢?
关键在于:工作岗位的要求到底是什么。
# 适合合作的品质
思考一下工作学习的时候,我们最想看到身边的同事或者一起做project的同学什么样的品质?
(下面划重点)
- 能力强,看问题看的的很清楚,而且做东西很快
- 写的东西质量很高,很值得信赖
- 很清楚什么是重要的什么是不重要的,知道对于一个项目该做什么该怎么做什么时候做什么
- 一起做project的时候,交流起来很舒服很方便
- 对方的代码很清楚很好理解,对接起来顺利
- 独立自主,不拖后腿
- 对于同一个项目可以提出不同解决方案,并且能分析各个方案的利弊,决定在某个条件下最合适的方案(这个已经是比较高级的品质了)
一个刷题刷的很快的人,他会满足能力强这一个品质,但是其他的都不一定满足。试想我们和一个这样的大神一起做一个项目:
- 大神理解问题很清楚很快,刷刷刷代码就写好了
- 但是大神讲不清楚,你并不能理解他在说什么他是怎么做的
- 写代码都是int a,string temp
- 一个文件3000行没有类只有一个main
project做到中途大神有其他任务被迫换项目,让我们来接手他的代码,test是证明我们解答正确性的最好方法。几个test case,带上一两个corner case,足够说服面试官我们的答案是ok的不需要再浪费时间看了。附带着也建议做一些sanity checking,输入输出做一些处理,过滤掉无效输入。哪怕不写代码,也可以写上一段伪代码证明我们考虑到这些了,只是因为时间限制不作展开。另外,对于我上面的利弊分析,最好对于一道题拿出多个解法(哪怕时间复杂度空间复杂度并非最优),但面试官看中的是我们有没有能力提出多种方案并做利弊分析。
在谷歌这几年,每做一个新项目,都会想怎么说服大家这个方案是最好的,而同事们在design doc review提做多的问题就是,为什么不用ABC,为什么要用这个。对于这种问题最好的回答方式,就是在design doc里面列举ABC这三个备选方案,然后详细分析利弊,综合说明自己的方式是比ABC更好的。这已经成为我们的工作习惯了,写一个项目先看看别人做过什么,除了自己的方案,还有其他什么方案可以用,优点缺点都有什么,决定性因素是什么。面试的时候,我们也会很欣赏有这样品质的面试者。
# 总结
能做到上面这些很不容易。通常一个合格的eng要花好几年才能培养出上面左右这些品质,对于刚毕业的new grad就更难了。不过,慢慢来,一个优秀的eng一定得要花不少时间。希望大家在刷题的时候也能想一想,该怎么让自己能“真正成为一个好的eng”,而非“在面试时通过技巧展示自己是个好eng”,前者做起来难,但是形成习惯后,我觉得是对于eng的整个职业生涯都非常有帮助的。
如果有小伙伴有其他面试方面的问题,可以在帖子下面留言,我有空的时候会回复的。建议不要私信,你的问题对于其他小伙伴也很有价值,最好让大家一起受益。如果有其他的面试官,或者对与面试也有所思考的同学,欢迎一起交流。这个帖子只是抛砖引玉,希望能够集思广益,帮助到更多的人。如果管理员觉得不错的话,也希望能帮忙置顶,让更多准备面试中的小伙伴也能受益。
祝大家工作学业顺利,面试的时候发挥出色,拿到自己的dream offer,走出一个优秀的eng职业生涯!
|