因为工作上的原因,做过几次面试官,面试的同学有应届生,也有工作3-5年的老技术人。最近也频繁作为面试官帮助筛选候选人,中间有很多值得深思的东西,我记录了下来分享给大家。
以下观点仅为个人观点,不代表任何公司的立场。
01 面试不是简单的你问我答
一般来讲,作为面试官和候选人进行沟通的***个问题是一般是自我介绍,整个自我介绍的情况应该控制在2分钟左右,阐述自己的教育背景,项目经历,用到的主要技术栈,如果有很厉害的开源项目或者优秀的博客也可以说。整个过程应该放轻松和面试官是一个平等的交流过程,面试官应该做到倾听且给出回应。
技术问题也一般会从自我介绍或者***个项目开始,加入面试官的问题是JVM的调优,那么我们作为面试者可以从自己经历过的场景入手,尽量不要像背诵课本一样旁若无人的开始描述,中间可以和面试官进行互动,比如说‘我是这么做的,你们遇到过么?BLALALALA’然后还可以说一下假如遇到一些其他的状况该如何处理等等。
02 遇到不会的问题除了说不会还可以阐述思路
首先大家要有一个认知,面试官不是什么都会。术业有专攻,闻道有先后。
很多面试题是根据你的项目中的描述进行展开的,加入面试官问到一个自己没有遇到多的场景,或者不会的问题,他更希望你能说一下自己的思路或者遇到这种问题你会如何去处理。
比如说,我曾经和一位同学交流过‘从Redis中一亿个key里去查询某1万个具有相同前缀的key遇到什么问题’,这位同学从线程模型入手判断到了我们常用的查询所有key命令存在的问题,然后说出了自己的看法。我觉得非常好,要知道一些场景可能只是在某个业务场景下才会遇到,这是很常见的。那么面试者在遇到这种情况的时候可以从相关问题入手进行推测,用一些假设性的判断来阐述自己的思路。
03 除了回答问题,还可以稍微扩展
这一块在面试高级别的技术岗位时显得尤为重要,那么在回答面试官的问题的同时可以进行拓展和深入,比如我们在探讨‘轮询策略’这个问题上可以把自己项目中用的策略以及为什么这么选型和为什么不用其他的策略,这些策略的优劣点说出来,那么是大大加分的。
04 现在的应届生已经不是当年的应届生了
互联网行业发展至今,已经从原来大量缺少开发人员的阶段过渡到了优胜略汰的阶段,不是以前那种会一个简单的后端Spring全家桶,用过一些大数据套件就可以轻易的找到工作的阶段了。
行业门槛在这两年出现了明显变高的迹象,这个行业是对应届生和初级开发人员不友好的行业,那么初级开发者和应届生就要丰富自己的技术栈,不能单纯的说自己基础好,因为基础好的人太多了...
05 现在的老技术人也不能是当年的老技术人了
互联网开发行业是一个更新迭代极快的行业,技术的更新速度需要我们5年+的技术人员跟上时代,之前和一些同行交流过一个技术人员应不应该去追求一些新的技术,有一部分人持这样的态度:他们认为技术是通用的,轮子这么多,只要会几个,其他的轮子触类旁通。
我个人赞同这种说法。但是要考虑到,如果我们用到再去接触学习的时间成本问题,作为面试者去面试的话,还是需要跟上时代,让自己技术能力跟上工作年限。这样才不会出现你还在jQuery一把梭,我已经VUE和React都能写的尴尬局面。(这个例子可能不太恰当,只是举个例子)因为这个行业是需要终身学习的。
06 要有广度,也要有深度
这个问题我曾经和我的领导进行过讨论,我的老领导是我的校友,当时就直截了当的跟我说,广度和深度缺一不可。未来从事技术开发,这是你进阶和升级的要素,我至今非常感谢这句话,这句话可以说是我能来到阿里巴巴很重要的原因。我们在工作中会遇到各种各样的轮子,比如说我从事的数据开发领域,轮子多到不计其数。如果是做平台开发和业务开发,那么技术选型这时候不仅要广度还要熟悉每个轮子的优劣才能在特定的业务场景找到最适合自己的那个。你的技术深度在遇到特定的场景和Bug的时候就会体现出来,你能不能迅速定位问题,找到解决办法,借鉴你已经知道的其他轮子中的解决方案,可以直接拿过来用。
还有一些专门开发轮子的同学,我要特别跟你们说,做中间件开发很容易限到一个误区,就是我只负责一个很小的模块开发,这个模块的性能我能做到世界***,但是其他的模块我一概不了解,缺少全局的概念,这个是很致命的。因为这样会把你自己局限在一个范围,工作机会很少,你的方向可能只有很少的公司能去,这岂不是很尴尬。
以上是我的一点点个人感悟,技术人的成长道路平缓且陡峭,你付出的多收货的也就多。在满足工作需要的同时,能多思考,你和其他人的差距就会慢慢体现出来。
个人简介:
王知无,阿里巴巴高级大数据开发工程师,先后在京东,阿里等大型互联网公司从事大数据平台,实时计算、离线计算中间件和业务平台开发。