d********w 发帖数: 363 | 1 http://zhuanlan.zhihu.com/donglaoshi/19949853
笔者之前在LinkedIn做技术工作同时,也花了不少时间在招聘上,成为了当时LinkedIn
前三的面试官,包括挖掘候选人,参与校园招聘,草拟面试题,电话面试,Onsite面试
,填写反馈,和最后决定是否发放Offer,都有完整的流程和经历,我就按问答形式给
大家借鉴。这里也推荐一下我的新书:程序员面试白皮书(An Ultimate Guide to
Coding Interviews),有任何建议意见,请不吝赐教:)
问题:硅谷公司的招人的渠道有哪些,跟国内有何不同?
一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全
面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学
术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会;也喜欢举办公开技
术讲座,邀请社会各界参加,注册时留下联系方式。或者写一些技术博客,开源产品,
通过他们做的有意思的项目来间接吸引人才。有时也举办一些hackathon比赛,24小时
做出一个小产品原型,欢迎各类技术人才挑战。当时我也参加LinkedIn的编程马拉松,
每人发一件T-shirt,写着 Eat, Code, No Sleep。我记得内部统计表示,2/3的人都是
通过内部推荐进来的。
其实国内的思路更厉害,比如最近雅虎北京一裁员,忙坏了各路IT公司,某创业公司也
凑热闹一起去抢人,派出2个高级工程师去面试,结果,负责面试的2个员工都被人挖走
。还有一些无节操HR,伪装成下面这个,我接触过的妹子不多,你们不要骗我。
问题:硅谷公司招聘流程是什么,跟国内有和不同?
我刚好在国内外都工作过,我可以做个对比。
国内:如果是在校生,一般都要有个笔试,通过率也不高,可能就百分之几,然后在校
园里面试3轮左右,分别对技术,基本功,价值观的考察。然后就会大规模发offer,一
些大公司如百度,阿里一年招上千人是很常见的。
硅谷公司:一般是没有笔试。如果HR发现简历的一些关键字和背景符合职位需求,简单
介绍公司,安排1,2轮电面,如果通过,邀请onsite面试,里面会有4-7轮,里面涉及
到不少白板编程,虽然很多人争议,参见附录,但目前为止还是有些无奈的选拔手段。
How to Conduct a Better Coding Interview « Eric Elliott
LinkedIn会花很大代价去组织,包括报销来回机票,吃穿住行,赠送小礼物,给候选人
一种非常受尊重的感觉。比如附带礼物中有一个inMap, 把你在LinkedIn上面的联系人
聚类可视化呈现出来。非常酷。
这里面成功率非常低,真的是千里挑一,虽然代价很大,但很多公司都是强调人才是第
一位的,在宣传企业文化和价值上也是起到积极作用。然后就是收集反馈,一般是2个
面试官back to back同时给出评价,按1-4打分,最后取平均分,Yes = 3.0 ; Very
Yes = 3.5; No = 2.5 招聘委员会通过投票和辩论来确定是否发放Offer。
上图是LinkedIn内部招聘流程图我记得印象深刻的面试:面试者岁数大些,当时我面的
时候也没出众,我准备给他一个一般的分,但他回去马上给我写了一篇长信,解释当时
我问的问题,给出详细参考,我对他的回答非常佩服,至少态度很积极,也许是当场没
有发挥好,我立马改变了印象,给他很高评价,但其中有个初级面试官居然给他1分,
什么概念(if you hire him, I will go), 这样就把他平均分给拉下来,我觉得这样
不公正,就在招聘会议上为他说话,最后他也拿到Offer顺利来到公司,事实证明这是
一个挺优秀的技术人员。
问题:硅谷公司是如何选拔技术人才的?
硅谷公司对基础架构很重视,注重基本功,员工素质和价值观认可。技术人员还是需要
关注生产力的,其实也很难短时间考察,公司也考虑过是否通过一些做小项目,直接上
机模拟真实环境来评价。但真正实施又难度很大,LinkedIn 有个专门负责招聘Staff
Engineer Jacob Kessler写过文章阐述面试理念:Interviews are not Exams 主要是
想保持自然,一起应对一天工作中场景。
我总结成3C (Culture, Communication, Curiosity),下面也展开一些重点。
技术:平常扎实的技术积累,包括系统知识点,不同编程语言,开源工具,团队合作工
具,比如, Restful架构有哪些特点,动态语言的优劣。我在知乎上也给出了硅谷跳槽
工具箱指南
基本功:代码简洁优美没有bug,常见算法的应用,优化技巧,比如如何把一个O(n^2)
的算法优化成线性。好的编程习惯一定要坚持,格式:缩进可以良好排版,括号要对齐
,变量名起的有意义。边界检查,参数检查,异常处理,单元测试。主动写出合理的
Test case,一些常见的null检查。不管你之前做过多少年,只要申请工程师职位都要
经历过编程的基本考核。
交流:实技术人员用到的英文都比较浅显,听和读应该问题不大,但最好在说和写方面
下大功夫,这能突破一些天花板,更多融入团队交流。
系统设计:包括设计大型系统的架构选型,各种不同组件的tradeoff,数据库系统,网
络系统,分布式系统。比如什么时候适合用NoSQL,如何做一个推送系统,缓存系统如
何搭建。
问题:您在面试中会重点考察面试者除了技能之外的哪些点?面试者身上哪些特点往往
会是各公司认为不能接受的?
首先,看背景是否符合职位的需求,比如做分布式计算的工程师,对系统底层,大数据
架构就要有一些涉猎。
第二,聪明,如果我交流的时候发现他们能很快意识到我说的意思甚至补充我心里想的
,这种人非常讨喜。如思路异与常人,很快给出最优解,能挑战一些难度大的问题。
第三,好奇和热情,如果面试者说不清为啥要申请,或者没啥主动提问的,我会觉得对
公司兴趣不大,没有好好做功课,态度上不够积极,而就算最后技术很出色,在评价上
也是要打折扣。另外如果他技术面很狭隘,技术兴趣不广泛,可能也要考虑是否能胜任
创业公司不断变化的环境。
不能接受的
不愿意学习,对他说的或者写的很自大,但却不虚心接受其他人指出的问题和建议。
企业文化不合,对公司的使命和价值观有一些偏差,这个比技术功底更致命,主要是找
志同道合的。
给大家附录中推荐的,Coursera的CPO分享的 “像谈恋爱那样去招人”说的很有启发。
问题:对于初级程序员的面试,最难的部分可能就是所谓的设计题。这部分是什么流程?
设计题可以分成两个部分,系统架构设计和利用面向对象编程原理进行程序设计。前者
所涉及的技术往往包括数据库,并发处理和分布式系统等等,对于经验要求和知识要求
比较高。系统面试的流程如下:
1. 题目描述
往往非常简单,如:设计一个XX系统。 或者:你有没有用过XXX,给你看一下什么界面
和功能,你来设计一个。
2. 阐述题意
面试者需向面试官询问系统的具体要求。如,需要什么功能,需要承受的流量大小,是
否需要考虑可靠性,容错性等等。
3. 面试者提供一个初步的系统设计
4. 面试官这对初步的系统中提出一些Follow-Up的问题:如果要加某个功能怎么办,如
果流量大了怎么办,如何考虑Consistent怎么办,如果机器挂了怎么办。
5. 面试者根据面试官的Follow Up逐个解决问题
总体特点是以交流为主,画图和代码为辅。
问题:从面试官的角度给出一些系统设计上的考量标准是什么?
我先给一个内部培训面试官的方法,大致说了考量环节。根据我的经验,也列出一些关
注点
Adapt to the changing requirements (适应变化的需求)
Produce a system that is clean, elegant, well thought (设计干净,优美,考虑
周到的系统)
Explain why you choose this implementation (解释为何这么实现)
Be familiar with your experience level to make decisions (对自己的能力水平
很熟练)
Answer in high level of scale and complexity (在一些高层结构和复杂性方面有
设计)
其实大家大可不必追求完美,在真正的面试中,没有人能对答如流,往往面试官也会给
出善意的提示,就算你没回答某个子问题,在面试后的评价中也会综合衡量,跟其他的
面试者比较,最终打出一个分数。很多人在2到3分左右,目标是尽量在3分以上。
问题:我不是算法大牛,不是ACM队员,听说Google,Facebook有很多牛人才能进,那
我怎么能拿到好Offer?
首先要是要有信心,算法不是想象那么难。
第一:因为面试常见的算法就那么几种。只有你努力去总结归类相似题目,才能只做很
少的题就可以会很多的题。不要盲目关注数字。做题质量非常重要。标准是:你做过的
题目,让你再做一次,你就能“完美解决”。
第二:即使你知道一题的解法,你未必能写好。因为你可能每次写出来的程序都很随性
,这样会漏洞百出。程序员是一个非常讲究严谨性的职业,如果你在总结题目的时候能
够找到这些题目的模板,你把模板提炼好,碰到类似的题目,可以一边写模板,一边想
想怎么在模板上做一点简单的改动。这样节省时间又保证不会出错。
问题:如果本科不是学计算机的,又想转行该怎么准备?
1. 让自己更Professional。比如你的简历只能放和计算机有关的东西,其他东西再牛
也不能发挥用处(比如学生会主席)如果Resume还是很空,就多去做项目。在Github上
面多去follow项目,然后参与到感兴趣的当中。
2. 在某一方面达到工程师实力。临时转行时间短,找一个容易入手的准备,如果你以
前做的事情跟数据有关,就申请Data Analyst。本来就会一些基本技术的,可以做前端
,JavaScript, HTML, CSS,去真正做一个自己博客。如果对产品感兴趣,就玩Django,
ROR这样的网站框架,了解一个网站是怎么搭建起来的。如果对Mobile感兴趣,就用
IOS或者Android写2个APP。这样做的好处是,简历不空,如果问到,可以驾轻就熟。如
果不相关,坦诚相见,说由于我是转行的我这方面不熟悉,可以尝试猜猜看。也可以直
接告诉面试官,我是转行的,我对计算机很感兴趣,做了这么这么几个项目。于是面试
官不会问你难题。结果你早就准备好了,超出面试官预期,就是一个高分!
问题:面试时候如何表现自己体现沟通能力?
首先你要站在面试官的角度,面试官招你进去当同事,他希望同事怎么样的人就决定了
他的立场。学会换位思考。
让面试官时刻明白你的意图,不要闭着眼睛不停写。对于面试官来说,他根本不知道你
的解题进行到哪一步了。你可以反复和面试官交流自己的想法,得到面试官认可以后再
动手写。可以讲讲你怎样想到这个思路的。记住,你并不是要说服他接受你的想法,而
是要把你的想法解释给他听。面试官提出质疑的时候,第一,不要觉得面试官什么都不
懂,怎么这都不知道(其实他只是看一下你是否真的懂),第二,面试官比你经验丰富
得多,很有可能就是你犯错了,赶紧想想是不是真的有问题。
问题:面试中出了Bug怎么办?
BUG Free很重要,这个需要我们平时不断的练习,按照我们方法的准备,还是可以避免
一些坑。但碰巧你可能不在状态,写出了BUG被面试官指出,是不是就挂了呢?
别担心,出BUG很正常,也许面试官来面你之前正在DEBUG:( 衡量一个程序员能力的标
准,并不是他能想出多牛的算法(那为什么还要面算法题?)而是当遇到问题的时候,
程序员去分析和解决问题的能力。而出BUG的时候,正是展现你是否是一个合格程序员
的时候。
DEBUG流程:
1. 通过TEST CASE定位BUG所在位置
2. 不要立即修改代码,重新梳理逻辑。因为很有可能还有其他BUG。
3. 走完所有逻辑之后,心里有数怎么改了,再动手开始改
4. 用TEST CASE再走一次新的代码。
5. 在整个过程中,不停的告诉面试官你在干嘛(在不影响正常写程序的情况下)
这样,成功排解BUG,不但不会减分,还会因为你优秀的DEBUG能力和与此同时展现出来
的沟通能力而加分。
问题:面试中不同人考察的内容都有哪些?
给一张表大家可以了解:
最后希望大家在找工作方面能有所收获,不用多久,就会升职加薪,当上总经理,出任
CEO,迎娶白富美,走上人生巅峰~想想还有点小激动呢,嘿嘿~~ 同学,梦醒了么,该
去搬砖了。
参考资料
How to Conduct a Better Coding Interview « Eric Elliot
In Defense of Whiteboard Coding
像谈恋爱那样去招顶级程序员吧! |
z***m 发帖数: 1602 | |
k*******n 发帖数: 190 | |
i*******e 发帖数: 114 | 4 “成为了当时LinkedIn 前三的面试官,” 你这个半瓶水,大忽悠, 怎么定义前三
? 是面试人数最多还是吹牛能力最厉害?
你什么级别? 一帮manager ,director 级别的老中还在linkedIn, 给自己打广告也
不用这么忽悠吧。
LinkedIn
【在 d********w 的大作中提到】 : http://zhuanlan.zhihu.com/donglaoshi/19949853 : 笔者之前在LinkedIn做技术工作同时,也花了不少时间在招聘上,成为了当时LinkedIn : 前三的面试官,包括挖掘候选人,参与校园招聘,草拟面试题,电话面试,Onsite面试 : ,填写反馈,和最后决定是否发放Offer,都有完整的流程和经历,我就按问答形式给 : 大家借鉴。这里也推荐一下我的新书:程序员面试白皮书(An Ultimate Guide to : Coding Interviews),有任何建议意见,请不吝赐教:) : 问题:硅谷公司的招人的渠道有哪些,跟国内有何不同? : 一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全 : 面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学 : 术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会;也喜欢举办公开技
|
f******8 发帖数: 93 | 5 你牛你也写啊
楼主水平即使是倒数第三 即使是夹带私货 至少分享了有用的信息
支持楼主
【在 i*******e 的大作中提到】 : “成为了当时LinkedIn 前三的面试官,” 你这个半瓶水,大忽悠, 怎么定义前三 : ? 是面试人数最多还是吹牛能力最厉害? : 你什么级别? 一帮manager ,director 级别的老中还在linkedIn, 给自己打广告也 : 不用这么忽悠吧。 : : LinkedIn
|
c******n 发帖数: 4965 | 6 看里面提到一个 “how a programmer reads a resume"
写OS / compiler 算最牛的。
然后又有什么讨论算法blog ,。。。。
说实在的, 这些在工作5年以内还有兴趣,再以后还琢磨这些,就好像看一个美女,就
是动物性
驱动而已, 如果还逼着自己说你好有内涵好聪明我们是soulmate 等等, 就自己都觉
得假。
you quickly realize that there are way more important and fun things in life
(and in the tech industry too) than just the technology itself. 技术的东西
很快你就发现就是回字的四种写法, 整天叽歪回字的人也很无聊。
绝大部分hot startup, 都是因为好的business model/idea 在the right time 做出来
, 技术绝对不是一个胜出的因素。 大部分startup 的技术都是糙快猛。
LinkedIn
【在 d********w 的大作中提到】 : http://zhuanlan.zhihu.com/donglaoshi/19949853 : 笔者之前在LinkedIn做技术工作同时,也花了不少时间在招聘上,成为了当时LinkedIn : 前三的面试官,包括挖掘候选人,参与校园招聘,草拟面试题,电话面试,Onsite面试 : ,填写反馈,和最后决定是否发放Offer,都有完整的流程和经历,我就按问答形式给 : 大家借鉴。这里也推荐一下我的新书:程序员面试白皮书(An Ultimate Guide to : Coding Interviews),有任何建议意见,请不吝赐教:) : 问题:硅谷公司的招人的渠道有哪些,跟国内有何不同? : 一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全 : 面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学 : 术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会;也喜欢举办公开技
|
D*********Y 发帖数: 3382 | |
b********a 发帖数: 70 | 8 好赞
写了很多关于系统设计的评判标准 版上的筒子快来看 |
z***m 发帖数: 1602 | 9 至少人家有分享的心态,很不错啦。
有些老中就是这种,见不得别人出来说任何东西,非要挑刺说这不行那不行,显得自己
是多厉害似的。
作者就算是忽悠,这种忽悠和自我表现的能力也是值得学习的,光会code有屁用,不会
self promote你怎么干得过烙印呢。
【在 i*******e 的大作中提到】 : “成为了当时LinkedIn 前三的面试官,” 你这个半瓶水,大忽悠, 怎么定义前三 : ? 是面试人数最多还是吹牛能力最厉害? : 你什么级别? 一帮manager ,director 级别的老中还在linkedIn, 给自己打广告也 : 不用这么忽悠吧。 : : LinkedIn
|
l******e 发帖数: 76 | 10 能否写一下,面试官一般都喜欢听什么样的问题呢?
我对申请的职位不是没有兴趣,而是不知道问什么好。技术细节问多了,他们也不会回
答。问问组里有多少中国人,也不好。这个culture fit很麻烦。 |
|
|
P**********0 发帖数: 412 | |
x*******3 发帖数: 395 | |
r****7 发帖数: 2282 | 13 老实说一句,想做李开复那样的鸡汤大师,怎么着也得整个狗家的VP职位吧。。。而且
开复说的还是比较高屋建瓴挺有用的
虽然分享很重要,但是觉得其中误导比较多。
LinkedIn
【在 d********w 的大作中提到】 : http://zhuanlan.zhihu.com/donglaoshi/19949853 : 笔者之前在LinkedIn做技术工作同时,也花了不少时间在招聘上,成为了当时LinkedIn : 前三的面试官,包括挖掘候选人,参与校园招聘,草拟面试题,电话面试,Onsite面试 : ,填写反馈,和最后决定是否发放Offer,都有完整的流程和经历,我就按问答形式给 : 大家借鉴。这里也推荐一下我的新书:程序员面试白皮书(An Ultimate Guide to : Coding Interviews),有任何建议意见,请不吝赐教:) : 问题:硅谷公司的招人的渠道有哪些,跟国内有何不同? : 一般公司都有自己的Refer和面试系统,HR人员寻找候选人,在LinkedIn上就有丰富全 : 面的简历库,通过对毕业学校,就职公司的过滤去挖掘潜在员工。还有一些高水平的学 : 术会议,工业界愿意支持和参与,像SIGMOD,VLDB顶级数据库大会;也喜欢举办公开技
|
j******f 发帖数: 825 | 14 for any job interview, connection is No.1, luck is No.2, your real
capability is the last. |
t********e 发帖数: 1169 | |
w******r 发帖数: 177 | |