最近,程序员圈子里流行着一种说法:面试造航母,工作拧螺丝

它描述了程序员工作中的一种怪象,面试的问题各种高大上:

NDK,音视频开发了解过吗?

讲讲热修复,Android的前沿技术了解过吗?

讲讲你在项目中的优化工作%&*%#@¥……

诸如此类

然而,过五关斩六将,一路拼杀下来,终于拿到了心仪的offer,入职以后,每天干的工作却是一些简单的增删改查,又或者是技术性不强的业务代码编写,甚至是一些拷贝粘贴的日常性工作,与面试时的情况大相径庭,不禁让人大跌眼镜。这种说法之所以能够流传开来,肯定是引起了广大码农们的共鸣,想必很多人都遇到了这种情况。

那么,如此强烈的反差和对比,到底是什么原因造成的呢?本文就试图来一次大猜想,对个中缘由进行一些分析和总结。

工作必需

在展开表达之前,我先说一个关于办卡的小故事,前一段时间,我去欢乐谷游玩,当时他们正在大力推销年卡,一年之内可以不限次数地进园游览,价格也相对公道,所以很多人都选择了购买年卡,我也不例外,办卡的流程比较简单,一共就三步:交费,拍照,制卡。轮到我了,交费和拍照都非常顺利,可是到了制卡这一步却出了问题,那个制卡机不能吐卡了,工作人员当时也比较着急,按了按某些按钮,并用手拍了拍机器,都没有起作用,制卡机依然不能正常工作,这时候,工作人员只好抱歉地让我等一等,她叫来了另外一个看起来更为熟练的同事,很快就把机器修改好了,我也顺利地拿到了我的年卡。

这个故事像极了程序员的日常工作,没错,如果一切如你所愿,用户输入的数据非常规整,服务器永远不会donw机,网络也不会抖动,各种系统参数的设置也是恰如其分,那么,你只需要掌握基本的编程知识和技能就足以应对了,然而,理想很丰满,现实很骨感,各种异常情况、各种突发状况层出不穷,让人应接不暇,况且,业务还在飞速发展,技术还在不断更新迭代,绝对没有一劳永逸的工作,特别是对于程序员这种职业来说更是如此,这个时候,如果你仅仅只会拧螺丝,对于编程的系统知识掌握不够深入,对于技术栈的学习不够全面,那么,你就会像那个工作人员一样,面对问题时束手无策,只能求助于他人了,偶尔一两次倒也不伤大雅,但长此以往,就只能被IT圈所抛弃了。

这确实是一个客观现实的原因,虽然我们可以调侃这种现象的荒谬,但如果静下心来思考,会明白这种现象存在即合理,只有全副武装了自己,让自己具备“造航母”的一身本事和格局,那么,我们在日常拧螺丝的工作中,才能更加举重若轻,游刃有余,况且,在工作的舞台上,只要你足够优秀,足够突出,慧眼识珠的领导们自然也会让你开始“造航母”的,如果入职以后,你一直还在拧螺丝,可能就得反思一下了。

这是第一个原因,也是最务实的、最有可能性的原因,我们接着来看下一个。

面试官装逼、炫技

第二个原因就是面试官装逼、炫技,这种情况也会经常发生。作为一个面试官,他其实是有心理优势的,自然而然的就认为自己的水平一定高过候选人(当然这是错的),更有甚者,一些有自卑心理的面试官,会问出一些所谓“高深”的问题,来显示自己的能力和水平,这种情况下,如果通篇问下来都是诸如以下的问题,是显示不出面试官的水平的:

udp是不可靠的传输,如果你来设计一个基于udp差不多可靠的算法,怎么设计?

讲解下etcd干什么用的,怎么保证高可用和一致性?

讲下raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?有没有了解过paxos和zookeeper的zab算法,他们之前有啥区别?

了不了解tcp/udp,说下两者的定义,tcp为什么要三次握手和四次挥手?tcp怎么保证有序传输的,讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用(参考quic)?

redis有没有用过,常用的数据结构以及在业务中使用的场景,redis的hash怎么实现的,rehash过程讲一下和JavaHashMap的rehash有什么区别?redis cluster有没有了解过,怎么做到高可用的?redis的持久化机制,为啥不能用redis做专门的持久化数据库存储?

如果全是这样的问题,是不能体现面试官逼格的,他必定是要你手写算法,除了公司项目之外,业务有没有研究过知名项目或做出过贡献?等等,这样才能提高他的身段,换句话说,有些面试官甚至把面试当成了自己装逼、炫技的一个舞台。

这是第二个原因,这种情况的可能性也不小。

拒绝候选人

第三个原因就是通过一些高深的问题来拒绝候选人,面试的时候问你怎么“造航母”,直到你回答不上来,然后让你感觉达不到职位的要求,通过这样的方式来将你拒之门外。什么时候会发生这样的情况呢?可能性也比较多:比如面试官是一个古板的人,但你的言谈举止稍显轻佻;比如面试官非常讨厌纹身,但你恰恰在显眼处纹了一个;比如面试官是个洁癖,但你当天恰好没有收拾得那么干净;甚至,你长得像面试官前女友的现男友。。。

这种情况其实是存在的,很多时候,面试就跟相亲一样,如果没有眼缘,或者气质相去甚远,那么面试成功的可能就会变得很小,既然气场不合,那面试官就会想方设法打发你走,问一些高大上的问题就成了一种常用的手段,这样至少不会把气氛搞得很尴尬,最后也让候选人知难而退,而真正的原因也有面试官心知肚明了。

压价

第四个原因就是压价,候选人可能各个方面都比较合适,但要价相对偏高,那这种时候怎么办呢?其中一种手段就是问一些深奥的问题,压压候选人的锐气,让候选人觉得自己原来还那么多东西没有掌握,然后面试官再适时地提示薪酬方面的问题,受到打击的候选人可能就会在工资问题上做出让步。

看看,这种迂回战术在面试过程中也是存在的,项庄舞剑,意在沛公,表面上看起来是问你技术问题,但其实是嫌你要的工资太高了,特别是,如果你的期望薪酬还高过面试官的话,甭提他心理有多不爽了,当然得搞一些难题来为难为难你。学海无涯,知识的东西是没有尽头的,面试官既然能做为面试官,必然有他的过人之处,至少也得到了大家的认可,所以他要想问倒你,其实是不难的。

这是第四个原因,除了上面提到的这些,还有一些其它的因素导致了这种现象,我们来看最后一个原因。

其他方面

还有一些其他原因导致“面试造航母,工作拧螺丝”:

  • 面试官的心情不好。比如面试官上班坐地铁的时候,被人踩了一脚,心情异常不美丽,或者面试前与产品经理吵了一架,或者刚好被领导批评了,这时他正想找个人发泄一下情绪,通过问一些“造航母”的问题来虐一下候选人,来找一些心理上的平衡。
  • 套方案。在研发过程中遇到了一些非常棘手的问题,暂时又没有找到一些好的解决方案,把这种问题当做面试题,试图从候选人那里获得问题的解决办法,这种情况也并非罕见,因为问题较难,所以当然会归到“造航母”的类别。

上面罗列了“面试造航母,工作拧螺丝”这种怪象的种种原因,你觉得还有其他原因吗?欢迎来补充。

什么?你也想拥有造航母的能力?

先学着吧

更多相关文章

  1. Android(安卓)Add外部library工程,总是链接失败的原因
  2. Android中不支持动态申请权限的原因
  3. Android比iOS卡得原因和本质区别总结
  4. webView程序 第一次加载页面是出现白屏或是黑屏或是其他
  5. android 内存泄露原因以及排查和解决方案
  6. 触摸屏(TP)乱跳原因总结
  7. Android(安卓)中 Activity的内存泄漏,原因以及处理方法
  8. Android加载Bitmap出现OutofMemoryError的原因(官方译文)
  9. Android中app卡顿原因分析(ios顺滑)

随机推荐

  1. Android推送通知指南
  2. Android使用Parcelable传递对象方法及注
  3. Android系统信息获取 之四:系统语言信息获
  4. 深入浅析Android手机卫士保存密码时进行m
  5. 【Android】android模拟器命令详解
  6. Android(安卓)-- ContentProvider的使用
  7. 查看Sqlite 数据库
  8. Android(安卓)学习手札(三) 视图(View)
  9. Android集成腾讯X5WebView
  10. android中的ellipsize