这几天第一次参加了公司的校招面试,地点是南京。有意思的是,被安排做了测试的面试官。这里面有两层意思:第一是面测试的以妹子居多,对于我这种技术向宅男来说,基本超过了十年来说过话的妹子之和;第二是面测试的以非计算机专业的居多,没得聊只能聊研究方向了,于是我在这几天已经迅速掌握了“LTE-A在MIMO场景下预编码下w矩阵求逆的凸优化问题”。
这一次面试收获很多,总结如下。
1. 学生——走出象牙塔
这次最大的感受就是又回到了毕业找工作那段时光,只不过角色换了一下。一晃过去已经4年了,总的来说,当年的我属于不善沟通、埋头做研究、对外界一无所知的那种。面试有过好几次碰壁。等到真正工作了,发现能力与公司的内容相去甚远,还好遇到了陈老师这样技术好且有耐心的的人带,当时拼命的做需求,慢慢的就跟上节奏了。
这次面试基本上都是研究生,做的内容都是高大上的研究,这种算法优化那种优化等等。说实在的,我在学校做过3年算法应用方面的研究,又在公司做了3年码农,感觉确实是做工程的门槛确实要低一点,所以那些研究做的好的学生无疑是比较聪明的。
但是反过来说,做这些研究能够提供的就业岗位确实有限,很多人还是要出来公司,做一些工程上的东西的。这个时候,对自己未来的职业发展有没有规划,可能是决定就业竞争力最重要的因素了。
这个准备无非就是几个方面:主动学习了工程相关的知识,业余做过几个小项目,最好还有过一两段实习经历。
其实现在开源社区已经足够成熟,如果做开发的话,通过接触和编写一些开源项目,是一个非常好的提升途径,效果基本上比在一些小公司做项目都要好。如果做测试的话(好吧我刚好面试的是测试),可能途径会少一点,基本上只有在一定规模的公司,才能做出有效的实践。但是相对来说要求就会低一点(至少我面试的是这样),掌握了了基本理论,已经算是比较不错了。
另外,有的面试官只会问到一些工程技能,会不会写SQL会不会Java之类,我觉得这也有些偏颇了。对于研究生,研究能力也是挺重要的。因为只做工程的人可能缺乏一些钻研的精神,而研究生这方面就会强一点。毕竟一个概念理解一个月也是常有的事,这在搞研究的时候属于才入门。这点时间已经可以读懂一个中等规模项目的源码了,这个在工程界水平已经比较高了。
2. 公司——招聘和成本
最开始的感受是,第一次感觉到了公司招聘的成本。几十个人什么事都不干跑来外地一住就是几天,而且这些人一般还都是专业比能力较强的,对公司日常业务发展影响其实挺大的。有些觉得不错的候选人,就因为面试官安排不过来,最后只能放弃了。
反映到自己身上就是一天从早面试到晚,强度非常大,第一天一共面试了15个。所以这种情况下面试随机性其实也挺大的,每次到了下午某点就觉得理解力显著下降。所以有些人考察的不仔细,也只能说是没办法了。结合自己当年的经历,好像也能够释然一点。
关于面试的环节、面试的内容,其实本来我之前写了很多东西。后来想想,当你确定了对候选人的期望之后,这些东西反而是不重要的了。比如你想知道他的研究水平,就看他能不能讲清自己研究的背景,是不是了解领域的现状、相关的外延技术,在具体描述一下研究的改进点,最后看看发的论文如何。比如想知道对于职业有没有规划,就看有没有看过类似的书、做过类似的项目、有过类似的实习经验。前面也说到,这两个再加一个基本的专业知识(数据结构、数据库、操作系统、网络、写代码),差不多就是考察的全部内容了。
最后说说手写代码吧。受到陈皓老大的影响,我非常反感在面试中出纯算法题。这样的题目存在两极分化,大部分人不会做,做出来的基本上是背答案或者特别牛的。但是这个环节想考察的总归是一般性的能力。我借鉴了陈皓那篇文章中的关于atoi()的题目。实际效果上,这道题还是比较有区分度的。思维是否有逻辑、是否严密,编程习惯是否好,一下子就能看得出来。
顺便说一句,这次我负责初面,面试的结果还可以,通过的比例不小,而且这些人基本都过了复试。用分类模型来说,召回率和准确率都还可以,算是比较好的完成了任务。
3. 一些后话
絮絮叨叨这么多,不是想给谁谁什么指导,只是对自己这几天思路的一个总结。我其实反应比较慢,有些东西也是边做边学,但是希望还是通过这样的方式慢慢变得更厉害,发现更多优秀的学生。做好伯乐,善莫大焉。