当我是个面试官

最近代码量有所减少
一来是业余项目进入维护和交接阶段;
二来新的个人项目处在构思起步中;
三来公司项目处在平缓过度期;
四来近两月都参与公司招聘工作,负责技术基础功底面试,也就是所谓的技术一面。公司目前基本面试分为三面:HR面,技术一面,技术二面(基本就是CTO面了);
五来九月十月份私人事务繁忙,老家深圳往返多次,这两月我做了一件可能有点意义的事情,关于这件事情改天再写篇文章记录一下。

这里说说我作为面试官的经历

在我呆过的公司中几乎都参与了程序员的招聘工作,每一次都有不同的感受。

0x00.照本宣科

我第一次参与招聘工作应该是在实习完后的第一家公司,那会儿团队开始组建 寻找开发伙伴。很不幸当时团队里开发组只有我一个初出茅庐的大学生和一个转型中的程序员,现在回想起来 当时的团队负责人多么不靠谱啊,只有两个个半路出家的程序员就敢开项目了。

那会儿我的开始是参与项目技术组主程的面试,也就是说参与我未来老大的面试工作。这是一个当时在我看来比较离谱的事情 — 把人招进来做我上司。
后面居然真的招到了一个靠谱的项目主程序 这个人后面对我的技术成长产生了一定的影响,但是我估计他知道真相后心里一直不是滋味.

这次招聘技术组主程的面试完全是被碾压型,问的很多问题都来自论坛现找或者书本临时抄,由于当时心里完全没有底,所以没有一个问题敢深入的探讨,基本都是一问带过。三年后回头看,我遇到过一次这种面试官 – 照本宣科,那个面试官做得比我还彻底 — 他直接拿出一本技术问题集,照着读让我一个一个回答。

技术组主程顺利招到之后,那时候的团队老大觉得我面试工作好像做得不错,后面的游戏策划面试也让我参与进来,是的,当时团队里一个策划都没有,这个事情我至今觉得不可思议,我一个程序员居然做起了游戏策划的面试官。那会儿刚刚毕业不久,丝毫不敢对团队老大的不合理安排有任何的违抗(真是如此,当你觉得自己水平处在一个最差或者比较差的档次的时候,当你为每天的温饱而担忧的时候,保住一份工作是多么的重要)

游戏策划的面试官并不好做,因为很难从谈吐聊天中看出一个策划的水平。我的做法主要是从对游戏的玩法;对项目游戏类型(当时是卡牌)的感兴趣程度;作为游戏策划的工作经验,三方面进行考核。现在回头看,如果还给我一次面试产品策划的机会,我可能需要把沟通能力也纳入考核中.

大概也是从这个时候开始我就已经对国内游戏策划这个职业的专业性持有怀疑态度了,我今天依旧保持我当时的想法 – 策划是游戏开发中门槛最低的职业之一(黑盒游戏测试也是之一),希望未来能有人打我脸.

0x01.刁难型

这次的面试官经历主要发生在一个刚刚重组的团队里.

说实话国内的游戏开发团队或者创业公司的开发团队里,很多都是一波流,做完一个项目散伙的几率很大很大.可能在开发面对企业应用服务的团队里并不会这样,很不幸,我就经历了两次团队重组.每次都会走一批人,这批人基本属于组结构上已经不合适的或者不想继续呆的,也会新加入一批人。
很自然这些重组过程中我也参与了程序员的面试工作

说到创业,现在国内大肆鼓励各种创业,和当年鼓励种植某个农作物是一样一样的。大批的应届生刚毕业就响应号召”创业”去了,这让我感觉到一丝丝恐惧!在我以后的求职中(如果需要的话),遇到以类似噱头”改变世界””颠覆行业””超越BAT”的公司应该要出门左转比较稳妥了。

说回面试

有了之前第一次面试程序员的经历,加上经历了几个项目,我这次变成了一个刁难型面试官,我有一个习惯,我会把我在工作中踩过的几乎所有坑都会详细记录下来.如果是比较严重的坑,还会专门写个笔记记录一下.慢慢的我意识到了在我们普遍的这种开发模式下坑是不可避免的.为什么说在我们这种模式下呢,我认为大多数的坑都是由于在开发过程中人为参与的步骤太多而踩中的,说白一点就是自动化应用得太少了,很多明明可以自动化的东西 — 例如打包 例如发版本 例如各种配置表格操作,把他们全部交给自动化工具 最少可以保证出错的源头已被限定在有限的范围内。但事实上,在我和几乎每一个求职应聘的程序员沟通关于他们以前项目的打包方案后,统计了一下,很多团队还是使用程序员手动的方式.

我踩过一个坑,在某个移动游戏的某次版本升级中,每次都是手动打包,手动选择签名,手动输入密码,手动复制粘贴,发包过程中我由于选错了安卓签名文件 导致玩家运行的包签名和升级包的签名冲突,导致当时游戏的所有玩家都无法升级成功.

如果打包这件事情交给自动化工具,这次的事故根本就是可以避免的.

话题跑偏了,从我的的经验上判断,我认为一个有过项目经验的程序员 都应该踩中过无数的坑. so 我在这后面的面试中主要集中和大家讨论关于大家在工作过程中遇到的坑. 特别是让大家毕生难忘的或者大家花费了整个周末去解决的坑.

我用这种方式面试了一部分的程序员,从结果上看的确招到了技术可靠,值得信赖的小伙伴.我现在回头再看,我的方式过于偏激了,因为上面的这句:

从我的的经验上判断,我认为一个有过项目经验的程序员 都应该踩中过无数的坑

它太过于主观

0x02.万金油型

这次的面试官经历,主要发生在我写这篇碎碎念的时候所在的团队里,团队里主要招聘经验比较丰富的程序员,这次主要负责的是技术基础功底方向的考核.这个其实可以使用笔试来解决,但笔试我自己都很讨厌,更不要说其他人了.既然是技术基础功底,那问的问题肯定就是要变成万金油类型的了.

不管大家是否认同,工作了几年的客户端程序员或者说经历过几个公司的客户端程序员,身上肯定不会只具备一项技能,你有可能是全栈,也有可能会好几种语言.造成这种现象的原因很多,其中之一就是技术浪潮一波一波的迭代,就拿游戏开发来说.

2012那几年 页游很火,游戏行业的很多前端程序员都争着去学AS

2014那几年 手游很多,游戏行业的很多前端程序员都争着去学Cocos Unity

到现在,H5已经有一票人暗地里开始学了。还有一小票人可能在研究UE4(VR AR方向)

从看过几十份的求职者简历看来,大家这几年的技术走向基本符合我上面的分析,其实包括我,技术走向也被上面的浪潮所影响。我现在的观点发生了改变,与其跟着浪潮飘动 不如找一个技术点然后死磕到底。

说回面试

从大家的技术走向来看,可以判断大多数人都是万金油型的程序员(说全栈怕大家都还没达到),面对万金油型的程序员,基础考核就应该用万金油的方式。求职的程序员应该都接触过多种框架多种引擎多种架构多种语言。我这次我的基本应对措施是:

  1. 技术上 – 会根据每一个程序员简历上的技能进行提问,一般通过大家的回答就知道简历中的技能是否有水分。水分太多的直接淘汰
  2. 技术上 – 当前我们岗位所需要的技能摸底,当然技术二面主要也是集中在考察这一点
  3. 非技术上 – 是否具备基本沟通能力,文字表达能力(基本的沟通是必须的),我估计大家说的面试看缘分应该也是属于沟通能力考核的隐形说法吧.

是的,我把沟通能力表达能力也当作我的考核项目,据我这几年的观察,在这几年混迹活跃度比较高的行业论坛中发现很大一部分的人已经失去了基本的文字表达能力了,能正常的描述清楚发生在自己身上的一件事情都会有困难,特别是描述非技术问题的时候.例如我看到过一个程序员发的帖子,事件是”我买水果的时候被打了”,洋洋洒洒几百字,看完帖子之后读者根本不知道发生什么.

0x03.曾经几个作为求职者的疑惑

现在回想起来很多在应聘过程中遇到的问题都有了答案

  • 为什么大家都习惯面试完后说 回去等通知

在我看来,这是避免相互之间尴尬的方式,有四种可能性:

A.你技术上不合适,如果当面告诉你,你可能会产生不愉快,因为你已经花费了半天来面试了 理论上你已经付出了劳动而没得到回报。

B.你技术上合适 但是HR觉得你薪资不符,回头看看能不能压工资,让你面试几次其他公司碰碰壁,再打电话找你谈谈钱。

C.再看看其他面试的应聘者挑个最好的。

D.你其实已经获得了offer,只是不能当面告诉你(很多HR的默认做法)

  • 为什么明明聊得很high,但是我却没得到offer

我和大部分来应聘的朋友都能聊得很high,因为只要你切入对方的思维,只要是一个沟通正常的人都很容易打开话匣子,自然就能聊得很high。但是聊得很好 并不等于面试官认同你。

  • 明明感觉没戏,确拿到了offer

技术面试问了太多岗位无关的技术问题,或者问了一些超出岗位的技术问题,如果对方回答不出来,这样会让对方产生一种挫败感.挫败感一上来 HR谈薪资的时候就可以压一压了.我深恶痛绝这种行为 – 所有压程序员工资的行为都是耍流氓,当然是程序员提出合理的薪酬期望的前提下,是的 因为我遇到很多人提出的薪酬大大超出的他实际的能力.

0x04.结语

参与面试是一件非常有意思的事情,经常会遇到身上有诸多闪光点的人.很多的事情并不是自己想象的那样.从业几年后,我发现自己慢慢的会在有些事情上想当然,经常用自己的标准套在他人身上.往后应该纠正过来,不了解的事情在发表意见之前要么去了解清楚,要么保持缄默.

-EOF-

3 评论

  1. 哈哈,终于有管理权了。我现在是超级小弟~~上面是组长,组长上面是主程序,上面是部长,上面是技术经理,再上面是总监,再上面是CTO。哈哈哈哈,安心死磕技术去了。
    嘛,现在想一想,当时和你在一起的时候,还是出现了太多问题:第一,遇到足够困难的技术点,有逃避嫌疑,急于出东西,自我技术沉淀不足。第二,管理上有点严了细了,你机灵还能忍,其他人就不好忍了,如果做不到足够的宽容,就该更多去信任。第三,和第一第二相辅相成,没有足够的去抗压,公司小了,上面下来的事我当圣旨似的去处理,应该再厚着脸皮耐着性子去抗住,把问题停在我这层,不该让你们有太多感觉的,这是我的错。
    嘛,蛮多问题的,好在一路走一路学,虽然笨了点慢了点,但也凑合了。
    现在的方向略有一点点乱,还有点小小徘徊。大概1-2个月后我也会有一点自己的时间了吧,到时候到底重心全部丢到GO+DeepLearning去,还是继续加强图形渲染,附带弄弄Unity,WebGL什么鬼玩意儿还是需要好好思考的。
    md,貌似现在适应力更强,反而专注越低了??。。WTF

    1. 好”森严”的关系..我现在拥有的最大权限就是 —– 掌控整个公司的网络,技术上可以说想掐谁的网就掐谁的..虽然实际上我并不会做这种事 Orz..

      到现在为止,严格来讲我遇到过三个技术leader,一个小峰,一个你,一个我现在的头头(在小峰之前的不算严格意义上的技术leader),你们三个基本上属于完全不同的三类,在你们手下都有不同的感受.和你在一块那段,我们技术内部的还是小问题,真正的大问题是上头对你都没有信任,或者说在技术上并不完全由你把控.这种情况下才衍生很多的其他东西.

      GO+DeepLearning 深度学习,主要应用在什么场景?翻译 语音识别 智能机器人?

      1. 哈哈哈,网管你好~虽然我最讨厌网管了通常= =哈哈哈
        话说,小峰是个值得尊敬的老大,可惜当时公司走势实在让人吐血,不然和他继续混下去,还是能学到不少优秀品质的。
        说到Go+DeepLearning,我当前选择的更多方向还是图形识别部分,不过NLP也有一些兴趣啦。
        这东西没办法,游戏开发属于软件开发的一个小分类。如果我持续在国外,并移民出来的话,是要重头开始的,游戏开发的范围比较窄,我不得不考虑更多的工作机会选择。

发表评论

电子邮件地址不会被公开。 必填项已用*标注