过年回来就看到有群友在讨论面试的事儿。毕竟寒冬嘛,裁员的裁员,裁老板的裁老板;毕竟“金三银四”嘛,年终奖不满意的离职,早就想离职的终于拿了年终奖离职。
机会是变多了,不过也有人发现事情并不是跟想象中的那样顺利。为什么面试总是失败?今天我从面试官角度来尝试跟大家分享一下我的一些感受。
工作了 5 年以上经验的候选人,通常会面试 ”高级工程师“岗位。我面试过程中主要负责 Android 岗位的招聘,按说候选人工作年限都不算短了,最初我也是对他们抱有不小的期望的,不过实际的面试经历却总是不怎么如人意,原因何在?
第一,基础不扎实。作为 Android 开发,Java 基础还是需要过硬的,尽管基础知识的考察不应该生僻,但难点还是要突出的。所以注解、泛型、反射、字节码、虚拟机甚至 HashMap 的原理之类的都成了重点考察的内容。但实际情况让我一度感到尴尬,每次有人提到注解,我都会问注解有几种用法或者有几种不同的使用场景,如果连这都搞不清楚,我怎么能相信你能写出注解处理器的框架?怎么能相信你知道为什么 Dagger1 和 Dagger2 不一样?每次有人提到集合框架,我也偶尔会问一下 HashMap 的原理,如果回答的比较好,可以很自然的切换到 ConcurrentHashMap 相关的并发话题上或者 ArrayMap 相关的内存优化话题上,不过实践一次又一次的告诉我想多了。也许有一两样你确实能拿的出手,但这就好比英雄池太浅,打王者上了钻石只有被虐的份儿啊,你怎么可能有太多的机会选到自己会玩的英雄呢?
第二,原理不清楚。通常面试官会按照简历的描述提问,候选人简历经常会提及一些开源框架想突出一下自己的技术水平,殊不知这些都成了面试者被“拷问”的标靶。Retrofit、OkHttp 之类的被提及的频率很高,JW 神的框架确实良心,值得被大家一再提及,不过我们不能只是停留在表面吧,有一小半人还不错,知道 Retrofit 是通过动态代理创建出了 Service 的实例,问题是这个校招生都能答出来,根本不算什么,你最起码要知道注解在这个框架是怎么用的,还得知道接口返回的结果的泛型实参在运行时是怎么获取的吧——毕竟 Java 泛型是类型擦除的嘛,而且最好你也要想想为什么 Java 的设计者最终用这么个蛋疼的玩意儿实现泛型,而不像隔壁的 C# 那样。走位不行、意识不够,别说你在高端局混过。
第三,工作不主动。想法其实是很重要的,有些时候难免问到一些逻辑的实现,候选人没有看过源码,那我也会尝试问一下如果你是它的开发者,你怎么设计这个东西。这个逻辑就是,10个框架你看过8个,剩下俩没看过,没关系,前面8个已经可以证明你的代码阅读能力,也能体现你的探索精神,没看的那俩可能你精力顾不上;无妨,这俩你肯定用过的嘛,而且应该也比较熟,不然怎么会出现在你简历上呢,所以从它的功能入手转变身份由使用者到设计者,很通。设计题是最适合自由发挥突出亮点的机会了,你可以在设计的过程中用一切你喜欢的手段,突出一切你擅长的技能,只是貌似很多候选人都不太喜欢做设计题,也许是不知道该怎么入手吧,那说明你之前大多数情况下是在被别人安排工作,而不是主动发现业务的问题主动去引导项目的前进。
第四,业务不专注。技术都将为业务服务,如果不是,那你大概是在学术研究机构吧;公司都是营利组织,你要给他们提供足够的利润他们才愿意花钱雇你干活。技术如果找不到业务作为落脚点,在特别浮躁的国内互联网氛围下,大概很快就要被优化掉吧。候选人的背景通常会有好几家公司,但多数情况下看不出他在某一个行业深耕的影子。我不相信一个做了多年社交应用的人去做音视频业务能够很轻松的上手,就算你一个月吃透 FFmpeg 源码,你的思维方式也很大程度上会停留在怎么建立用户连接,而不是视频要如何去吸引人。也许你觉得从 Android 转前端才算转行,但实际上并不是如此,换工作有相同的业务背景一定是加分项,除非你刚毕业还是一张白纸。如果过去你没有想过这个问题,请你现在开始思考,即便是做技术也不要今天短视频火就去做短视频,明天币圈火就去做虚拟币,最后大浪退去,你在哪一个领域都没有业务积累,剩下的大概就只有如何快速搭建一个 App 了吧。
想要找一个合适的岗位,前提是技术要过硬,业务要深耕。另外,大家也要保持精神饱满,虽然长年累月的加班可能让人很疲惫,但没有人愿意跟一个死气沉沉的人共事。忘了在哪儿看到的空客销售雷义分享自己的经验,“卖产品就是卖自己”,他精神出差见客户,为了保持精神饱满,他非常自律,下飞机后也不会直接去见客户,而是先做20分钟有氧运动。所以大家也是如此,就算被吊打,也要拿出洒脱的姿态,也许面试官被你的精神感染了,反而对别的要求降低了呢。
我也针对一些面试常见的问题以及面试过程中面试官针对不同层次回答的想法做了课程,希望能让大家了解到答题过程中对面的人是怎么想的,做到知己知彼,也好有的放矢的去突出自己的亮点为面试结果加分。
这套课程的选题比较精炼,这也是吸取了前面其他课程“面面俱到、面面不到”的问题,每一个我们讲过的题目大家都必然可以深入原理把握细节,没讲过的题目大家也可以触类旁通获得灵感,当然,如果你觉得某些题目非常有价值,发到讨论区大家一起探讨,如果有必要,我也在后面视时间情况考虑对课程内容进行扩充,当然如果扩充的话,按照以往的经验就会是额外的福利啦(不信问下买了 Kotlin 基础课的兄弟们~)。
共同学习,写下你的评论
评论加载中...
作者其他优质文章