终于迈出了找工作的第一步,内推了一个成都的蚂蚁金服,算法工程师-其他。7.16在网上提交了在线测评和在线编程。在线测评随意填的,有点类似于公务员考试的逻辑判断题和数学的基础计算和找规律等题目。最后有些性格测试之类的问题,会重复出现,犹豫不决的选项最后能记住自己的答案,保证多次答案能够统一。不得不说阿里的效率非常高,7.18收到了一个电话可以预约电话面试的时间,一般从晚上7点开始,我当时头脑一热约了7.20的电面。由于准备时间比较短暂,就只是回顾了一下我简历上写的内容。
7.20日晚上7点过接到了面试官的电话,询问了是否有空,然后就开始了。首先是自我介绍,我当时脑袋一片空白,本来投这个岗位就是抱着积累经验的态度的,没有实习,没有论文,没有竞赛,没有技术,所以自己心里就没有什么负担,想着去面试一下,积累一点经验。自我介绍我就只说了两句话,就是说了一下自己的学习和专业以及所在的实验室。面试官问了我是不是推免生,所以如果自己研究生是推免的话可以在简历中标注一下,会有一点点优势。现在想想,自我介绍好像说得太漫不经心了,显得很随意。然后让介绍我做的一个关于属性约简的课题,在整个过程中,面试官显得非常尊重人,很耐心的听我说。让我介绍一下粗糙集,说一下基于粗糙集的属性约简算法和其它的特征选择算法相比有什么优点,当时有点懵懂,不知道该怎么说。然后解释了启发式的属性约简主要分为2个过程:①求属性核②每一次迭代过程中求最优属性,当时举了一个例子说明该算法的运行流程。然后又问了该算法是如何并行化实现的,稀疏矩阵的乘积是调用的CUDA库函数还是自己实现的。整个过程大约持续了30min,感觉面试官对我的印象还不错,说我讲得挺清楚的。感觉运气也比较好,面试官说我算是他最近面试中不错的了。我以为简历评估到此就快要结束了,结果面试官问了说看你本科和研究生都是计算机的,计算机的基础知识掌握的很牢固吧,但是心里就浇了一盆冷水,透心凉啊,计算机的基础知识完全不记得了。
1.TCP/IP的七层,socket是什么,处于哪一层?
2.操作系统中进程间是如何进行通信的?
3.操作系统中页面置换算法有哪些?页面置换最理想的情况是怎样的?
4.队列和栈的区别?
5.单链表要在末尾插入一个结点,需不需要遍历整个链表?
6.快速排序的具体过程,最坏的是哪种情况,最坏的情况的复杂度?平均复杂度?
7.堆排序的具体过程,建堆的复杂度,堆排序的复杂度?
8.最小生成树?
9.哈希表,如和解决hash冲突?
10.如何从n个数中找最大的m个数,时间复杂度是多少?
11.如何用两个栈实现一个队列?
12.一个有正负数的序列中,如何求出和最大的子序列?
其中面试官还问了不了解linux,我说不太了解。有没有看一下剑指offer、编程之美等书籍,我说书已经买回来了,但是还没来得及看。有没有在leetcode上刷题,我说之前有段时间刷了一些easy的题目,最后还问了工作地点有没有要求。最后两个技术问题我答得非常不好,但是面试官一直不断的引导我,鼓励我,整个面试一共持续了70分钟,我真的非常感激那位面试官,感谢他一直不断地引导我,给我力量。当初对这次的面试充满了恐惧,觉得自己投这个岗位就是自不量力,当初让同学内推的时候我还说万一我真的面得特别差,是不是给你丢脸了。但是在这次的电面过程中还得到了面试官的认可,真的特别开心。面试成功能够提升自己的信心,面试失败能够认识到自己的不足,不管成功还是失败都能够丰富自己的经验。加油,宁可失败也不要选择逃避。第二天早上发现网上的状态变成了待安排面试,终于迈出了找工作的第一步。
真的很感激我的那位面试官,虽然不知他的任何信息,但就是因为他让我对找工作这件事情不再那么恐惧了。