一面:
上来应该先看的是项目。我项目里有一个关于无监督聚类的研究,他问了一下有监督和无监督的区别,我的回答他应该不满意。
接下来问的是编程语言,问主要问C和C++,比如C++的virtual关键字,C的friend关键字,inline关键字的作用和具体是怎么实现的,这一块C好久没有复习过了,答得非常不好。
Python用过什么内置的数据结构。
由于语言那块答得不好,所以接下来问的问题明显简单了好多,这也是导致面试没过的最直接原因吧,还是没能发挥出自己的优势来。
问了一下LR的损失函数,SVM的损失函数,稍微讲一下原理。
问了一下矩阵秩的几何意义,这个概念具体有什么用。
写一个链表的数据结构,链表和数组的区别,在内存中的存放。
算法题:走台阶问题,n个台阶,一次走一步或者两步,最后走n阶有多少种方法。让用两种方法实现,递归和非递归。
问了问数据库。这块我不熟悉,也是面试失败的一个主要原因,问了问范式有什么用,为什么用的时候不用级数很高的范式。
问了问kaggle上的做过的一个项目,简单介绍了一下。
Linux的知识,问用没用过linux,查找目前系统中运行的程序有哪些用什么命令。
说一下自己的优缺点。
写一下网络的7层协议,帧在哪一层,socket在哪一层。
问知不知道hadoop,以wordcount为例子来说一下hadoop的数据走的流程,在sort阶段发生在什么时候。
知道哪些聚类方法。
想在他们那实习得到什么。
接下来就是一些闲聊了。
二面:
上来还是自我介绍,在说说自己做过的项目,然后稍微聊了一下项目的东西。
接下来给一个题,去掉字符串中相邻字符中的重复字符,比如abbcdb,处理完是abcdb,我用的是On的时间O1的空间
然后又给了一个题,让完成一个类,这个类有两个接口,其中一个接口在每次用户访问百度的时候都会执行一次,第二个接口返回最近一个小时用户的访问次数,也就是那个接口运行了多少次,类中的数据结构自己设计。让完成这两个函数。这个我没做出来,有会的朋友可以留言告诉我一下具体怎么做,非常感谢。
然后又问了问做的那个kaggle的项目,然后问了问LR,问LR的损失函数,向量更新的时候有什么方法(牛顿,梯度下降),牛顿和梯度下降的原理,这两个收敛的速度怎么样,所谓的收敛快中的快是以什么为标准理解这个”快”。
之后说出去商量一下,然后。。。就没然后了,告诉我今天面试结束,直接把我送出去了。
总结:
一面面的知识范围太广泛了,自己有的地方属于知识的盲点,面试一开始就疯狂地“我对这块不怎么了解”,导致面试官降低对我的期望,比如面向对象,数据库,基本就宣告了我的GG。
二面面试官比较着急,问的没有那么广了,但是深度上来了,虽然能说一些,但是被步步逼问就GG了。
问题是没有发挥出自己的优势,我的算法题还是不错的,但是面试中的算法题实在是有点简单了,根本构不成自己的加分项,而扣分项太多了。
接下来要好好学一下Java了,面试对语言的重视程度还是挺高的,要对语言的一些细节有清楚地了解。