秋招总结
秋招基本结束了,想要总结一些经验,希望能够对后来的人有帮助吧
总的来说对个人能力的考核分为三个部分:
- 基础知识:首先是语言方面,比如我自己主要用Java,会问一些集合,并发,多线程之类的,这些主要就是平时多看看源码,深究背后的原理,看看相关的书籍就行,再有就是操作系统,真正面试问到的也不多,进程线程区别,进程通信方式(感觉这个问题很智障,有本事问问具体的函数调用啊),当然也有问的具体的,比如问通过信号停止进程再启动进程(CTRL+Z bg命令),管道实现的具体细节,操作系统可以深入看看,中断异常,线程调度机制这些本身就是很重要的基础知识,计算机网络就TCP那些,其实也就是一个了解的程度,即便问到也很浅,没遇到什么很好的问题,还有shell命令这些,grep awk sed都是常见的命令,总之网上很多面经都提到过到这些东西,如有必要查漏补缺即可
- 专业知识:这个根方向和项目相关,根具体领域贴合的比较紧,说说实验室项目,自己也深究一下底层,有拿得出手的东西,整个技术领域如果比较宽,如果问到有些没用过不了解的框架,直接说没用过,面试官就会跳过
- 算法:具体来说分为算法笔试和面试现场笔试两种情况,笔试算法一般来说难度高些,现场笔试难度相对简单一些,这是我想仔细说说的部分,这里边有很多经验可寻
从根本上来说,算法不是看你是否聪明,是看你有没有研究过对应类型的问题,纯粹一个新的没见过的,时间卡在这,大家都要GG,所以算法首先就是刷题,要见多识广,然后遇到题目能够抽象出问题本质,结合已有的知识举一反三
关于刷题:
leetcode刷个三百道,基本上各个类型的题目都见过了
接下来是总结归纳,应该说是在刷题的时候就在总结了,相同类型的题目放到一起,最后回头看看,从更高层次上再进行总结归纳,不断总结归纳的过程就是对这个类型题目了解加深的过程
这个时候,面试算法问题基本上问不倒你了,面试会问一些偏向于思维的题目,写起来比较简单那种,比如二叉树这样的就很合适。这里说一点,我其实不喜欢被问到原题,如果问到了,我总是会想当时我是怎么怎么做的,但是实际上这样反而就变成了纯回忆的过程,有些细节忘了注意不到,写出的答案反而不够完善,如果是一个新的题目,还能进行一个完整的思考分析,给出的解答其实更好
再说笔试算法,这个等同于考试,基本不会出现原题,考试与平时不同,考试不仅仅是考察知识能力,因为时间有限,还涉及应变能力,时间有限的情况下,大致对问题本质进行分析推测,多种方式用哪种更合适,还要注意一些应试技巧,才能保证正常发挥,不会犯一些智障错误。比如OJ是不会给你测试原型的,如果出错,通过率始终为0,那么大概率是算法本身有问题,甚至是题意没有理解正确,如果过了一部分,这时候可以根据提示,如果说有越界或者非法访问,一般是特殊情况没有处理好,那就自己编写特殊的测试用例,如果是时间或空间超出,就是方法本身有问题,这里应该写之前预先估计一下时间和空间复杂度,选出最优的方案去实现,如果写完之后遇到超时的情况,基本就可以跳过了,因为重新写一个新的方案基本上没时间,还不如去看下一题
笔试算法投机:有些返回YES,NO直接返回一个就能对一半了,不过现在一般都是一组数据,给出一组输出,这样的话这种投机基本没法搞,比较实际的是简化情况,不考虑很复杂的情况,直接试一下简单的情况,或者说是复杂度比较高的实现,至少也能过一两个测试用例了,有时候自己再加上一些限制条件,可以过一大半
做的多了,题型也就那些,很多时候知道题型就成功了一大半,因为大致就有一个努力的方向了,这里说几种遇到的
- 二分查找:基本的思路就是区间不断压缩区间,找到最优解,有些是直观的二分查找,有些是套入场景,leetcode 378 875
- DFS:或者说是回朔,这样的方式最基础的就是 leetcode 78 90 46 47 39 40,具体的问题就具体分析了
- DP:最多的就是背包问题,我做到过的就有01背包,完全背包,二维费用背包,推荐去看看背包九讲
- 堆:一般是优先队列,这个很简单
- 栈:单调栈问题,这个也蛮常见的(之前根本不知道是啥),例如腾讯第二次笔试后来发现直接就是OJ 2796,leetcode 42 84 402 739 901;还有就是优先级运算,leetcode Basic Calculator 那一系列的
各个公司的出题风格比较类似,比如腾讯今年我没事就做了两次笔试,都有背包问题的DP,还有同学做头条校招笔试,我发现有道题跟我之前实习笔试的题目基本一样,就是简化了一些,八月初佛系做题,拼多多竟然把我挂了,我就又投一次专门做笔试,发现两次第二题的题型都是DFS,恩还有百度,我只做了笔试,打电话面试感觉太累,拒了,还有华为,难度今年也有些上天,有的是有竞赛经验的人才知道的东西,我也之能干瞪眼了
总的来说就这样了,算法很有意思,闲的时候来一道DP有助于身心健康,哈哈
大家有什么补充的题型就写到留言区里边,一起努力做贡献