以下是我经历春招这半个多月以来的一些经验,把它总结下来供各位需要的朋友参考交流。
一般各公司是在2月末陆陆续续开始春招的,春招针对的对象一般是补招18届或者招19届的实习生。有些公司会在年前就开始招人,如果提前准备好,甚至可以在年前就拿到offer,别人春招的时候你就可以干自己的事了。
在春招的过程中,3月-4月这个阶段一般是各公司的内推时间,需要注意内推一般分为两种,一种是大内推,意思就是所有的简历都会被收集起来,供各部门去选择,哪个部门看的上哪个部门的人就来面你,如果没有部门看上你的简历,那就直接笔试了,这种内推的成功率不是很高,并且不建议选择部门时选择”都喜欢”这一栏,因为这样很容易成为备胎;还有一种内推是部门直招,这种内推的岗位和人数都有限,但是成功率要高一些,相当于可以你的简历肯定会被那个部门的人看到并面试,不过这种内推的信息一般较少,看到了一定要把握住机会,否则别人就抢先通过面试获得名额了。
关于招聘信息的来源,我主要从公众号、牛客网以及一些学校的论坛里面获取,比如电子科大的清水河畔,也可以通过加一些什么什么实习群之类的获取。看到了适合自己岗位的招聘信息,就算你目前没有准备好,也尽量记录下来并且注明投递的时间,以免等自己准备好了,但是投递简历的时间已经截至了。
一般来说,简历投的越早越好,因为大家可能都觉得还没有准备好,如果你预先准备的差不多了,此时你想投递公司的对应岗位的名额还很多,这是一个优势;否则等大家都准备好了,但是名额已经所剩无几,HR的把关可能要严很多。建议复习的时间尽量早一点,然后尽早的结束。一般投了简历之后,还是有一周左右的时间才会面试,不过有些公司的效率要高一些,有些要低一些,所以也说不定。如果没有准备好,那也不要太勉强。
针对自己想去的公司,最好还是先投递一些其他的公司增加一点面试经验,以免太过紧张,从而导致发挥失常。
作为做技术的同学来说,简历方面一定不要太过于复杂,简洁为最佳,并且1页足够了。如果项目经验比较突出,那就把项目经验放在比较靠前的位置,如果竞赛获奖的经历比较突出,就把获奖的经历放在前面,总之就是要突显自己的优势所在。
还有一点就是,有写博客的习惯或者使用Github的习惯是会有加分的。我的简历就附上了这些地址。
笔试方面其实没什么技巧可言,只有多做点题之类的。但是面试还是有一定的技巧存在的。首先是电话面试,在电话面试的时候务必保证周围环境的安静,如果太嘈杂,告诉面试官现在不方便,再约一个时间即可,还有一个很重要的是最好自己身边有纸笔,便于梳理自己的思路。就算身边有电脑,也不要用电脑上网查,如果被听到了,肯定是会被直接挂的,这个是最基本的诚信问题。由于不是现场面,不能通过纸笔来表达自己的意思,所以此时的表达能力就显得特别重要,对于一些比较经典的问题,可以自己反复的多看几遍,尽量不要支支吾吾的回答。
如果是现场面试,首先自己的形象一定要整理好,不用穿的太隆重,但也不能穿的过于时尚,比如破洞牛仔裤之类的。面试的过程中,谈到一些问题时可以主动用纸笔展示给面试官看,面试官可能会要求你手写代码或者使用他的电脑来写代码,如果一开始没有思路,那就最好在纸上多推导一下,如果还是没有,就告诉面试官自己目前的思路,他可能会给你一定的提示来引导你得出答案,切忌不要说不知道。
面试时的制胜点就在于你要自己主动输出,而不是靠面试官的问题来被动回答。比如面试官问你Linux内存管理方面的问题,首先想到的就是伙伴系统以及Slab分配器,如果你对两者的其一不熟,你可以直接告诉面试官自己对另一个比较熟悉,然后再说出其实现的机制,不要别人一问你就说不知道。
能不能通过面试,心态其实是很重要的一个因素。如果因为一场面试的失利而导致自己的心态不稳定,会极大程度的影响自己以后的面试,所以一定要注意调整自己的心态问题。如果春招对于自己来说太早了,那就准备秋招,总之要清楚自己的定位,抱着试一试的心态,通过面试发现自己的不足之处从而完善自己的知识面,这样迟早会拿到自己心仪的offer。
准备春招的时间不益过早,太早了容易导致越复习越乏力,也不益过迟。我差不多是提前了2-3个月来复习,3个月左右比较合适。
公司最看重实习生的基础到底扎不扎实。一般需要复习的有如下几点:
语言
语言方面,我是C++岗,所以这里只能给出对C++的建议。《C++primer》、《深度探索C++对象模型》、《EffectiveC++》这几本书基本上是做C++的人必看的书籍。并不是说等复习的时候才开始看,而是应该在准备春招之前就已经阅读过这些书籍。《STL源码剖析》这本书也应当去仔细阅读,如果时间不太够的情况下,可以只看看容器以及空间配置器这些的实现。这些大概是需要准备的书等,关于知识点和常问问题,这里列举了一些我遇见的以及可能会考到的。
const
、extern
、static
、volatile
等关键字的作用new
和malloc
的区别typedef
和宏的区别vector
等容器怎么实现的以上都是很常见的面试问题,STL部分要根据你熟悉的程度,也可能问到其他容器的一些实现或者配置器的实现。
操作系统
其实对于操作系统而言,理论方面的知识是完全不够的。一般面试官问的时候,如果你想深入回答,都会涉及到一些操作系统它内部的实现。理论方面比较重要的就是进程和线程的区别等,以及一些调度算法,内存管理方面的,但是这些只回答理论只是一个很浅的层次,对于面试官来说,这种标答其实也就一般般。所以尽量向Linux内核层面进行研究,比如《Linux内核设计与实现》、《深入理解Linux内核》等书可以去阅读了解一下。以下是常见的问题。
其实这一块还是要根据你自己掌握的程度适当的发挥,每个人情况都不一样,这些都是很基本的问题,如果答不上会留下很不好的印象。
计算机网络
三次握手、四次挥手这些问题真的很常见,你可以引申出为什么是三次握手而不是两次,为什么是四次挥手而不是三次或者更多。TCP协议一定要熟,它的拥塞控制,滑动窗口机制、延迟ACK、Nagle算法等。以及UDP和TCP的区别等。HTTP协议也需要有一定的了解,比如一些常见的状态码还有HTTP请求/响应包含了哪些内容等。这里就推荐《TCP/IP详解卷一》或者《计算机网络》(谢希任)这两本,HTTP方面,如果你的项目没有涉及到HTTP协议,那就简单的了解下就行了。
数据结构和算法
这个绝对是重中之重了,3个月的准备时间中,大部分的时间最好都花在刷题上面,刷各种常考的数据结构和算法题。这里主要推荐《剑指offer》还有LeetCode。除了做题之外,还可能会问到以下问题。
数据库
数据库方面,如果项目上没有涉及到,就复习一下上课教的内容就可以了,比如索引是什么,有什么用之类的。但是如果项目涉及到了数据库,最好深入去了解一下,这里也牵扯到B树这方面的内容。
以上便是大体需要准备的一些内容,其实我自己的感觉是,可以提前展示在简历上的一定要展示出来,简历太渣给面试官的第一印象就不太好,如果个别问题再没回答上,挂的几率就比较大了。
我面的公司不多,面了的都过了。大家投递公司的时候最好用一个文档记录下来投了哪些公司,也不要投的太多,以免自己忙不过来。
listen
函数第二个参数意义ifconfig
、tcpdump
、lsof
、mount
、netstat
等listen
函数 listen
,但是可以调用connect
获取对端对信息ps
、netstat
back strace
、info frame
、普通断点、条件断点由于HR要求马上入职,所以拒了深信服。
总的来说,深信服问的问题比较基础,也比较容易回答。但是就算是简单的问题,也一定要回答的深入。简历很容易给面试官一个第一印象,如果第一印象比较好,再加上你回答的都很深入,那么面试官可能就觉得你技术方面没什么问题,问的问题会少一点而且气氛也比较放松
通过了笔试之后,就去参加了CVTE的一面。
nice
值映射权重,计算vruntime
typedef
可以类型检查,编译时处理。宏只是简单的替换,运行时替换,并且可以使用宏函数等第二天清早就去参加CVTE的二面了,面试官挺和蔼的。
epoll
的源码实现角度来说二面面完之后,面试官让我等等,马上安排我终面,负责我终面的也是一个小姐姐。
CVTE的面试官都挺好的,而且好像都是年龄稍微大一点的人,反正很和善。对于他们问的技术问题,感觉也不是很难,还是要回答的深入才行,一面和二面的面试官都夸了我,问了几个问题之后,就随便聊了一下,还点开我的博客问了一下。
百度的一面面试官和我约时间的时候当时正在面CVTE,随后我打过去约了时间,并且他也发了在线答题的链接给我。
一面过后过了几分钟,二面就来了。
二面过了十分钟,三面就来了。
百度的效率挺高的,以前投了一些公司的简历,都是要等一周左右才有反应,我投了百度的第2天还是第3天就来电话了,然后直接当天面完,第二天就发offer。百度问的问题确定难度也不大,不过也要回答的深入才行。最后给的是搜索部门的offer。
开始我以为是一面,结果不是。
大概就只记得这些了。。。。说实话,腾讯的面试官是我遇到的所有面试官里面最nice的,对人的态度以及各方面都很棒。
其实对于这次春招而言,大部分的时间都处于等待中,除此之外也没有什么特别的感受,总之还是需要自己平时多积累,到了春招或者秋招的时候才会有条不紊,收割自己想要的offer。