字节跳动技术面试官现身说法:我最想pick什么样的候选人

字节跳动的研发面试官们,到底是怎么考核候选人的?
在这金三银四的季节,无论你是刚刚收到面试通知,还是已经结束了面试,或者刚投出简历,这个问题都是围绕在心头的最大好奇。
面试前要准备什么?面试官会问什么问题?怎样的面试表现才能通过?
为了解决你的疑惑,我们邀请了3位分别担当一面、二面、三面面试官字节跳动研发同学,请他们「透露」了一点技术面试的评判标准。
我面过的offer收割机,
做完题还会优化一遍代码
面试官:三井
方向领域:飞书后端研发
面试轮次:一面
投飞书后端岗位的候选人,不管是实习生还是社招,都有可能会碰上我。
大部分时候我是一面的面试官,偶尔会去做二面面试官。
当然,一面和二面的面试内容差不太多,我们面试讲究「三位互补」,也就是说三轮面试的考察点是互补的,一面问过了某些方面的问题,二面面试官就会从其他方面考察候选人的技术水平。
当面试官压力还挺大的,有时候招人多,一天会有几十份简历需要看,但并不是所有人都适合这个岗位,比如专精的领域和岗位要求不匹配,或者过往的面试评价出现了太多硬伤。
简历通过后,面试的时候我会看候选人的经历,根据他了解的领域和做过的项目来提问。
我会把重点放在候选人对项目的思考上,具体从项目里获得了哪些经验、学到了什么,比如做了一个项目,中间出了什么问题、怎么改进、有新的需求怎么实现等等。因为如果他真的特别深入的做了一个项目,肯定会遇到很多问题,里面很多具体的点都是可以深挖的。
比如之前有一个候选人,说自己做过一个秒杀系统,我就问他:系统的QPS能达到多少?具体实现了哪些功能?流程是怎样的?发现这些细节他都答不上来。
其实,一个有探索精神的人会把里面这些问题都研究明白,这也是工作经验的积累。随着一个人工作年限的增长,他应当不仅做出了成绩,同时也有一些思考和沉淀,这是更深度的能力提升。
如果候选人的项目经历和这个岗位不太相关,或者所熟悉的领域我不是很懂,那我就会问一些计算机基础知识、基础组件的原理和应用、通用的技术方案或者算法题之类的。
其实说到基础知识和算法题,网上都有很多总结好的内容,但是希望不要死记硬背,因为我总会找到一个追问的角度,看看候选人是真的理解了这些知识,还是单纯的背答案。
另外大部分时候我都会给候选人出题。做题主要是看思路啦,很多时候他一开始可能想不到最优的解法,但也有一个可行的解法也是可以的,我能看出来候选人在尽力解决问题,我会看情况给一些提示,要是他实在没思路,我可能会换个题;如果时间来不及换题,但是基础知识和项目讲得不错的话我也会给通过,然后请二面面试官再评估一下。
不过提到做题,有位海外候选人,让我印象很深刻,他不仅思路清晰,代码格式也很好。
当时,我给他出了一道算法题,他想了一会儿,有了思路之后,很快就把框架写出来了。
令我很意外的是,他并没有直接把答案写完就给我,而是自己又优化了一遍,最终的呈现非常完美。
其他的基础知识问题、项目问题,他也回答得也很清晰。你可以看出来他虽然水平很高,但不是那种过于自信、骄傲自大的人,沟通态度不卑不亢。
这种一般就是offer收割机了,而且你会发现他整个人的状态和求职的心态都很健康阳光,不像很多人一上来就疯狂吐槽自己目前做的工作,这种心态下可能他到别的地方工作也会一直持有一种负面心态。
总之,我面试的时候一是希望候选人技术过硬,二是希望他能坦诚沟通、顺畅协作,这是我最希望遇见的人才。
探索技术是必须,
沟通协作也加分
面试官:小陆
方向领域:商业化前端
面试轮次:二面
自从成为面试官以来,我已经面试过170多位候选人了。
之前一面的面试官已经对候选人的技术基础进行了考察,所以我见到的候选人基础一般不会太差,我主要考察的是候选人深入思考的能力和对业务的理解
刚毕业一两年的同学,其实和校招差不多,我对他业务上的要求相对会低一点,但基础一定要很稳——也就是说,除了一面面试官问的基础知识之外,对技术的探索和钻研精神是必须的。
比如问项目,我会针对候选人项目里涉及到的一两个方向深入挖掘,有人真的会钻研这些,但有的候选人项目能运行就行,稍微深挖就只能回答“不知道,没有了解”,这其实就是考验一名研发的探索精神。
对于超越了新人阶段的候选人,比如工作了四、五年的人,就应当有足够的经验来解决一些具体的问题。
比如在某一个特定场景下,网页加载非常慢,要怎么设计一个技术方案来解决这个问题?分几步来做?每一步做什么?我需要看到候选人的技术规划能力。
所以整体上字节跳动的招聘要求还是很高的,虽然有一些不是非常合适的候选人,如果你睁一只眼闭一只眼放进来,他可以完成工作,但公司还是希望招非常优秀或者潜力很高的人,所以整体团队实力都很不错。
除了技术底子和技术规划的思考,其实我还会看重更多软素质:
第一个是候选人的沟通协作能力
拿最近的校招来说,我上学的时候总想做全栈工程师,把所有领域都搞懂,一个人完成很厉害的系统;但工作之后才发现,大部分人脱离团队都成不了事,看起来很虚的「软素质」变得非常重要。
毕竟,除了一部分做专精方向研究的人之外,大部分人的工作都是围绕公司业务的发展和迭代展开,要实现一个业务目标,怎么调动资源,让不同团队配合你,需要的就是沟通、协调、项目推进能力。
一个人负责的事情越重要,就需要推动越多的人和团队来配合,但每个人都会有自己的考虑:张三的另一项工作优先级更高、李四不认可这个方向、王五自己构思了另一套方案……怎么求同存异,照顾到大家的顾虑,提出一个让大家都认可的方案,是非常重要的能力。
所以面试时我会重点考察表达沟通和团队协作能力,这方面比较好的人能清晰的讲出重点,一般也都参与甚至负责过多人协作的项目;但有的候选人,要么说话像挤牙膏一样,问一句答一句,要么说半天都没有重点,想要推动团队合作就更难了。
第二个是候选人的潜力
潜力有时候很难判断,但总可以旁敲侧击的感受候选人对技术和业务的关注程度。比如我们商业化团队,一些候选人本身刷抖音的时候就会对这些广告感兴趣,他不觉得广告只是单纯的打扰人,反而会研究抖音广告的形态,研究这些广告如何给产品和用户带来价值。
这些对产品和业务的思考影响了一个人的成长潜力,决定了他未来能不能更深入业务、能不能对市场有一定认知。
最后也要考虑候选人的性格,有些人确实挺优秀,但是面试全程都表现出了一种莫名的优越感,过于桀骜不驯,可能也很难和团队合作。
只要动手能力强,
非计算机专业也来写代码
面试官:杜乾
方向领域:大力智能前端
面试轮次:Leader级以下候选人三面面试官
我面试前端的同学,最看重的是他的动手实践能力
前端跨专业的同学不少,比如之前我面过一个实习生同学,虽然不是计算机科班出身,但他的投入度会比一部分计算机科班出身的同学更高,动手实践的能力更强。
他前面一二面评价已经很高了,说明基础技术能力很不错,我面试他的时候就不问具体技术问题了,直接让他展示自己在GitHub开源的一些小工具,其中有一个是用来生成代码的前端脚手架,还有一个基于Vue的模板动态生成方案,也有一些小游戏之类的。
这些项目证明,他整体动手实践能力非常强,因为要做这些脚手架,必须对一些打包工具、前端代码压缩之类有所了解,懂得底层的代码原理。
对这一类同学来说,前端就是他的兴趣,因此他会去研究前端的各个方面,虽然是学生,可能研究得不会很精深,但知识面非常广,这也证明他未来发展的上限会非常高,对非计算机专业出身的同学,我会更看重未来发展的上限
但对社招三五年的同学来看,光有兴趣和动手能力不够,思考和沉淀还是很重要的。比如是否在公司主动推动过一些性能优化的事情,能讲得出优化过程中他关心哪些指标、采取了哪些措施、最后效果如何。
举个例子,如果我问前端的性能优化,候选人泛泛的回答说需要代码压缩、图片优化,那可能只是参与了一点;但如果说得很详细,讲出代码压缩和图片优化到底是怎么做的,那说明他在这方面做了丰富的思考和沉淀。
这也能证明一个人的发展潜力,如果一个工作了8、9年的人,技术能力还可以但技术深度不够,工作没有主动性,没有主动推动过一些项目的落地,甚至还需要我去push,可能就很难委以重任了。
因为我最需要的人都有点极端:
要么技术能力过硬,有很多动手实践、很多开源贡献,哪怕综合素质差一点我也可以接受;
要么专业能力稍微差一点点,但综合素质很强——很会沟通,在产品和业务上有很好的想法,甚至有带小团队的经验,可以朝管理方向发展。
因为虽然都是前端开发,但大家的优势和分工不同,有些人是技术型选手,只要钻研技术、解决难题就可以了;而有些人是明显的业务性选手,不能光靠产品经理来给你喂需求,有时候也要反哺产品、做业务尝试、给产品提一些好点子,对很多研发来说,这一部分是有所缺失的。
但在技术能力一样好的情况下,我会选择对业务更敏感的同学。跟候选人聊业务时,如果他熟悉行业目前主要产品的大致的运营数据、遇到的问题、下一步怎么做,那可能更适合我们团队,未来可以成为业务owner。
最后说了这么多,我们简略的总结一下「面试必过经」:
项目经历要牢记,展现深度和潜力。
知识理解灵活用,不能全指望背题。
沟通坦诚说重点,推动合作与对齐。
求职心态放平稳,不卑不亢最客气。
懂技术还懂业务,idea反哺PM。
若无专业和学历,动手实践最高级。
但总结面试经验的同时,别忘了更重要的是不断提升技术能力和综合素质,这样才能在一场又一场面试中拿到理想的offer。
加油哦~
(0)

相关推荐