前言



今年春招对于应届生简直是天崩开局,就像LOL打排位一上来 打野忘记带惩戒,开局红buff把打野、ADC、辅助三杀送回家一样 。说是互联网寒冬,今年可能就是严冬了,又伴随着疫情的打击,经济大环境变差。很多小公司不招人,中大型公司减招。



也怪自己去年没有注意到秋招的重要性,没有注意到秋招的重要性,没有注意秋招的重要性!春招的机会对于秋招简直太少,现在还跟舍友吐槽说 “去年我们是*吧,没有好好准备参加秋招”。如果能穿越回去,我真想扇自己两耳光,大骂自己一顿。当然这也让我学会了,换一种状态一定要好好看看攻略,提前知道什么是最重要的**。



春招最重要的



1. 学校



别幻想了,学校就是最重要的。这是一个你我都没法改变的,我是双非,深知道这一点是多么重要。但是学校是你进入面试后最容易去通过技术弥补的,前提是你进入面试后。我一般进入大厂面试 基本都是(就一个蘑**,最后还发了感谢信) 通过笔试较好,才给的面试机会。我投递了很多内推的(免笔试的),都被刷掉了。举几个例子:




  1. 心动网络笔试,三道算法题,毫不夸张说这是我十几场笔试中算法题第二难的(综合体量和难度第二,第一个等会就说),我三道全A了...硬是面试资格都没有


  2. 美团笔试,五道算法题,我过了291%(前两道100%+第三道91%)。打听到一个985的A了36%(前两道18%),他第二天就约了面试,我等了三天... 当然我不否认他简历比我出色,但是确实学校非常重要。美团面经戳这里



2. 基本技能



你要清楚你是一个刚毕业的菜鸡,他们更想看到你的可培养性,你的基础行不行。我个人认为重要程度可以分为以下几级:





  1. 计算机网络、操作系统、jdk源码、算法



    操作系统对于后端面试是很重要的,从 调调 那里了解到对于前端可能并没有那么的重要。





  2. JVM相关知识、数据库相关、中间件相关





  3. 框架知识、设计模式、智力题、场景题



    设计模式可以着重看一下:单例模式代理模式(动态代理的两种实现)、工厂模式、原型模式、策略模式、建筑者模式、享元模式、观察者模式等。



    智力题有些厂会问,例如64匹马8个跑道,最少多少次能找到跑的最快的前4匹。





解释一下,我没有用过很多其他的框架,在别人的面经里面有看到过但是确实没有去了解太多,本文就不去论述了,以免产生不必要的误导。



当然,很多大厂更看重你的 算法水平,不仅仅笔试用到,面试也会有手撕代码(难度就是leetcode中等、简单,到困难就很少了),可以看我 光锥云的三场面经,问了我不下7个算法题,我都回答上来还不给我二面资格(爆粗口)...




ps:光锥云他们需要的是平台开发(IOS、安卓那些),我想找的是java后端开发,确实也不太合适,但是心态崩了。




a. 计算机网络、操作系统如何学?


如果你之前上课没好好听,或者没有去上课(对...),那你可以直接2倍速过一遍b站上面的王道考研,因为你是2倍速快点过的,所以你要记笔记。



image-20200416194408771



其中操作系统建议着重看一下这章:内存管理、进程相关、磁盘相关、CPU缓存那些。



计算机网络建议你多看一下:传输层(TCP、UDP问烂了的,而且王道考研的可能还不够,你仍然需要刷面经)、网络层、应用层(HTTP和HTTPS)。当然计算机网络,你可以多看看常问的协议,对于一些不太问的就可以跳过了



b. jdk源码如何学?


读源码, 当然你需要有针对性地读,你不可能把每一个类都看一下。这就需要你去 刷面经,如果遇到不会的,你可以先百度再去自己看一下源码



想一下,如果面试官问你:谈一下你对ThreadLocal的认识?



你说:“我之前有阅读这个类的源码,里面维持实际上是同一个线程共享的ThreadLocalMap类,而且这个类竟然采用开放地址法解决冲突的,我当时都源码的时候还在想为什么会用这种方法解决冲突....而且还有个内部类Entry,这里竟然用到了虚引用...”



再配合你英俊的面庞,以及对知识的渴望和表现出来的那种求知若渴的表请,是多么让面试官恨不得对你说 “停停停,够多了...”



哦对了,像syschronized关键字没有源码,你可以去b站上面搜那些辅导机构的课程。他们讲解的比某些博客上面讲解的靠谱多了。



c. JVM如何学?


非常推荐买一本周志明的神书:《深入理解Java虚拟机》,然后看一下 第二第三章,多去刷点面经JVM的基础就有了。当然,不太推荐你去看网上一些博客,反正我看的云里雾里的,而且你看多了会不太敢去信那些文章,因为里面不乏有笔者的手误或者理解上面的偏差。这就好比你看我这个文章仍然会抱有笔者是个不如我的笨蛋,这种想法。



d. 数据库与缓存中间件如何学?


我使用的数据库是 Mysql,缓存中间件仅指 redis。这个我个人认为没有太多好的学习方案,刷面经做总结,看视频我都用上了。我个人还没找到很好的准备方案,不赘述了。这里给个不错的网站针对java的面试的,里面还有redis和mysql相关的面试内容:https://snailclimb.gitee.io/javaguide/



3. 项目



你写到简历上的项目得很清楚,写上去的 技术点,用的啥,为啥用,底层实现 等等。当然对于你自己的简历你需要简单包装美化一下,尽量写一些项目上面用到的技术点,解决了什么问题,达到了什么成果。



例如我简历里面有一句被问到了好几次的话:独立编写多种相似度算法(之前直接写了算法名称,投了几次后觉得太长了删掉了)完成拍照搜题功能,通过优化算和数据库将请求时间从25s减少到1.5s;



对于你写上去的话 一定要 把涉及到的技术点准备充分,比如上述这句话,我需要准备 用的哪些相似算法,拍照搜题功能的流程简述,怎么优化的算法,怎么优化的数据库。而最重要的应该是 怎么优化数据库。这里就涉及到数据库的 索引,那知识点就可能会有:索引分类、索引的底层实现、为什么使用B+树作为索引底层实现、索引失效的情况、怎么检查慢查询等等;可能还会有表结构,表字段优化;分库分表的优化;sql语句的优化等...



你既然敢聊数据库,那有些面试官可能就会问你数据库其他的知识点,比如说 事务 相关的,事务的四大特性,解释一下四大特性是什么,隔离级别的分类解决了什么问题,MVCC怎么实现的...



你看,就因为你写上去的一句话就可能会被问到这么多东西,所以一定要好好好准备你卸载简历上面的内容。并且学会引导面试官到你擅长的领域 ,(特别注意,三**娱一面面试官你会什么他不问你什么,你说你不会的他偏问...)



之前某中大厂的一面面试官问了一个让我深思的问题:你觉得你技术上面哪些能让我问的?哪些你最熟悉? 同学们,你有什么可以拿出来的让面试官问你的技术领域。我当时反正没回答好这个问题,在他问了我三遍后,我说我读过JDK的源码,并给他说了我读的哪些。最后我拿到了这个OFFER...不过,后来我又拒掉了。



4. 心态



这一部分还是放在这里说吧,春招我个人简历我更新了40多遍,几乎所有的大厂我都投递了一遍(有的甚至内推一遍,牛客一遍...),2月初我就开始准备,春招的第一次给了数秦科技(我有leader的微信,你们要投递的话可以找我...)被虐的体无完肤,面试官问操作系统内存管理说一下,我:不知道....



从那开始我就开始了11 11 7的日子,也正巧那段时间因为疫情原因妈妈没上班还有人做饭,妈妈上班后就开始我做饭了...



二月中下旬我就已经投递了大部分公司,没有回音,我一度以为我可能找不到工作了,就去boss和拉钩上面挑着小公司投递,希望能得到一个面试机会...那段时间舍友调调(这个牛逼的让人嫉妒的前端工程师)已经面试字节、欢聚时代、亿联等大厂,这更让我心慌。最后当他拿到亿联offer并再调薪后拒绝后我还没有面试机会,当时有那么一句话每当想起来都会心安一些(后来,调调不太顺利了我就这样安慰他):



虽然春招很难,虽然我还没有面试机会,但是我现在唯一能做的就是好好复习,好好准备它,只有这样以后有机会了才不会抓不住。



 而且我始终相信,这个行业是看重技术的,而非在本文中提到的最重要的第一位学校。



对了,你可以找几个朋友及时分享一下你的春招,这样起码让你知道其他人的进度,还有找到在你坚持不下去的时候的宣泄口,当然最重要的是技术上面的成长。我跟 老高 在面试之后经常会打电话与对方分享碰到的问题。



放点干货



面经、笔经、工作(内推)机会:牛客网(如果你是小白很迷茫就去牛客网吧)



免费教学视频网站:B站



招聘信息投递:牛客网、Boss(听别人说工作日9-10点投递更好)、拉钩(一天投几十个)、各大官网....



最后放一张我还没有完成的技术点脑图:



图片说明



哦,对了我还有很多笔记,记得关注我。