秋招总结 | 四非本科+非科班的Java秋招经历
我个人的秋招目前已经接近结束,一直受到了牛客社区的帮助,想回馈一下社区。
首先记录一下我个人秋招的情况
简历挂
- soul、哈啰出行、拼多多、小红书、oppo、快手
笔试挂/笔试后无消息
- 字节跳动、bilibili、有赞、老虎证券、Zoom、便利蜂、SHEIN、茄子科技、网易游戏、网易互联网、京东、度小满、有赞、GrowingIO、360
一面挂
- 趋势科技、奇安信
二面挂
- 滴滴、美团、用友
三面挂
- 百度
意向
- 小米、携程、东方财富、招银、浙江大华
还有转转面完了一直在等结果。此外还有一些公司投递之后无任何反馈信息,这类公司不少,就不再次单独记录了。
从手里的offer来看,大家就能知道我并不是什么大佬,能手握bat随便选的那种。所以我下面的所有观点都只是一些想法,算不上建议或者学习路径,因为我不是事实意义上的成功者,没什么资格给大家提什么建议。
背景
这个之所以放在第一点讲,是因为大家经常会忽视发帖人本身的情况而盲目自信/自卑,或者有大佬太谦虚以至于大家不清楚自己和人家的差距。比如发帖人自称的双非可能是中科院、杭电、重邮这类的学校,211也可能是北邮之类的学校。没有事实错误,只是同一类的牌子下不同学校的区分也是非常大的。
所以我首先说一下我自己的bg:双非一本(学校即使高招生分数线几十分,但是至今无博士点及保研资格,所以这么说大家能知道我们学校的一个层次定位了)、非科班(非通信/自动化/电子类专业,甚至不是工科专业,而是理科专业),从6月开始放弃考研,准备找工作,9月收获第一个offer。
单独说明一下:
- 我是不是双非本科、非科班(是)
- 我是不是6月开始准备找工、9月收到第一个offer(是)
- 我是不是双非本科、非科班6月零基础准备找工,9月上岸(不是)
我不是一个典型的非科班选手,典型的非科班选手可能之前并未过多接触过编程,对计算机的基础知识完全零认识。但是我之前自学过Java、操作系统、计网等。看过操作系统、计网等科目的教科书,也看过诸如csapp、计算机网络自顶向下方法等经典教材。加入过软工学院实验室,参与过校企合作项目开发。但是无实习、无竞赛。
考研or找工作
在我上面的介绍中,大家也发现了我是考研到五六月然后放弃考研,开始找工作的,所以在这个问题上我有过一些思考,给后面的同学一点我的想法。
- 首先是要梳理一下自己的职业规划和行业要求。比如如果是医、法这类行业对学校/学历有着强要求的专业,完全不用思考,必须考。或者可能有人想在北上广等一线城市落户,那有的城市有积分落户政策,研究生落户比本科生难度低,这种也是可以考虑读研的。再比如有人将来想从事算法类工作,那读研基本上可以说是完全必要的。所以我的看法是:如果研究生学历是达到我们将来目标中不可获取的一环,那读研应该是一种十分必要的手段和阶段。
- 对比不要有时间差。我们常拿自己本科毕业和如果研究生毕业对比,从而认为读研可以有更好的发展,这种对比从社会整体的角度/公司招聘的角度来看是没有问题的,但是落实在个人身上有时间差,我个人认为正确的对比应该是本科毕业两三年 和 研究生毕业对比,本科毕业两三年会不会比自己研究生毕业有更多的行业选择(这里只强调互联网行业,考公/进国企/选调不在此类的讨论范围内,因为我个人不是很偏向非互联网行业)
- 两者的quit成本。就目前国内的研究生选拔/培养而言,考研无论是选校,还是选导师都有不小的风险。如果遇到比较难接受的导师,可能会对自己的研究生生涯带来比较大的消极影响。那就考虑进了一家坑公司的quit成本和入学之后quit的成本,哪个更高,哪个更能接受。
- 年龄优势。这一点是针对我个人而言的,相当一部分人可能并不具备这一优势。因为我目前还未满20周岁,所以即使我工作两三年后发现研究生学历是我未来发展不可获取的一环,然后去考研读研,年龄可能和毕业后直接读研的同学年龄上是差不多的。
简历&项目
我个人使用的是超级简历网站的模板,简历制作我个人认为简单、清晰是最重要的。个人的教育经历、项目经历、技术栈、获奖状况要写清,其他好像没什么要特别注意的事情了。
项目的话我有三个项目:实验室的校企合作项目、牛客社区论坛、RPC框架。
重点要对自己项目的流程要清楚,自己项目中遇到了哪些问题,这些问题是怎么解决的,为什么这样解决,每种解决方案有哪些优劣势。
包括为什么使用某项技术,这项技术使用的是哪方面,怎么使用都要考虑一下。
投递
提前批集中在7~8月,之后是秋招正式批。往年的情况可能是正式批依然有不少hc,但是今年情况已经发生了变化,大头在提前批,9月份可能就已经比较困难了,所以提前批一定一定要参加(我是6月放弃考研,7、8月还有好多没看的所以没法投,因此大家一定要想好规划,不然会比较麻烦)。而且提前批很多公司可以免笔试,也是一个很大的优势。
投递的话我个人是主要在牛客上找内推,方法就是直接搜某公司名称,然后找到标热的帖子,看里面的投递方式,同时大家最好评论一下,不仅是帮内推人顶帖子,更是知道自己找谁内推的,后面方便查流程和状态。
算法
这一点可以说是重中之重了,如果想去还可以的公司不仅笔试的时候有算法,面试的时候也会让手撕算法。我个人主要是刷的leetcode HOT100 + 剑指offer + 牛客。我个人比较惭愧,一共才刷了200+题,虽然有的题刷过几遍,但是整体题量还是少,所以算法是我的一个很大的软肋,我笔试挂过很多家,面试至今倒还没有真正意义上翻车过。
知识准备
我个人准备的内容有:数据结构+算法、操作系统、计算机网络、Java基础、Java并发、JVM、MySQL、Redis等
我个人的学习方式更偏向于看书+博客,实操性很强的技术可能会考虑看视频入门上手。
数据结构+算法
- 《算法笔记》:这本书我个人认为很好。虽然里面的算法是使用C++实现的,但是主要使用的就是C++的STL,换成Java就是Java的集合类,思想相同。
操作系统
- 《深入理解计算机系统》:神书,阅读体验极佳,我可能只看了50~60%,并没有做配套的lab,也没做笔记,所以基本都忘完了,只记得当时读的挺高兴。
- 《计算机操作系统》:操作系统的教材,主要看看重点的几个章节就行
- 主要看进程、线程、内存管理、虚拟内存
计算机网络
- 《计算机网络自顶向下方法》:主要看前两层,写的很清楚,阅读体验很好。
- 《计算机网络》 谢希仁版:我就读过一遍,感觉书写的很清楚,虽然是教材,但是不错。
- 主要看应用层、传输层
Java基础
- 《Java核心卷一》:入门看的,记不太清楚了
- 集合类主要看的ArrayList、HashMap、ConcurrentHashMap。我个人是源码 + 博客
- 可以看看面向对象的三大特性、重载重写、抽象类和接口区别或者为什么要有这两个、访问限定符、static等
Java并发
- 《Java并发编程艺术》:我个人认为不错的书,看了这个很多知识都能有理解
- 主要看volatile、synchronized、锁升级优化、线程池、AQS及组件、Lock等
JVM
- 《深入理解Java虚拟机》:直接看这一本就够了,有不懂的直接搜相关博客就行。
- 主要看内存模型、对象创建过程、垃圾收集算法、垃圾收集器、类加载过程,此外还有OOM异常都有哪些情况,怎么解决等。
MySQL
- 《MySQL技术内幕:InnoDB存储引擎》:挑着看的
- 面试遇到问题或者看别人面经的问题不懂可以直接博客或者从书中找,看视频我觉得有点慢
- 主要看锁、事务及实现方式、MVCC、MySQL架构、执行一条SELECT/UPDATE语句的流程、分库分表、主从同步
Redis
- 《Redis深度历险》:可以用来补充自己对Redis使用场景的认识。
- 《Redis设计与实现》:阅读体验不错,深度对于我来说也够了
- 主要看Redis的数据结构、持久化、主从同步、哨兵、集群、内存淘汰策略、缓存雪崩/击穿/穿透
其他
- 项目中用到了Kafka,看了一点《Kafka权威指南》,有了一点简单了解,被问的不多
- RPC中用到了Netty,所以被问了几次。主要问了项目中使用的Netty版本、Netty怎么解决粘包问题、IO流程及组件等
- zookeeper主要问了怎么检测服务提供者是否掉线,掉线了客户端怎么感知。
杂谈
我自己刚开始找工作的还是有点焦虑和紧张的,毕竟是放弃考研来找工作,害怕最后找不到工作就完蛋了。但是也没办法只能move on,建议大家找工作也别太焦虑。还有就是要尝试一下用日常沟通的方式表达出我们学习的知识。转转二面的时候,面试官说她认为我分析和表达能力特别强,而且我也不止在面试过程中被肯定表达能力,所以我觉得大家做技术的,可能更专注于怎么做/写,对沟通/表达的重视程度不够。所以也要练习表达。
此外,建议大家投递简历的时候分好层次和各层次的投递数量。我自己面试过程中发现我的能力是比小厂的面试难度高的,但是一开始投了一堆小厂。应该是投递几个小厂试试水,如果都比较顺利就开始投递中厂,不要全投递一个层次的公司(全是大厂除外)。
我个人秋招成果不是很理想,但是是我在一连串的策略选择失误后能打出的最好的牌了,可能春招会再看看,看看是否还能再冲击冲击大厂。
目前能想到的方面就是这些了,后面如果还想到哪些方面可能会再更。
#我的秋招总结##Java##学习路径##书籍推荐#