一周以来,投了不少简历,但基本上都杳无音讯。昨天晚上,360的面试官(私人手机号)发来一个约电话面试的短信,我今天早上才看到并回复。还好今天起得不算太晚,不然就要错过了。在等待电话的途中,面试官又发了一个短信让准备纸笔,5分钟后开始面试,也不知道是不是都这样,好评!
打电话,面试开始。首先是让做自我介绍,我两三句就带过了。面试官就开始问问题。
比赛经历
问的第一个问题是让我介绍参加过的比赛,算是进行熟悉吧,就说了一下程序设计竞赛。
进程、线程、多线程
接下来问到了进程与线程是什么,进程与线程的区别,问到了多线程和协程。回答了进程与线程,之后的全都说不了解,太菜了。
C/C++
问到了new和malloc的区别,不知道。析构函数的作用,我的回答是函数里申请局部对象变量,在退出时自动delete,现在看来,回答的完全不对。多个局部变量指向一块内存,如何避免内存泄漏,我想了很久还是不知道,面试官就说用计数器,使用封装类,每次申请计数器加一,每次释放计算器减一。问到了vector底层用什么实习,我不确定地说数组,面试官也认同了。
Linux
查看系统当前进程用什么命令,答曰ps。查看端口被哪个进程占用,答曰netstat。问到数据处理,用shell编程,完全不会。问会不会awk,不会。
git
git一般怎么用,我说命令行也用,图形界面也用。git提交冲突了怎么办,我说看文件手动改。
算法与数据结构
你参加的比赛,哪些题型比较难,答曰动态规划和图论。问了贪心和动规的不同,balabala一大串。给了2个题目。
- 反转链表。我回答太乱了,自己都听不懂。
- 数组中找第k小的数。我回答说排序,让分析时间复杂度,我回答说就是排序的时间复杂度。再问有无效率更高的算法,想了一分钟都想不到,就说没有,面试官说用大顶堆,其根就是堆里的最大元素,扫描数组,比根大的不处理,比根小的插入堆,到最后根就是第k小的元素。
调试方法
最后问了除了打印,还会不会其他调试方法,比如gdb,我回答说只会断点。
提问
我提的问题是:如果要进入公司,我应该学些什么。面试官说他们组做的是面向底层的,比较DB、OS之类的,与业务相关的是高并发,所以OS、网络都要掌握。
最后,面试结束,用了30分钟。
感觉吧,面试官人挺好的,也是技术人员,不严厉,教会我不少知识,也没有鄙视我。但是面试结果也不用想,肯定GG,毕竟不会的东西太多了。我觉得这个职位真的非常好,偏向底层、使用C/C++,能学到很多东西。但也不算遗憾吧,因为自己确实菜,很多东西都不会,面完之后就知道结果了。不过我还是比较开心的,首先经历了第一次,对于以后的面试也没那么害怕,而且也不会像以前一样担心是不是自己真的很菜,简历就没被捞起来过。还知道了自己差在哪里,有什么地方要重点学习。
共勉!