好多同学qq上希望我分享一下面经,我觉得牛客面经已经足够多了,题目也大同小异,我分享出来也对大家没什么太大的帮助。

所以聊聊我的面试经验吧!

其实就算面经上问题你全部答上来,也不一定录用。

反之,

就算50%答错,也有可能录用,为什么呢?想知道答案就读下去吧。

楼主双非二本本科,从实习生招聘到现在秋招提前批面试通过率100%,字节、网易雷火都是一次过。

以下所有感悟均为个人总结,

或许语气较为犀利,因为甜萌的语气不会带来持久深刻的印象。

另外说我秀优越的也省省吧,否则我根本没必要花精力分享这些事情。牛客大神诸多,你要是觉得一个二本都能把优越秀起来,那你对优越的定义也太低了。

某些整天抱怨自己学校的同学,该换换思路了。现在这个时代,只要你能抓住,机会多的是。

那有同学说,我双非简历都过不去啊,机会在哪?

简历过不去,

学校只是一部分因素,

最多具有30%到50%的比重,所以就算你学校再差,你可以拿到剩下50%分数呀。

据我所知,

大部分简历被筛的同学,剩下50%分数也基本是0,双非学校甚至是他简历上唯一值点分的东西,至少证明了他是个大学生。

你学校不好,竞赛不打,项目随便网上找的,甚至连为什么用这个组件都不知道,数据结构、计网、操作系统只知道各种名词,为什么要通过你的简历?

所以关于简历,已经给过机会了,建议大家好好打磨一下,写一份好的简历比你多刷几道剑指offer有用多了。

简历怎么写好呢?我们来一步步分析。

我建议简历只有

个人信息、教育信息、竞赛、实习、技能、项目这几个栏目,什么自我评价学校经历省省吧,你正直勇敢坚毅、学生会***、运动健将跟写代码有毛线关系。

个人信息:

没啥可说的,

姓名年龄家乡写清楚就可以了,身份证、照片这些私人信息尽量不要放。

有博客的话把博客放上去,但博客上一定要有原创内容,不是各种题解,是你对xx的看法、思考,能体现你能力的文章。

教育信息:

写清楚

学校、专业、毕业时间,如果专业不对口

可以稍微解释一下自己转行业的优势。如果研究生学校比本科学校好,可以不写本科学校,HR面的时候说清楚就可以了。

竞赛:

不要写充数的比赛,院级、校级或者三等奖参与奖这样的就算了,乒乓球篮球冠军也别写了。

acm无疑是加分最多的奖项,如果你有区域金银,大胆的放到简历最前面吧,没有任何一家企业敢轻易的挂掉你的简历。

如果没有acm经历,比如我,尽量写一些最终成绩比较抓眼的比赛,我只写了两个比赛,一个是国内某渣渣算法比赛的国赛一等,一个是某国际赛的二等奖。

那个渣渣比赛你们知道的,本科参加过的同学挺多的,我看到某些同学省赛三等奖优秀奖这种的还往上面写,你是在说嘿我不懂编程吗?

实习:

如果你有大厂实习经历,直接写上去吧,不用过多介绍,HR自然懂。

如果是在中小厂实习,我建议除了写基本信息,还要用最为简短的语句描述你实习期间做过的有价值的工作。

那会有人说,我做的事情都没价值啊,就是curd,其实只是你不会总结罢了。举个例子,curd你别写自己给公司又增加了几条sql,你可以说通过合并、拆分查询语句给产品带来了怎样的性能优化,减少了多少查询时间。

技能:

不要堆积名词,不要抄官网的岗位描述,你抄描述跟以前英语考试写作文时,抄前面阅读理解有个啥区别?

你说你精通c语言,可以写精通,这个无可厚非,但你接下来,要用简短的话证明你精通,如果证明不了就换个描述词吧。

不要写上一句掌握xxx就完了,你掌握的啥玩意啊……你写上掌握cpp,那么阅读过stl吗?使用过新特性吗?对内存模型了解吗?编译过程又知道多少?

我建议写掌握xxx这样的语句时,后面增加这样一些更细的补充,这样更具有说服力。

(1) 熟悉c 基础,阅读过stl的一些实现源码,了解c 11新特性,了解对象模型,对内存管理有一定思考。

(2) 熟悉c 、java、python、shell、sql( ????? )

如果你是hr,碰到这两种写法,哪一种更能体现同学的能力呢?答案毋庸置疑吧。

另外什么熟悉ps、codeblocks、vs啥的……你写上这些只能让hr觉得你在写废话,没有什么正经内容可写了。

你都投研发岗了,掌握工具是必然的事情,这需要口头说出来嘛?

如果你希望进大厂,这部分尤其重要。

培训班、网课之类的项目不是不能写。。但是你写了个用了哪些技术算哪回事?springboot、hibernate确实牛逼,但我寻思这些框架也不是你写的啊。。你是为了表达自己,会用?

其实你可以写写自己对项目的思考,以及作出的改进,这才是HR和面试官关注的问题。

另外,但凡你敢写上简历的项目,你要保证自己对这个项目的细节了解完爆面试官。

我的简历上写了两大类项目:

(1) 轮子:底层网络库 >> http服务器 >> 博客系统

(2) 某单机游戏

写第一类项目我是想体现,我的博客能够被你们访问,除了操作系统以外的任何轮子,都是我自己实现的。优化好不好另说,至少不是demo,能够在不使用Apache、nginx这些组件时稳定运行。

这类项目我隐含的意思是:我对服务端的理解从底层跨越到应用层,而且我具备一定的代码实现、数据结构设计能力。而不是会用什么工具,掌握什么工具。

写第二类项目我想体现:我有过编写几万行逻辑代码的经历,

所以除了编写代码,

我具备一定的业务能力。

所以如果不知道准备什么项目的话,我建议是自造轮子 稳定产品,项目经历不是速成的,需要你用很长一段时间去积累、去打磨。

我的这两类项目,第一类用了整个大三,第二类从高中到大三用了六年。

简历关过了,就是最为重要的面试了。啊……不是还有笔试来着……

绝大部分公司的笔试只是刷掉那些乱投的同学,你只要参加笔试,不至于爆0,基本上都算是过的。如果没过,请再次检查自己的简历。

好了再次到面试,我经历的面试有两种模式:

(1) 一问一答

(2) 主动出击

第一种模式需要你有过硬的专业基础,能够做到对答如流,如果你有更深的理解,也要讲出来,这才是面试官真正期待的内容。

比如面试官问你线程进程区别,你对课本定义倒背如流,最后在牛客发帖说自己面试贼棒被挂了。因为面试官最后发现,你除了背定义,似乎也没啥亮点。

这个问题如果是我我会先讲一遍定义,然后再从操作系统的角度去讲进程、线程的实现,从实现角度去讲二者的区别。如果面试官这时候没有喊停,我会继续从内核pcb讲到地址空间,这样才能最为清楚的说清楚二者关系。

进程是程序执行过程,线程是一个执行流……你说你要这样解释,谁能知道到底有啥区别。

碰到不会的,别歪着头在那想半天,直接说:不好意思,这类知识我没接触过。

你思考半天的样子,只会让面试官觉得你掌握不牢靠。(看样子这小子会啊,咋想这么久)

你直接说不懂,面试官会理解的,一般会问你别的方向。

面试不是考试,不会因为你不懂一类领域就立刻扣你分,面试官并不想知道你的知识领域有多广泛,只想知道在你熟悉的领域里,你能到达什么深度。

第一种模式对个人实力要求较高,估计能在那种模式下活下来的同学不多,这时候就需要我们切换到第二种模式。怎么切换呢?

一开始总有自我介绍吧?(宇宙条是真没有,主动自我介绍都被喊停了)

你可以在介绍完个人基本情况后,说一下自己的技术亮点,如果面试官感兴趣,就会让你继续说下去,说着说着,你的面试评价不就又增加几条加分项么?

一般碰到一个比较友善的面试官,我自我介绍完面试也就结束了……这是真的,因为在我主动讲自己所学、所思的时候,会穿插各种专业基础知识,面试官也会主动问一些,所以当我讲完的时候,面试官会发现他想问的问题我都

主动说了,实在没啥可问的了,只能问问我还有啥问题没有。所以,

一旦切换到主动模式,你要保证自己能讲30分钟以上,而且这30分钟要一路高能干货不断,别让面试官以为你在拖延时间。

一般情况下都会有手撕代码环节,简单的几分钟搞定那种,直接写完就行了。

对于思路不太清晰的,一定要一边写一边和面试官交流,告诉他现在你在做什么。这样就算最后你没写出来,面试官也知道了你的思考过程,对你的思考能力有了一定了解,这个也是会写到面试评价里面的。

碰到不会的你就闷着头写,写了半小时还gg了,面试官在这半小时什么信息都没获得到,你觉得还能给你过吗?或者你指望面试官主动跟踪view你的代码进度?别天真了……你现在自己都逻辑混乱,面试官只会觉得更乱。

完~ 祝大家早日收到理想的offer