两天前去北京的某厂B参加实习面试,收获了一些很宝贵的经验,将它们整理了一下,写出来以供他人或者自己日后借鉴。

之前可以说几乎毫无面试经历,唯一的一次是去某厂A蹭面,和面试官聊了几分钟,然后被告知他们不招实习生,就结束了。不过那次和面试官聊得很不错,一点都没有经常在一些面经中看到的那样恐怖的紧张气氛,以至于从此对面试这件事毫无心理压力,可以很轻松地去面对,包括这一次。
先是看到了实习招聘的信息,是跟自己以后想从事的数据分析相关的工作,于是投了简历,不过很快被告知,简历太过于简单,要求完善。尽管我一直崇尚极简主义,以简单为美,但我的简历中,信息量和丰富度确实不够,然而这也是无可奈何之事,我之前的确没有过任何项目经历,能够摆到简历上的东西实在少的可怜,而我又不想在简历中作假,因此还是未多做修改就重新投了一次简历。之后毫无讯息,还以为已经没戏,不想过了两天,意外地接到了面试通知,倒让我喜出望外。

面试是在下午,面试官看起来也很年轻干练,简单招呼过后,就开始了。整个过程大约持续了一个小时二十分钟(其实要不是我太多不会,应该会更久)。问的问题大都是数据结构和算法的问题,几乎全都是很早之前在网上看到过的一些面试题,比如给两个超大文件,各自包含N多条URL记录,如何用有限的内存去找出两个文件中共有的URL。但我只是走马观花地浏览过,因此没有一个能完整回答出来的(也算是非计算机专业的我的硬伤了)。这便是我的第一个经验:面试之前还是做一做面试题目吧,不要总觉得那些题目已经在网上流传就不会再考,这些题目之所以经常被拿来考,不是没有原因的。其次就是,我自己的编程基础一点都不扎实,虽然通过看书掌握了基础的语法,但这跟自己动手去写代码解决实际的问题完全是两个概念,平时还是要通过写代码夯实语言的运用能力,否则,其实并不能说掌握了这门语言,比如C和Python, 还是要经常拿来用,而不要一有问题就在网上搜代码,这样虽然问题解决了,但对自己能力的提升帮助极其有限,看的多做的少,很容易就眼高手低。最后,面试官还问了我一道和我的专业相关的问题,让我介绍一下常用的聚类算法,但我也许是中午没有睡觉脑子发昏,也许是前面太多不会已经完全崩溃,竟然除了K-MEANS 外一个都想不起来了,就连K-MEANS 其实也是当场想到的,实在太不应该了,这是我觉得本次面试我对自己最失望的一个问题,丝毫没有理由不会。虽然聚类这块确实也很久没看了,但为什么K-MEANS 却能在忘记具体算法的条件下自己“重演”出来,而别的不能呢,这说明不是记忆力不好,而是当初可能就根本没有理解别的那些算法,或者,对它们的原理的感知并不深刻,以至于它们在脑海中无法在需要的时候被还原,因此,以后还是要对算法背后的原理多做思考和总结,对常见算法的原理和应用场景做到如数家珍,只有这样,才有可能在实际问题中去找到最适合问题的解决方法。
面试结果自不消说,面试官笑着说“今天就先到这里吧”,宣告了我这次面试的失败。不过我其实并无太多失望,能够从这次面试中暴露自己存在的问题,以后就有了改进的动力,也算收获不小。而且这次面试延续了上次在A厂面试那种轻松随意的气氛,让我对面试仍然没有心理恐惧,更多地是当做一次交流和学习的过程(喂,你交学费了么)。
不过,面试之外,和面试官聊天的过程中获悉的一些东西也让我很诧异,比如Spark这么火的大数据分析利器,作为国内巨头之一的B厂居然都不用,面试官连听都没听过,着实让我吃惊,再比如Scala,面试官也是表示没听说过这门语言,呃,Scala 真的很小众么。

面试结束后,从B厂出来,去见了久未谋面的一高中校友,她还介绍了她的一个美女同学给我认识,也算这次进京的收获之一了,嘻嘻。
最后再说一句,就一句:B厂那个前台真的好漂亮!