1、周一第一场面试,面得是某B轮初创公司的数据开发工程师岗位。
结果:到技术面

过程(持续半小时多点):
对这家公司的装潢设计印象比较深刻。哈哈,跑偏了。整个面试的感觉很舒服。没有太多的套路(像什么自我介绍啊)。令我比较惊讶的是面试官竟然看了我Git上的项目(毕竟许多面试官连简历都是现场看现场提问)。首先聊了下之前的一些工作经历,还有怎么接触的大数据这些东西。之后面试官提了几个问题,如hadoop都有哪些版本(答得不全,免费版:DCH等,还有收费版的)、写了几个hadoop的参数让说明有什么作用(依稀就得有两个参数min什么max什么,是和切片的大小有关,内部通过一个计算公式得到最终切片的大小值),HDFS的读写原理,Hive中表的inner
join,left
join等操作(现场举例子写答案)、数据库方向的问题:什么是事务(凭大学的记忆模糊的解释了下,意思还对。面试官把定义又说了下),事务的ACID是什么(这个当时真心不知道,回来查过之后原来是:
事务的ACID属性:
1、原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
2、一致性(Consistency):事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

3、隔离性(Isolation):事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
4、持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。)

之后又现场出了一道题让用HQL来统计3次筛筛子出现的点数和以及对应的点数和的概率(每面朝上都有一个指定的概率)。当时的想法是表jion自身,但是最后发现还是搞不定(也怪自己本身没有写过太多的SQL案例)。

总结:
说实话,这次面试的氛围自己非常喜欢,首先面试官虽然很年轻但是也很温和,特别是看我Git这点也是我没想到的,然后整个面试的过程中也特别考虑面试者的感受,特别是对于出的题目都会针对你的经验来出。以至于到后面,我直接坦白说:“您别担心我能不能答上来,您放心出题,我尽力答就行了。”然后面试官也是笑了下。虽然由于个人能力不够以及和岗位需要的人不相符造成最终没能拿到Offer,不过个人还是比较喜欢这样的面试官的。还有一点比较尴尬的场景:当时在本子上写一些英文单词的时候,看了面试官的英文笔迹再对比下自己的感觉无地自容,面试官的笔迹太漂亮了。。。(近期得重新开始记单词啊)

2、周三面了某公司(称为A公司)的大数据工程师岗位。

结果:等通知(也许博主不是最佳人选,公司还在挑选合适的人)。

过程(整个过程持续约1小时):由于博主周一面试完后,整个人精神状态比较不好,刚好周二也没有面试就好好休整了一天。周三早上去面试的时候,竟然阴差阳错的跑到了另一家公司(暂称为B公司)(两家公司名字非常像再加上B公司在自己招聘网站上显示的状态为待沟通,所以当时早上晕晕乎乎到B公司那去面试)。到那交过简历之后才发现跑错了地方,然后B公司为了少让博主来回跑就想让我直接就在这里面试,然后再去A公司接着面。但是由于时间关系博主还是委婉拒绝了B公司,赶紧打了个DD就去A公司(还好两家公司离得不是太远)。我去,又扯远了。

进入正题,到A公司后,一轮直接部门负责人面,负责人是一个海归博士,为人非常亲和,也很热情(感觉热情是因为负责人以为我的简历跟他们需要的人吻合度比较高,但是比较遗憾的是博主经验不足没能实现面试官的需求)整个过程也没有太多的套路,负责人问了几个关于项目的问题后,直接切入正题:他们目前需要一个能用大数据技术处理图像数据的工程师,还得了解相关的机器学习算法(要和算法工程师做一个交流)。当时面试官提出了需求,但是当时毕竟没有做过图像方向的处理所以没有给出解决方案。(当天晚上回来后睡不着的时候想到了两种方式;之后给HR发过去,但没有回应)之后HR面,基本也是再聊自己之前的经历,然后聊了下之前的薪水,然后也没其他的什么。(感觉当时已经到12点了,然后HR好像有点饿的样子,所以也没有聊的太多)之后HR让回去等通知,说是给通知的话就再联系没有通知的话就代表被Pass了。

总结:
面试官给我的感觉算是非常nice,(好像有这样一个规律:面试时海归的态度好于土博或其他;学历高的态度好于学历低的;)但是的确由于自己之前没有接触到相关的案例,所以实在没法给出方案(也是经验太少吧,还得接着学)。针对岗位本身自己还是很有兴趣挑战一下,毕竟按照面试官说的这个岗位还是很有挑战性的。

3、周四上午面了B公司的数据工程师岗位
结果:两轮技术面后因经验少被Pass。
过程(两轮技术面持续约1小时):
第一轮技术面试在周三晚上开始的,和公司的技术总监电话面试。整个过程个人感觉也没聊太多关于大数据方面的知识点。主要还是在聊简历中的项目。不过印象最深的一个问题是:你最擅长什么?当时我也是很懵逼,的确,现在好像的确没有一项特别擅长的技术。(之前一直在学习大数据方向的东西,大三玩Android的时候对javaSE还是比较熟,但是后来随着整个17年的实习以及工作的经历完全和Java扯不上边,时隔一年后再来看java,发现博主已经被java给抛弃了。。。也是这个问题,让自己下定决心接下来的时间里一定要精通一门语言)最后面试官问了下之前的薪水和期望的薪水,然后这轮就Over了。
第二轮面试也是公司的主管来面的,全程同样没有聊太多大数据相关的技术,整个过程和第一轮基本一样,只不过中间问了下Random
Forest的原理。最后面试官问我还有什么要问的吗?我就问了下公司目前这个数据平台达到那种地步?然后面试官也大概从业务上说了下。之后就让走了。

总结:
感觉公司内部的话,在数据平台搭建这块也是采用传统的方法来处理(用面试官说的是人工的策略来搞的)。至少聊的过程中感觉到公司在大数据工具的使用这块基本还是处于空白,包括后期采用机器学习算法建立数据模型也是公司以后的发展方向。但是整个面的过程也的确有点Boring。不过和其中一位面试官的聊天也让自己发现了自己很大一个问题,所以这趟也算没白跑。

4、周五下午面了一家D轮以上公司的大数据开发岗位。
结果:HR面后等通知。
过程:
第一轮技术面,面试官是部门总监。先自我介绍,然后让对机器学习项目做一个大体的介绍,之后出乎我意料的是面试官竟然又详细的问了下SVM、RandomForest算法中用到了那些参数(毕竟许多面试官也只是让说下算法原理根本不会问的这么细)。之后又问到了一个量化KDJ策略功能是怎么实现的。(算是问的相当详细,之前股票预测模型项目最多只是问下里面算法的原理,这也是让自己感到很新奇)博主就一一进行了解答。之后尴尬的事情发生了,又是让写SQL,第一个简单的SQL(统计每个组里面有多少人),自己写的太随意犯了一个错误把count写成了cout,还有一点博主写的时候没有把组这个属性写出来只写了最终统计的人数,然后也被面试官抓住可这一点(但是当时面试官说博主写的语句会报错,由于博主没有很坚定的否定面试官(后来博主验证了下语句完全没问题,也是被面试官给“吓唬”了下),所以之后面试官就开始“拷问博主”SQL到底熟不熟,博主实话实说也就懂基本语法然后写过一些案例)。之后面试官又让写一个复杂的SQL语句,当时博主也是用Hql写出来,(由于一些语法使用和SQL不同)但是依旧没能让面试官满意。(第一面自己也是对自己的表现相当不满意,当时就下决心回来后先把Hql给再好好复习下)后来又给了个需求,让写一个Linux指令把指定文件夹中的两个文件的全部内容复制到指定的位置,当时也是用了两条CP指令搞定的。(凭掌握的知识想不出怎么来用一条指令搞定)

之后第二轮技术面,总监让手下的两个员工来面(一个估计偏Java一个偏大数据,后来了解到他们有两年的经验),开始也是自我介绍,然后提了一个问题也是给一个需求然后让用MapReduce来解决,让说出思路(当时受上一轮写SQL时尴尬以及刚开始博主把题目理解错误的影响,博主差点没能答出来,还好,两位小哥哥比较和气,在旁边安慰博主说:“别想的太复杂,别紧张。”冷静下来后,才发现问题的解决方法其实也是很简单的)之后又让介绍下Hbase(主要从Hbase为什么比关系型数据库快以及Hbase以HDFS作为存储介质等方面来做了一个介绍)以及说下Hbase的读写数据的原理(刚好博主在昨天整理博客的时候回顾了一下),博主就说了下Hbase读数据的原理。之后又有问到关于Java的一些知识,博主印象比较深的是另一位小哥哥问的一个问题:“StringBuffer和String分别用在什么场景下,为什么这样用?”当时博主脑袋里感觉这个问题不知道要怎么说才好,毕竟博主这种小菜鸟印象里面大多数的时候都是用的StringBuffer,做一个数据缓存。但是String不就是在声明变量的时候用一下吗?(这也是自己当时的答案)后来请教了下面试官才知道,面试官是想让我往这个方向答:StringBuffer是在内存中开辟一块空间用来做数据缓存,比如for循环处理数据的时候要用。而String是Final类型,所以在声明对象的时候会不断的在堆中开辟空间,容易造成内存溢出。了解完答题模式后,面试官又让说了下使用线程的几种方式(博主就说明了两种方式并说出各种方式的利弊),同步的几种方式(说明同步的关键字以及两种方式以及对应的区别)之后的话好像也没有什么特别的问题。然后两位面试官竟然直接问我能接受的最低的薪水,当时我是一脸懵逼(哪有面试官直接问薪水的,一般不是HR问或者高管来问吗?)然后我就委婉的说了下,之后便是HR面。

HR面更多的是聊之前的一些经历,和HR聊的算是比较投缘吧。感觉聊的都有点口渴了。前面先聊我之前的经历,然后HR介绍了下公司的发展情况,之后又特别说了下公司最近在忙着融资,所以会比较忙。HR最后问了下如果薪水相同,你会怎么来选择企业,我就说了下我的意愿:首先看平台,其次看薪水。平台和自己的发展意愿相符合等等。(之后聊到和Leader的关系时,HR帮我补充了我想说的话:希望Leader不要老摆架子)总之聊了很多东西,以至于最后让技术主管直接把HR给叫走(哈哈,也许是到了下班时间,技术主管想要早点回家吧),然后在技术主管送我出公司的时候,我表达了我希望快点收到最终结果的意愿,然后向技术主管说明了原因。之后技术主管竟然问我前两个Offer给多少,当时也是比较惊讶,(这也太直接了,我到底要不要说)
然后我也把给的待遇给说了下。Over。

总结:
这次面试算是这周收获比较大的面试吧。特别是SQL这块自己需要把它玩到精通的地步(虽然差的挺远)。对于整个面试的过程感觉相当nice,一面的技术总监也很温和吧,毕竟就凭当时让手写SQL语句时的小错误,如果换成稍微“横”点的面试官,那直接就开始“居高临下”向你发难了。经验还是自己的劣势,现在真的需要在工作的过程中,把不断学的东西给熟练化,形成自己的一套经验,这样你才能不断的“增值”。


最后,面经的话也就先写这么多了。下周,等这几家公司的通知之后,博主要迅速决定到底去哪家当码农了(本来想再跑一周,但时如果再拖下去的话,估计Offer会被拖完。。第一家给博主Offer的公司让博主4月2号就去报道,过期不候)。。搞的现在博主也不敢再专心“试水”了。
最后还是希望这些经历能对各位有一定帮助,希望各位面试时都能被“温柔以待”,最终找到合适的工作岗位。