今天幸运地面试了位有17年工作经验的开发大佬。在大佬提出面试建议后,我把他pass掉了。
大佬建议根据面试人的层次出面试题,认为我出的面试题是细枝末叶。这些细枝末叶不用记的,在使用时百度就行了,没必要拿来问。
关于面试题怎么出,这个是个见人见智问题,我没有正面回答。我自己被面试的经历里,被问过String怎么拼字符,也遇到过只问系统怎么设计,怎么分析问题的。
这次面试出题,我是临场发挥没有准备的。花了大半时间聊的协议开发和TCP的问题,也和以后工作内容没多大关系。只是看到大佬有这方面大量的工作经历,我也一段从业经历,就来兴致多问了点。
接下来说说pass掉他的真实原因:
1. 大佬是应用专家,直白点:会用不会想。
从事过多个领域开发,精通多种编程语言,有5年以上Java开发经验,却把IOC说成切面,说bean是线程安全的却给不出理由。
问拼参有风险为什么还要提供这种传参方式,什么时候得使用拼参又怎么避免注入问题,他的答案却是只用过转参没用过拼参。
这样的结果,不得不让人怀疑大佬比较“懒”不愿多了解一步,使用百度出来技术点,十之八九完就丢掉了,没有系统性总结归纳思考。
2. 对大佬的代码质量和程序稳定性打问号。
从事网络通信(协议)开发最烦的事情之一就是应对网络的不稳定。即使故障率亿分之一,日调用次上百万千万,一个月也会折腾你好几回。
结果关于协议收发端网络异常处理的问题,大佬说走内网非常稳定不会有问题。六七年都没遇到过?这是什么逆天的运气啊,我只能自叹没大佬的好运。
我不服气啊,追问之下才谈外国协议很规范很好封装,国内协议很乱要封装得比较细,不然容易报错。好吧,这也算是异常处理的一种,从侧面证明大佬在协议开发领域的经验丰富。只是这是开发测试阶段就该解决掉的异常哦。
结束前问的模块设计、代码实现经验里,大佬提到了许多小白不会想到的成本、环境可行性等细节,但是就是没有整体设计和异常处理的心得。我相信大佬没有藏私,的只能对他代码质量,跟写出来的程序的稳定性打上问题。
最后,大佬悟性不够,或者说脑子转得不够快。
可能我问得有点无聊,但我不会问没用的问题。除了问题本身,我也想知道问题之外情况,比如他的理解能力、组织答案的思路、表达能力、甚至对问题点的扩展和心得。
问那么多技术细节,还有一个很直接的目的:大佬最近有没写代码,写哪方面的代码?我是招大佬来写代码,这点不仅写在招聘需求里,也直白在面试题里了。他却告诉我,我的问题对不上他的层次。这是在告诉我,他的这个层次不适合写代码吗?
所以,我把他pass掉了。