秋招总结 | 双非硕菜鸡Java选手要怎么卷才能有offer 精
一、写在前面
作为一个双非硕菜鸡, 别的菜鸡可能是大佬谦虚,我的菜鸡是真实的
, 从算法0基础,春招大厂面一个挂一个,到秋招基本技术面没挂过 (就京东提前批二面挂了,没问啥专业知识,问了一堆hr面的问题,其他的都走完终面了),虽然面试过了并不代表有意向(还要排序苦笑), 但起码有进步啊对吧。
大佬们各有各的nb,而我们菜的都很相似,无非是学历不咋地简历挂,算法太差笔试挂,专业知识深度广度都不够一面挂,一边看着大佬们集邮谈笑风生,一边看着自己在池子里泡着,或者压根没走到池子里就收到感谢信了。
我的秋招正式批投的很晚,9月才投了几个大厂,不是我不知道要早点儿投,是早了我真的菜真的不敢投,毕竟如果面评差了后面就很难被捞了,所以严格来说其实我的秋招还没完全结束,美团和字节的结果都没出,但是本来嘛能上岸的人就是有限的,也不要看了几篇大佬们上岸的文章,就觉得自己早晚也能上岸了,害,如果有进度了再更新吧。
二、背景介绍
学历:双非本硕(考研考的本校)
岗位:Java(我今天就要卷死在Java,打死不转岗)
基础:考研不考408,专业课都是本科学的了忘得差不多了,何况当时本来也只学了个皮毛
实习:暑期实习只拿了富途,但没去,所以无实习
项目:实验室的项目,虽然是真实项目但没太多技术含量,框架非常老,但面试依然有用
三、招聘历程
1.暑期实习
一直没啥紧张感,复习三天打鱼两天晒网,春招一塌糊涂,只拿了富途的暑期实习,大厂全军覆没,并且要么笔试没了要么一面没了...
前提 :我简历写得有问题,当时光想着过简历了,自己去了解了一些kafka啊dubbo啊就写在简历上了,结果可能春招的时候简历写了这些的比较少,导致我的几个大厂面试都是围绕这些问,连基础的八股文都不怎么问了,这很不好,因为我花费更多精力的专业基础知识没有面试官感兴趣,面试结果都不咋地。
2.秋招
投递了很多家公司,但是在收到滴滴的意向以后,拒了很多中小厂的笔试面试,只把重点放在了总部在北京的大厂上,但因为9月才投大厂,流程还没走完,目前有滴滴提前批和度小满正式批的意向,字节offer审批中,美团9.24三面完没出结果。
由于base只能是北京,就没做阿里和腾讯的笔试,腾讯不笔试也可以被捞,虽然没人捞我
这里提醒一下双非硕 :有的公司非常重视学历,包括但不限于拼多多、快手、华为、猿辅导、shopee,如果有双非的同学的心仪公司是以上几个,还是尽快换一下dream offer吧,这几个基本不会给机会的,笔试机会都不会有(至少我身边认识的双非没有去的)。
四、面经复盘
字节:
面试复盘 | 字节番茄小说一面(已通过)_笔经面经_牛客网 (nowcoder.com)
面试复盘 | 字节番茄小说二面(已通过)_笔经面经_牛客网 (nowcoder.com)
面试复盘 | 字节番茄小说三面(offer审批中)_笔经面经_牛客网 (nowcoder.com)
美团:
面试复盘 | 美团到店餐饮SaaS面经1、2、3面复盘_笔经面经_牛客网 (nowcoder.com)
京东:
京东提前批一面面经(44min)_笔经面经_牛客网 (nowcoder.com)
京东校招提前批二面面经(25min)_笔经面经_牛客网 (nowcoder.com)
面试复盘 | 京东正式批1、2面复盘_笔经面经_牛客网 (nowcoder.com)
滴滴:
滴滴Java一面面经(57min)_笔经面经_牛客网 (nowcoder.com)
滴滴二面(44min)_笔经面经_牛客网 (nowcoder.com)
滴滴三面(31min)_笔经面经_牛客网 (nowcoder.com)
度小满:
面试复盘 | 度小满123面(已意向)_笔经面经_牛客网 (nowcoder.com)
五、准备知识
1.推荐书籍
书中自有黄金屋,很多时候看八股看不明白,是因为没有一个清晰的知识体系,或者某部分讲的不够细致,其实一般有疑问的时候去搜一下文章,会发现很多都是抄的书上的。
以下推荐的书不一定都要看,时间不够可以只看重点的章节,或者自己疑问比较多的章节:
①算法类书籍
《漫画算法:小灰的算法之旅》 | 非常基础,几天就能看完,主要是培养一下看书的习惯
《程序源代码面试指南:IT名企算法与数据结构题目最优解》 | 非常经典但我没咋看,就把大数据和空间控制那一章看完了,受益匪浅
《labuladong的算法小抄》 | 给了很多模板,虽然我没咋记住,但是当你对某个算法思想感到头大的时候,看看他的模板和措辞会觉得好像都不是问题,对改善心态比较有用
《算法图解》 | 通俗易懂,讲了排序、递归、BFS、迪克斯特拉算法、贪心、动态规划、k最近邻算法、布隆过滤器等
②Java类书籍
《深入理解Java虚拟机》 | 超级推荐,这本书中的很多章节我反复看了很多遍,并做了笔记,对我的面试起到了非常大的帮助, 看的时候一定要自己多想,比如看到CMS垃圾回收器的第三个步骤是“重新标记”,而CMS的缺点有一条是无法处理“浮动垃圾”,我会想为什么明明有“重新标记”来修正“并发标记”期间发生变动的那部分记录,还会有“浮动垃圾”?
以下为我的部分笔记:
面试中经常用到,以下摘自面经: 面试复盘 | 字节番茄小说二面(已通过)_笔经面经_牛客网 (nowcoder.com)
《Java中并发编程的艺术》 | 只看了部分章节,但对我非常有用
以下摘自面经: 面试复盘 | 字节番茄小说一面(已通过)_笔经面经_牛客网 (nowcoder.com)
③MySQL相关书籍
《MySQL45讲》丁奇
《MySQL技术内幕:InnoDb存储引擎》
④Redis相关书籍
《Redis设计与实现》 | 完全不懂redis就去看目录可能一脸懵逼,但是其实是本很棒的书,尤其是底层数据结构和redis集群的部分讲的非常细致,不用全看,基本每一章都是总分的结构,看到自己觉得够用就可以看下一个知识点了
2.算法
如果是跟我一样零基础,建议先按知识点来刷题,尽量每一种类型都刷个几十个,按照出现频率排序,能够对算法思想有个大概的了解:①数组 ②链表 ③二叉树 ④动态规划 ⑤贪心 ⑥回溯+剪枝 ⑦DFS | BFS ⑧并查集 ⑨单调栈 ⑩双指针.......
如果你还有一年或者更长的时间准备,最好养成写题解的习惯,可以把题解更新到csdn博客里,写在简历上也会有加分的,美团一二面的面试官都去看了我的博客,虽然我只在去年更新了几十篇题解,依然是有帮助的。
算法重在坚持,虽然我自己只在8~9月坚持了,但要清楚所有面试前的准备里,算法是最耗时的,就想考研的数一一样,是最耗精力的无法速成的一项,千万别等到最后,就算什么都不想复习也一定要刷题。
以下为我的提交日历,提醒一下不要某一天的提交次数特别高,这个颜色是按你单日最高提交次数来的,我就因为有一天提交了22次,自己把自己给卷死了,本来一篇都是深绿色,结果提交了22次后颜色分水岭改了...被自己卷到了。
3.项目
前面说了我的两个项目虽然是真实项目但没太多技术含量,框架非常老,即使这样也非常有用,其实面试官也清楚在校生做的真实项目大概率涉及不到高并发之类的,难度也不会特别大,但是其实自己把项目的架构搞透了,数据库设计搞明白,怎么优化想一下,大多就能达到项目这个方面及格的水平了,我当时由于项目太简单,考虑过自己做一个,但是从时间的角度来说,我把这个精力放到专业知识和算法上可能性价比更高,就没有做。
4.必备专业知识
操作系统 | 问的不算多,都是些常规问题(内存管理、虚拟内存、各种调度算法等),加上linux的常用命令等
Java基础 | 比如:8大基本数据类型、String不可变的好处、访问修饰符、final关键字、static关键字、面向对象、封装继承多态、抽象类和接口、重写和重载、==和equals()、包装类
Java集合 | 这部分非常重要,对于技术栈是Java的公司来说几乎必问,也是看源码性价比最高的部分,比如:Java集合有哪些、哪些是线程安全的、各种list各种set、hashmap的put过程、扩容过程、为什么hashmap默认容量为16、为什么负载因子为0.75f、为什么容量是2的幂次方、concurrenthashmap怎么保证线程安全...
JVM | 比如:运行时数据区、类加载过程、new一个对象过程、双亲委派、垃圾回收、JMM(由此引出并发编程相关的volatile、synchronized等)
并发编程 | 线程安全、实现线程安全的方案、如何创建线程、线程池有哪几种、创建线程池的参数、lock接口和实现类、AQS队列同步器、cas的aba问题、volatile、synchronized、ThreadLoval、并发工具类等
计算机网络 | tcp和udp、五层模型、三次握手四次挥手、拥塞控制、流量控制、键入url到网页显示发生了什么、http和https、对称加密和非对称加密、get和post、session和cookie等
MySQL | 三大范式、存储引擎、索引、最左匹配原则、间隙锁、事务隔离级别、MVCC、事务、一条sql执行的慢的原因和优化、慢查询日志、分库分表等
Redis | 底层数据结构、跳表、aof和rdb、缓存雪崩、缓存穿透、缓存击穿、redis集群、一致性哈希、分布式锁、分布式session等
Spring | spring中用到了哪些设计模式、bean的生命周期、ioc控制反转、aop面向切面编程、动态代理、spring怎么解决循环依赖、注解等
智力题 | 比如经典的赛马问题、1000瓶药需要几只老鼠才能找出毒药等
5.加分项
mq消息队列:kafka、rocketmq
rpc远程过程调用:dubbo
负载均衡:nginx
版本控制:git
容器:docker
六、写在最后
1.看书或技术文章比单纯的八股有用
八股文更多是给你一个方向,让你知道复习大纲,不是让你只学这些的
技术文章往往会针对某一个知识点深入,方便拓展深度
书籍需要的时间长一些,但能给你一个完整的知识体系,推荐书籍见上
2.写简历真的很多门道
建议把技术栈和项目经历/实习经历占较大篇幅,技术栈可以在大方向后面跟几个具体的点(前提是这些你都必须很熟悉,否则就是给自己挖坑)
注意措辞,对什么是熟悉,什么是有初步了解
自己只去了解了一丢丢的千万不要写,我的春招惨痛经历足够说明了...虽然我只在最底下写了kafka和dubbo这些,并且只写了了解,但是导致我的几个大厂面试都是围绕这些问,连基础的八股文都不怎么问了,特别是京东春招整整面了我1个半小时,只问了消息队列,最后一边说着“我看你笔试做的非常好啊,你分数很高,特别是xx题我看了你的代码是最简洁,思想也很好,我给你出个简单题吧”,然后反手给我了一个没做过的hard题[保持微笑]
3.心态和状态
招聘的过程中,一定有大佬比你更早拿到offer,如果是卷Java的,那你一定会碰到身边本来一起卷Java的小伙伴转岗去了客户端或者测开等等,然后纷纷拿到offer...这个时候说内心毫无波动也不现实,但是快速的转变心态,把精力放到复习上才是正道。
关于实习,有大厂暑期实习当然好,如果没有大厂暑期实习,可以考虑能转正的大厂日常实习,或者就不实习,但是要清楚你不实习就要把别人实习的而时间花在复习上,去拓专业知识的深度。同样的,如果你选择了实习,也要考虑到如果无法转正的后路,同时要考虑到在你实习的时候,其他人在刷算法题看源码,能够边实习边秋招的同学我是很敬佩的,实习本身就很累了,可能你要在楼梯间或者空闲会议室面试,要在实习下班回家刷算法题...
秋招的过程还是挺考验心态的,他不像高考或者考研,大家都是同一个时间考试,同样的卷子,面试是个玄学,他不止跟你的学历和能力有关,可能你面试过了但是没hc了,可能你跟面试官不对付,别人算法题都是easy和mid,你回回hard,也可能你的部门被优化没了...建议面完了就当没这回事,继续去准备下一场面试,让自己忙碌起来就没空想这想那的了,拿到意向之前都当自己拿不到offer,真有进度会有人联系你的,哪怕是感谢信呢。
4.进度表和面经复盘
建议自己搞个表格,记录一下投递时间,笔试面试时间,当前走到了什么进度
拿到offer的写面经容易,如果是写面经前就知道自己挂了,确实很难提起兴趣复盘,但是复盘是非常有必要的,是最最关键的查缺补漏的环节,如果是电话面建议开启手机通话录音,如果是视频面建议下个软件录制面试官的话,尽量在面试结果出来前就写面经,以免影响复盘心态。
5.秋招进度把握
一定要把握好每个公司的投递时间,尽量在中期投递,如果前期就准备充分当然越早投递越好,如果没准备好,也必须清楚越往后hc越少,一定要保证每晚一天都要有一天的价值,学的比平均水平多一点才算没白浪费一天。投的越早,准备的相对不充分,大厂都是有面评的,一次很差的面评可能后面就不容易被捞起来了,机会就这么用完了;投的越晚,坑都让人占了,没准你很棒但是压根没hc了,走完流程你也只能进池子,把握好两者之间的关系。
此处我是个反面案例,目前的俩意向都是78月投递的,大厂都是8月底9月上旬投递的,说实话有点儿太晚了,虽然都走到终面了但都还没意向,正常的流程时间都走不大完,尤其是9月有一个中秋假期,10月又有一个国庆假期,很多面试官会在这两个假期前后请假,要比别人多等很长时间,而等面试结果都是比较煎熬的嘛
6.面试的一点技巧
面试前可以从牛客找近期的面经,大概十来篇,然后按照知识点整理出来,再在这个基础上复习,从面经里可以清晰地看出来该公司的技术栈、重视的知识点等,亲测有效,面试通过率很高,靠着这种复习方式,我秋招技术面都走到了技术终面,不管最后有没有意向,起码走完流程了,能积攒的经历都积攒了。
即便是同样的八股问题,不同的人回答的也不一样,此处看的书就能发挥很大的作用了,比如同样问一个volatile关键字,别人可能说可见性和禁止指令重排,但是你可以在这个基础上加上自己看的书,比如加上《深入理解Java虚拟机》中JMM的部分,详细说了JMM对volatile的特殊规则,还可以说上JMM是围绕原子性、可见性和有序性来的,volatile占了后两样,其中可见性是通过内存屏障实现的(此处可以说一下volatile反汇编后的指令,lock前缀+一个将esp寄存器加零的空操作),有序性是通过什么实现的等,下图为我复习美团面经时整理的俩题的相关知识点:
另外我这边整理最新的java面试资料,戳此传送门 ,即可领取到
许愿能拿到字节offer,结束秋招,祝看到这篇文章的你们都能秋招顺利!
一起学习java 一起让光明照进黑暗