美文网首页Android开发Android开发经验谈Android高级开发架构
Android程序员面试造航母,工作拧螺丝?各种缘由大揭秘!

Android程序员面试造航母,工作拧螺丝?各种缘由大揭秘!

作者: 像程序那样思考 | 来源:发表于2019-10-13 19:37 被阅读0次

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

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

    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做专门的持久化数据库存储?

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

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

    拒绝候选人

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

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

    压价

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

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

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

    其他方面

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

    • 面试官的心情不好。比如面试官上班坐地铁的时候,被人踩了一脚,心情异常不美丽,或者面试前与产品经理吵了一架,或者刚好被领导批评了,这时他正想找个人发泄一下情绪,通过问一些“造航母”的问题来虐一下候选人,来找一些心理上的平衡。

    • 套方案。在研发过程中遇到了一些非常棘手的问题,暂时又没有找到一些好的解决方案,把这种问题当做面试题,试图从候选人那里获得问题的解决办法,这种情况也并非罕见,因为问题较难,所以当然会归到“造航母”的类别。

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

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

    还是先学着吧

    刚好,我有一份Android学习PDF+架构视频+面试文档+源码笔记分享,如果你有需要的话,可以加入Android开发交流群(820198451)免费领取

    相关文章

      网友评论

        本文标题:Android程序员面试造航母,工作拧螺丝?各种缘由大揭秘!

        本文链接:https://www.haomeiwen.com/subject/olskmctx.html