面试前准备
1. 算法
头条每轮技术面试都有算法题:先是快速刷完了剑指offer,这个校招时已经刷过两边了,因此现在刷起来会相对快一些。然后就是啃LeetCode的题了,LeetCode的题比较多,想在短短几周内刷完基本是不可能的,因此我主要按照类型去刷,每个类型刷几道就会比较有感觉了。比如链表的题优先考虑递归和双指针来解决,栈和队列的题优先考虑用两个栈或队列来解决,树的题基本都是递归等。不过数组和字符串的题一般比较灵活,这种题只能尽量多刷了。
平时要上班刷题也不方便,我采用的方法就是看题,用手机打开LeetCode的网站,看完题目后直接想解决方案,脑子里大概捋一下代码怎么写,能想到的就过,想不出的就看看别人的解法,用这个方法刷起来就很快。用这种方法你可能会担心面试时题写不完整,其实不用太担心,因为面试的时候面试官看你写的核心思路是正确的,边界处理是对的基本就过了,面试时间比较有限。
2. 理论基础
基础这一块主要以快速复习为主,主要是语言(我主要用C++,所以复习C++)、操作系统和网络编程。
操作系统就看内存管理、进程管理和文件系统,一般虚拟内存问的多。网络编程这块就包括TCP/IP协议,HTTP协议,网络安全三个方面。
TCP/IP主要就是三次握手,四次挥手,TIME_WAIT的作用等这些常考的题了。
HTTP协议考察HTTP协议的返回码、HTTP的方法等。需要特别指出的是HTTPS加密的详细过程要非常透彻,不然容易产生一种感觉好像都清楚了,但是一问就有点说不清楚。最后就是网络安全,主要考察也是WEB安全,包括X