双非硕士的春招秋招经验总结——对校招,复习以及面试心态的理解

2019年自己的秋招总结,回馈牛客。

你能阅读到:

  • 一个双非从18年3月春招开始,一路被虐到怀疑人生(春招实习面试全挂),直到9月份面试较为顺利,拿到一些offer期间的心路历程和复习总结。
  • 对企业究竟需要什么样的应届生的理解
  • 对怎样复习校招的理解
  • 我们在面试时应该有的心态

本文主要内容:

@[toc]

心路历程和背景

本人双非学校计算机专业硕士,2019年应届生。

自己真正开始想要找工作或者说准备找工作已经是2018年3月份了,那时春招实习招聘已经开始了,我也被赶鸭子上架,投递了很多公司的实习岗位。

我之前做的项目都是关于数据处理的和Python后台的,Python写的比较多,其他语言都比较薄弱,并且由于常年不写,无论是基础还是编码都很生疏了。所以我春招主要投递的岗位是Python岗位和数据分析岗位,当时也是完全没做功课,自己觉得这个岗位可能比较适合我,就选了这个方向。

由于完全没经验+没有系统准备,我的春招可以说是从头到尾一败涂地,没有一家公司到达HR面,全都挂在了一面或者二面,并且严重打击了自信心,让我不断怀疑自己是否能找到工作。(现在牛客讨论区也有很多很负能量的帖子,我只想说,这么多个月,我的心态一直和大家一样。)

最终,在六月份的最后几天,我才收到一个暑期实习offer,去了一家企业实习,名称我就不透露了,严格来说并不是纯互联网企业。

就这样,我的春招结束了,从这期间直到秋招拿到offer前,我都处于一种毫无自信的状态。但是好在我们都是不服输的人,虽然没有自信,但绝不会逃避学习,所以这半年也一直在断断续续的复习

所以3月份到9月份,随着我的复习情况,我做了一个重要的决定,专攻Java后台岗位,这个决定并不是脑子一热决定的,也是在充分考虑以前的基础上做的决定,具体的考虑会在下面“岗位选择”中提到。

在7,8月份的实习期,我一边完成公司的任务,一边继续复习基础知识和算法,准备迎接秋招的来临。秋招从7月份的提前批就开始了,我准备了个excel表格,把自己报名过的企业都做了详细的记录。

提前批,现在回想来,就是神仙打架,牛客网的讨论区在7月8月都是各种大佬的BAT大厂offer比较贴。我在提前批也面试了一些公司,比如头条,腾讯,网易等,依然和春招一样,面试的比较艰难,各种挂挂挂,就这样挂到了秋招的9月份。

9月份,仿佛受到了杨超越的眷顾,亦或者是秋招和提前批的难度差距比较大,我感受到了意外的顺利。国庆前,加上之前实习的转正offer,也收到了4份offer(有提前批的),当然,并不是batjmd这种量级的。由于还没有正式签三方,这里我也不想透露出公司名字,但可以肯定的是,这些企业都是211、985的学生会去的企业,我能有幸和比我厉害的同学们共事,已经很满足了。

下面就是这半年,自己的总结和感想。

校招知识储备

岗位选择

校园招聘的需求来看,可以笼统的概括为以下几个方向:(个人总结,仅供参考)

  • 后台开发
  • 前端开发
  • 机器学习/AI/算法
  • 测试
  • 嵌入式
  • 安全方向
  • 其它

岗位的选择是个非常重要的决定,他决定了你的复习方向,以及面试官综合考察你能力的方向。

并且,你之前的学习或者科研方向,并不一定能代表你熟悉的领域(当然,大部分情况下还是尽量符合你之前所学)。主要是因为企业需求和学校科研教学的严重脱节,导致了你的科研方向并不能准确地覆盖企业的要求,并不是因为你学习不够努力,所以不要灰心。

所以花时间在考虑方向上是非常有必要的,如果走了弯路(比如我之前春招选择了我其实并不熟悉的数据分析岗位),浪费的时间是非常多的。

上面说到,我一开始春招投递的Python/数据分析岗位,现在来看,一来是纯Python后台开发的岗位比较少(相比于Java,c来说),竞争会比较激烈。二来是数据分析岗位以机器学习基础知识为主,Python只是一个需要会使用的工具。而我并不擅长机器学习这套技术栈。

考虑到我自己最熟悉的个人项目是一个后台开发项目,虽然用的是Python的一套后台框架,但是根本上还是后台方向为主,所以最终决定选择后台开发岗位。加上后台主要以Java为主,所以自己选择了Java后台开发。

项目与实习

实习是不是必须的?是不是没有实习,找工作就会相当艰难?

这半年,每当面试被虐,我总会怪罪于自己没有一个很好的实习经历,确实,实习很重要,尤其是大厂实习,会对校招有很大帮助。

不过如果没有实习,并不代表没法找到大厂的工作,身边有很多大牛,包括牛客网讨论区很多大佬,都通过学校的项目和良好的面试表现拿到了大厂的offer。所以如果没有实习,不用过分焦虑。 把精力都花在复习上,你和有实习的同学的差距,其实没你想象的那么大。

需要写在简历上的项目应该是怎样的?

每人个都会有多个项目经验,但是最好不要一股脑都写,一来是有的面试官喜欢每个项目都详细问一问,但是你未必完全都记得住每个项目的所有细节,就很容易让面试官觉得你在简历上吹牛。二来是简历也会显得臃肿,让面试官不想细看。

我的简历不断修改,经历过好几个版本,上面的项目也是不断增减,现在我简历基本上只有一个后台项目还在上面,如果遇到和我科研项目相关的岗位(数据处理),我会把有科研项目的另一版简历用上。

我认为在项目的准备中最关键两点:

  • 符合岗位需求:如果是后台岗位,那么后台的项目最好,面试官也愿意问。比如,如果是某电商企业招聘,而你的项目是电商相关的后台项目,并且十分完善,涉及到电商系统的方方面面,那面试官肯定会十分的看重你。
  • 熟悉项目的细节:包括整体架构,难点,遇到过的问题。

基础知识:按岗位需求有针对性的复习

我最终选择的是后台开发,并且以Java为主。所以我的复习也以Java技术栈为主。半年来,我不断调整自己复习的方向,在这里也总结下我认为后台开发岗位重点需要复习的知识点:

  • Java:主要是基础知识点,并发,虚拟机,集合类。
  • 算法:排序、查找等基础算法,剑指offer原题(牛客网刷题),leetcode(做一些简单的练手)
  • Java框架:Spring,SSM,最常问的就是,Spring AOP了解吗?
  • 数据库:索引,Redis,事务
  • 计算机网络、Http
  • 操作系统
  • 大数据处理:这里指的是类似“给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?”这种题目。
  • 其它:Linux、网络安全等

这里强烈推荐一直看的校招资料整理:https://github.com/CyC2018/CS-Notes

可以自己整理一份笔记,以便自己时不时回顾知识点:

在这里插入图片描述

上面是我的笔记目录,部分内容已经发布在了我的专栏里(算是广告吧):

https://zhuanlan.zhihu.com/c_195927288

基础知识的复习是系统的,耗时的,如果基础很薄弱(和我一样),那么需要3个月甚至更长时间的投入,如果之前基础较好,看这些东西很轻松也很快,那么恭喜你,你的校招之路会比较顺利。

说完了一些关于复习的问题,下面就是实战的总结了。

笔试准备

线上笔试

当你做过几次在线笔试,你会发现,大部分在线笔试的重点就是选择题+编程题。有时会有一些开放的问答题。

最开始的时候,你会发现为什么时间总是不够,编程题为何总是不对,不要气馁,大家一开始都是这样。

给出几条经验教训的总结:

  • 选择题:刷牛客的选择题是一个选择,不过,牛客选择题的面实在是太广了,尤其是刚开始刷题,会觉得这都是什么奇奇怪怪的题目,什么方向都有,根本没法复习,然后深受打击,放弃复习。我的建议是,先系统复习我上面提到的那几类知识点,比如排序,一开始遇到排序的选择题,比如“以下哪个是快排了n次后可能的序列”,这种题目,茫茫多,如果你只理解了快排的意思,还是会觉得这题难,无从下手。所以先完全理解了快排,再看这题,就会比较轻松。选择题真的重在精。

  • 编程题

    • 提前在本地IDE准备好输入输出:包括多行输入和单行输入。牛客网的编译器会提供给大家这个模板。
    • 原题:很多时候会考剑指offer或者Leetcode原题,如果你看过,做过,那就轻松啦。
    • 不要紧张:我经常会看到只有20分钟,而我还有一题没写完,就慌得要命。其实不必如此,静下心来整理思路,有了思路,再加上熟练地编码,5分钟也能写完一题。
    • 其他注意:很多时候我们喜欢print答案,来骗一些分。我觉得最好不要这么做,因为我碰见很多公司会打印你的笔试代码,作为归档或者拿来问你,要是你这么写,不太好。

线下笔试

线下笔试我的经验也不多,做了几场下来,感觉都是考基础+编程题为主。然后最后会有一个问答的开放题,这种时候需要熟练记下项目,然后能画出结构图,写一写详细的细节。

面试准备

面试应该有的心态

这是我最想讲的一点,也是我写这篇文章的初衷。

最开始的3-6月份,我的面试经常十分的尴尬,常见的就是,基础问题被问住了,然后尴尬的冷场,或者是编程题,想了半天一句话都憋不出来,面试官也很失望。亦或者是,自己的项目,被问到了一些细节,我自己答的很模糊。

那时候总觉得面试为什么这么难,总有不会的问题,面试官总是问我不擅长的,为什么网上看别人的面经就是聊聊天,而我的就是手撕代码+猛问基础。

现在以面试官的立场,仔细想想,他们到底期待怎么样的面试和求职者。

  • 符合招聘的需求

    不得不承认,这是最重要的一点,什么叫符合需求?需要招聘电商系统的后台开发,而你的项目和技术栈就是电商项目还有后台技术栈,这叫完全符合需求。所以为什么很多人面试觉得老是被问基础,那就是并不完全符合用人需求,只能来多考考你的基础和积累,看你是否符合成为一个有潜质的培养对象。 想明白了这一点,我相信心态就会放平了,毕竟一个人不可能做到在对每个企业的应聘时都正好符合该企业的岗位需求。

  • 会讲故事

    面试官在校招期间,每天要面试无数个人,面对无数张面孔,如何能够打起精神,对面试者提起兴趣?当然是遇到一个有趣的灵魂(逃。所以,我们要会讲故事。

    什么时候能够讲故事呢?我的经验是,在项目里,或者在自我介绍里。比如说,你要会生动的描述你的项目,比如遇到的难题,当时怎么解决的,不要干巴巴的让人感觉像背书。在自我介绍里,你需要看面试官的情况来定,如果明显他不喜欢冗长的介绍,那么你的故事可能要稍微收敛一些,甚至不要讲,免得开局不利。

  • 会微笑

    保持微笑,是一个制胜法宝,相信我。你就算问的什么都不会,一脸萌新脸,也比苦瓜脸更有优势。

  • 问的基础未必会,但会挽救尴尬

    要懂得,被面试官问到不会的基础,是再正常不过的事,就算你觉得你复习的很好了,也还是会有角落里的知识点会没看过或者遗忘。一旦被问了不会,不要慌张,坦然说你不太熟悉,或者说一些想的起来的有关话题,面试官愿意听就说,不想听,你也不要强求。

  • 项目熟悉,给人感觉做过很多实际的工作

    项目,一定要好好准备,甚至要单独写一个笔记,记录你被问过的项目问题。总结几个项目中的难点,画一画项目结构图。

做到以上几点,你的面试体验会很好,面试官的体验也很好,面试官的体验一旦不错,你的分数就不会差,就算你基础问题不会的再多,也会有个还能看的过去的分数。就算你的面试官最后给你挂了,你也会有个平稳的心态,继续应对下一场面试。

说个题外话,我在面试网易的时候遇到一个神坑的面试官,甚至导致我秋招简历直接被刷,笔试都不给。详细请看,https://www.nowcoder.com/discuss/105565 。不过,一定要放平心态,因为面试也是个看运气的事情,碰到的面试官不同,面试体验会完全不同,也不要被一个面试官怼了就一蹶不振。就当自己运气差吧。

HR面/综合面/总监面:聊人生,谈理想

最后写一写综合面。大家也不要因为到了最后一面,面试就快要胜利了而过于紧张。

综合面主要就是谈一谈你的意向,看看你是否真的有意向进入这家公司,综合面也会聊技术,但更多的还是会问项目里的相关技术,考察一下你是否是个能够上手写代码的人。

所以,表明自己的强烈意愿是最重要的一点,你可以提前准备下,比如:你为什么看好这家公司,觉得自己能够为这家公司做些什么?在这家公司,你以后的职业规划等等。

总结

我的秋招也快要结束了,如果光看结果,其实非常的一般。不过,我认为最重要的还是过程,春招秋招带给我的,是一份宝贵的经历。从迷茫,痛苦,到平和,自信。包括这半年来,对于技术上面的收获。

并且,这半年的坚持,也让我静下心来,去仔细思考:我将来的路要怎么走?我的技术薄弱点在哪?

这都是在学校里,坐在实验室里不会去真正详细思考的事。

愿大家都能在秋招中有所收获,就算现在被秋招虐的精神崩溃,也不要气馁,再不济也还有明年春招对吧,机会永远都在,愿努力的人都能得到一个完美的结果。


最后是广告时间:

我的知乎专栏(笔试面试助攻专栏):https://zhuanlan.zhihu.com/c_195927288

我的Github:https://github.com/qqxx6661

我的博客:https://blog.csdn.net/qqxx6661