1、背景:
本人,双非硕士毕业,五年大数据开发经验,最近去面试一家互联网二线小厂公司大数据组件开发,没有通过面试,做个简单总结。
2、一面面试流程:
主要是通过介绍自己的项目,在介绍项目中间问很多大数据组件内核的知识;
1)最近在一直搞spark,就问了spark core的一些源码方面的实现,比如DAGScheduler的实现,spark sql一些逻辑执行计划、优化规则的源码实现;
2)以前写过mr,就问了很多yarn相关的内核知识
3)自己搞过的es solr相关的,可能是面试官不怎么会,然后就没问;
一面也比较顺利的通过,从整体面试的流程上来看,他们更多的是关心内核的实现,具体对组件怎么使用,好像不是特别关心。可能是他们想要搞大数据平台类的开发。
3、二面流程:
鉴于一面中问我组件源码级的实现比较多,我在面试前就有一种感觉,二面可能不会顺利。
二面流程:
(1)介绍项目,也是在项目中问大数据相关的组件知识。
(2)一面中没有问到的es和solr,在本次面试中问到了。。
但是当时搞得时间比较短,es和solr各自搞了半年,很多源码级别的实现,都给忘记了。
(3)还问了几个leetcode的题,现场写,其实比较简单,但是由于想当然的认为,工作五年以上的就不会问这些,我也没做过任何准备,竟然被面试官认为我最近是不是很少写代码?问到这里,就感觉这次面试要黄了。
(4)后面面试官还问了,怎么做一个es服务paas平台?但是由于编程那里没有答好,感觉面试官可能顺带问句,我也就没有认真答。。其实面试官可能是考察我有没有架构经验?翻盘的机会被自己搞没了,至少不会答得那么差。
(5)最后就问了一些自己的打算,在他们公司三年后能达到什么目标?我当时感觉上面两道答得比较差,后面也就随意的回答了下。
4、总结
面试结束后,自己也清楚,回答的实在是一般,即使进去,工资也不会高,达不到期望。然后我就开始复盘,我的实力真的如此不济吗?
(1)技术实力复盘:
1)客观上讲,这几年我虽说一直在搞大数据,但是我其实搞得更多的是基于业务和大数据组件之间的平台开发,类似于中间件的角色,这样一来对组件的源码理解不到位,对组件的具体使用也不够,简单来说,就是知道组件的基本原理,深入使用却没有做到。
虽说中间有一年搞得是大数据组件开发, 但是在大厂里面,对单一组件的开发中,更多的是螺丝钉的工作,刚开始也没有适应hw的工作环境,对es和solr的理解也是局限于某一点,最关键是没人带,只能自己揣摩,比较慢,但是这个组件刚刚适应了,就得切换到另外一个组件中。不过这一年学到了大厂的规范,对自己也是收益颇多。
在这次面试中还是组件开发,只不过是互联网公司,以前的工作经历中也缺乏,可能有点好奇吧,没想到他们对源码的要求比较高,我现有的实力,的确岗位略微有些不匹配,属于不上不下的尴尬角色。
2)自己的基础数据结构不扎实。以前就害怕算法和数据结构题,现在依然害怕。需要刷题来夯实基础数据结构的不足。
3)自己对别的组件的具体使用还是有些欠缺。尽可能的熟悉更多的组件的原理,从工作需要出发,遇到什么组件就认真的学一学,也不要盲目的,跟着潮流跑。这样带来的好处是,既熟悉了这个组件,也满足了工作的需要。需求驱动出发做好,就比大多数人实力强劲了。组件的学习,关键还是在于应用。切记捡了芝麻,丢了西瓜。
(2)这次面试过程中别的槽点:
平心而论,个人的口头表达能力,在程序员里面,还算是有一点优势。但是这次面试的时候,没有表现好。可能是心态吧,太想要得到这份工作了,畏手畏脚,不敢放手一搏,全程被压制。其实自己想想,当前的工作没有那么糟糕。不应该抱着被对方施舍的心态去面试,而是对等看待,对方招人过去是有求于我,是去解决问题的,并不是去培养你的能力,优先解决公司的问题,才是第一要务。
(3)由于该互联网公司也有一定的江湖地位,他们招的人也不多,给出的薪水、福利较好,前来应聘的人员水平也挺高,面完hr也迟迟不给回复,说是候选人较多,在比对。反正最后也就成了备胎。最后就不了了之了。总结就是一定要多多准备,临时抱佛脚也是可以的!



