请选择行业
请选择职位
请选择省份
请选择城市

记在美国的一次校园招聘(二)

时间: 2018-11-27 09:17   作者: 宝玉   点击次数: 
 

首轮面试

  给我分配的有6个候选人,都是刚上大三的学生,从9点开始,上午三个,下午三个,中午休息一小时顺便写上午的总结,每个面试官都有单独的一间会议室,条件不错,有白板、投影和WIFI

  0号候选人

  0号候选人爽约了,于是我有了一个小时的休息时间,趁这时间解决了个bug,顺便把剩下的候选人简历又都看了一遍。

  1号候选人

  第1号候选人简历很好看,有个用GitHubPages做的,网页做的挺漂亮的,css动效也很酷。美国本土出生的小孩,从初中毕业就开始自己写App,软件硬件项目都有涉猎,大二暑假就有实习经历,还参加了各种俱乐部,github上还有个C++ 项目,代码不算多,但也还算工整。

  在聊的过程中,发现小伙子很健谈,也展示出他兴趣的广泛。我特别问了他github的项目,这是他参加一个机器人项目的副产品。另外我也对他的个人网页表示了很大的肯定,捎带着咨询了他一些CSSjs细节,但发现其实用的是现成的模板,对细节并不是很了解。所以说简历包装的太好,也不见得是好事,会抬高面试官期望,如果没有与之匹配的实力,反而容易形成落差。

  前面20分钟聊下来,感觉这哥们属于兴趣广泛,但不算太专注,善于沟通。可能更适合做PM之类的岗位,感觉不像那种能沉下心来钻研技术的那种。从岗位匹配的情况来看我觉得不算特别合适。

  不管怎么说还是看看代码测试的结果吧。打开leetcode,把题目介绍了一遍后,1号候选人马上就有了思路,于是拿上纸和笔给我分析和讲思路,并写了伪代码实现,给我的感觉是应该是以前刷过这题,以及有过一些针对面试的套路培训。接下来就是代码实现,选择了他熟悉的C++,很快就把代码实现了,从写代码的熟练程度来看,看的出还是有一定代码量的,代码格式有点乱。代码第一次运行无法编译通过,好像是API有些不一样,C++我是真一点不懂,帮不上,所以建议他直接Google,很快就找到了答案,但是有几个测试没通过,几次修正后顺利通过所有测试。预计花了30分钟时间,如果以前没做过的话,这个成绩还是不错的,如果做过的话只能说一般,但是做没做过并不好考证。

  继续问follow up问题,回答的也不错,最后问他有没有问题需要问我的,他问了我司同事间人际关系如何,他之前实习的公司人际关系很复杂。这点我司到还是不错的,给他解答一番后他也比较满意。

  整体面试下来,虽然我感觉他题目他刷过,但是综合来讲代码水平还行,只能说他运气不错,而且这毕竟是第一轮面试,我这边通过了,他后面可不一定这么好运气都能遇到做过的题。所以最终还是给了通过。

  2号候选人

  从简历看,2号候选人是个学霸,从印度考过来的,GPA 3.9+,要知道学校牛的话拿高GPA挺难的。上大学前就开始利用假期实习做项目了,算下来现在大三都有三年项目经历了,在学校也跟着导师有做一些项目。

  2号候选人给我介绍了一些他的项目经历,其中有些web前端的,有些是后端的,暑假实习的一个项目是基于MEAN架构(MongoDB Express Angularjs Node)的,都是他自己边学边搭建的,询问了一些技术细节,基本可以印证他说的还是挺靠谱的。为了考察他知识面,让他讲了一下MongoDBMysql的区别,关键点讲的挺到位,很明显平时比较注意积累这些方面知识,作为大学生来说很不错了。

  聊下来给我感觉非常不错,属于那种做事情比较专注和认真、也勤奋努力的,这种人才挺不多见的,如果没看走眼的话,应该属于那种给一个任务,稍微指导就可以有个不错结果的,几年下来能成长为团队核心。

  接下来是代码测试,同样的技术题,在搞明白意思后也没有多废话,直接开始写代码,实现比较中规中矩,但对语言熟练程度不错,一看就是有写过很多代码行经验的,代码格式不是太注意。第一遍写完,结果提交到LeetCode后,有几个test cases失败了,发现是有些边界条件没有判断清楚,几个来回后,几乎没有太多提示,就把修复了所有问题,通过了所有测试用例。用了大约30分钟。然后我又花了大约5分钟时间问了一些follow up的问题,也答的不错。

  最后留了大约5分钟给他问一些问题,他很感兴趣我们日常工作内容是什么?对于这种人才我肯定是要费心让他有机会加入的,不然就被别的公司抢走了!于是我给他详细讲了一下今年暑假我们组实习生日常的工作,以及我们是怎么帮助她成长的。

  最后结果当然是通过,非常不错的候选人。

  3号候选人

  3号候选人的简历也不错,从国内考过来的,大一暑假就开始实习,大二暑假也都在实习,上学期间当助教,有个漂亮的个人主页,把他所有的项目都列上去了,看着很可观。最让我印象深刻还是在App Store有个可以下载的AppGitHub上有几个活跃的项目。

  在给我介绍他项目经历的时候,我重点问了下他App Store上的项目,他跟我说他上学期间,发现学校的网站很难用,于是他就自己把数据扒了下来,做成了iOSApple WatchApp,一共有4500多的下载,大量的好评。为了核实这项目确实是他自己完成的,我提问了一些技术细节,例如他如何抓数据,和如何实现登录的,他给我解释完了后,顺便说了下所有代码都提交到了github上,于是我马上打开了对应的GitHub Repo看了下,两年来一共280多个commit,代码细节和他描述的完全吻合。

  前期的沟通结果我非常满意,我个人是特别喜欢这种类型开发人员的:善于发现问题,自己动手解决问题,善于自学和乐于分享。前期的沟通是有很多主观色彩在里面的,不管喜欢还是不喜欢,最终招过来还是要看能不能写代码,能不能完成日常工作,所以代码测试都是必不可少的。

  在了解清楚题目意思后,也没有太多废话,直接就开始写代码了,我原以为他会选择Swift或者OC,没想到是用的Python,而且还挺熟练的。代码也算是中规中矩,逻辑清楚,但是在一些边界条件上有些欠缺,短时间内没能自己搞定,于是给了一些提示,在提示下很快解决了。问了一些follow up的问题,也答复的不错。

  从代码面试的结果看,也暴露出3号候选人的一点问题,就是代码经验是偏向日常实际项目的,对于基础性的,尤其是面试方面的训练偏少一些。并不是说他的代码能力有问题,工作中的代码他肯定可以完成的不错,但在面试代码测试会比较吃亏,我甚至有点担心他后续面试会不会遇到不会做的题目而不能通过,那就太可惜了。

  最后提问环节,他问了我觉得在日常工作中最好的部分是什么?我告诉他在我司工作最好的部分就是你写的程序,每天全世界都有好多人在用你的产品,这足够激动人心了。我顺便问了他一下毕业的打算,他说还没想好是工作还是考研,我从一个过来人角度建议他毕业后还是先去工作几年比较好,然后再决定要不要上研,感觉他毕竟不像那种科研型的,更适合到大公司去历练历练。

  最后结果当然也是通过,这种虽然面试经验不足但动手能力强的候选人,其实恰恰是面试中容易被误伤和忽视的,很多leetcode刷的烂熟的在实际工作中多半没这种好使。

  4号候选人

  4号候选人学习也不错,GPA 3.8,在Machine Learning和软件开发都有经验,美国本土孩子,大一暑假就开始创业做项目赚钱,大二暑假在一个医疗中心实习,这学期开始在学校当助教。

  他在Machine Learning和软件开发两个领域都挺感兴趣的,我问他对哪个更有兴趣一点,他也是有点纠结。在介绍项目的时候,我对他给医疗中心做的项目很感兴趣,问了一些项目上的细节,讨论了一下如何项目的需求发生特定变更时,他的设计会如何修改,整体上回答的还是不错的。对于这些有实际项目经验,并且认真完成项目的都都是感觉不错的。

  接下来是代码测试部分,我们花了一点时间在理解题目意思上,可能是我没表达清楚,但在动手前搞清楚问题绝对是一个值得肯定的事情。也是选的python,同样的没有太多废话,开始动手编码,代码熟练程度绝对是可以的,代码风格偏向快猛糙一点,代码逻辑我一时之间没太能理解,不过先看看运行结果再说,运行后有几个测试用例跑不过去,于是他开始加上一些特殊逻辑的处理,但很快又发现有其他边缘条件需要考虑,于是添加了更多代码,并跟我解释,我表示可以先把代码跑起来,后面还可以优化。但是时间开始越来越少,有点着急了,而我对他的逻辑还没能完全理解,尝试帮助他一起分析一下,没想到反而是在添乱。而时间更少了,但我觉得他应该有能力自己搞定,所以就让他不要着急,我可以多给他一点时间,最后花了将近40分钟时间,还是没能解决,我觉得也没必要继续了,于是我们先结束了编码。

  每两个面试之间,我有5分钟休息时间,已经快到下一个面试的时间了,但我觉得还是应该把这个时间给他问他有没有什么可以问的,他问了我们一般日常工作是什么样的?这是个挺好的问题,于是我给他大概描述了一下日常工作的内容,因为他也学过一些敏捷开发项目管理的知识,所以也给他讲了下我们日常如何使用敏捷开发的。这个沟通过程还挺不错,在下一个面试开始前1分钟结束了整个面试。

  从他写代码的过程来看,他代码能力还是不错的,对Python很熟悉,面试过程可能还是有些紧张影响了发挥,如果是平时应该是可以做出来的。我甚至觉得他应该是比1号候选人要更合适一些,愿意给他一个机会。但代码没完成还是硬伤,我有些纠结,于是决定看看最后一个面试的结果再最终决定。

  5号候选人

  5号候选人是个ABC,大学里拿了不少奖,大一大二暑假都在实习,还有几个个人项目,在Github上可以看到记录,但是很多都是Private的没法查看,有WebiOS开发经验。

  在向我描述项目经验的时候,他重点介绍了正在做的个人项目,是一个跨平台的移动App,基于React Native来写的,正好React我也比较熟悉,就问了一下他ReactRedux的关系,如何用Redux管理state,没想到他解释的非常清楚,这让我很意外,因为这个问题其实很多有几年工作经验的前端开发人员都不一定搞的清楚。接下来他又谈到因为他在做App时遇到产品设计和UI设计上的一些问题,所以前不久开始学习产品设计和UI设计相关的知识。因为正好他做的事情我都很熟悉,所以聊的很投缘,时间还超了一点。

  从聊的过程中,我能感觉到这是一个非常聪明的人,动手能力强,同时兴趣也广泛,不仅自己搞定代码,还会去尝试学习设计领域。但这也让我隐隐有些担心,因为如果兴趣转移快,容易分心,不够专注,那么即使很聪明,也可能会做事情很随性,到头来什么都会,却什么都不精。

  在搞明白题目要求后,他马上开始写代码,选的是Javascript,逻辑清晰,代码规范很好,缩进空行对齐都刚刚好,让我这个有点代码规范强迫症的看了一天糟糕的代码规范后瞬间舒服了很多。他先实现了个简单逻辑,简单测试没问题后,接着实现了完整的逻辑,代码非常简洁清晰,来回两三次就通过了全部测试,整个过程估计15分钟到20分钟,非常高效。

  对于代码测试的结果我非常满意,这是我当面面试最好的一个,接近完美了,也打消了我前面的一丝疑虑,觉得这种真正聪明的人,属于完全有超出常人精力和智力去搞定这些事情的。我觉得也没必要继续其他的代码测试,简单的问了一下follow up问题,然后把剩下时间留给他看有没有什么问题的。

  他也问了下我们平时日常的工作是怎样的,跟2号候选人的回答差不多,我给他讲了下我们暑期实习生的日常工作,以及她暑期实习获得的成长。因为时间很充裕,所以他又接着问了一个在我们公司工作和生活平衡性的问题,看得出他还比较注意工作和生活的平衡,这个问题我并没有一味吹嘘我们公司多好,而是从我个人日常工作的情况客观描述了一下,好的方面,例如我们日常可以根据需要Work From Home,对我这种可以节约大量路上的时间,不好的方面例如我们也会有oncall,有时候半夜会被生产环境故障的报警电话叫醒,但是轮班制的,所以总体还是不错的。同时我也给他委婉建议了一下,前期可以多专注一些,精力不要太分散,一些事情可以需求别人的帮助完成。

对于5号候选人,我给了全天所有候选人里最高的面试评价,同时也最终决定4号候选人是不通过,只能说运气差了点。

 

未完待续~

打印本页 | 加入收藏

上一篇:【直播预售】微信小程序入门    

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: