25秋招小结以及心得

12.3 帖子恢复,删除所有链接, 以后不会再补

资料来源: 大家耳熟能详的网站 + Github搜关键字 + 各个大厂技术公众号 + B站视频打基础 + GPT等大模型辅助理解 + 对应知识去查找博客

================================手动分割========================================

先来个简单的自我介绍,双9科班,方向是Java语言后端开发,暑期在某Java大厂实习3个月,没转正,秋招卡着11月拿到了几家大厂(中厂反而都挂了),最后选择了鹅。之所以说BG,是因为如果你希望能拿到大厂offer,考虑到我的BG算是中上水平,那么你需要做得比我好,而不是仅仅达到基本要求。其实本质上就是实习数量 + 项目的含金量与系统设计能力和八股,都不能太掉链子。

对于刚刚大一、研一的新生,倒也不必要直接选择语言和方向,可以先建立计算机体系逻辑或者加入到学校的实验室/兴趣小组中,而不是直接落入到互联网民工中。回想到读研之前本科混了4年,我对互联网还只停留在算法、前后端开发、测试这几个方面,也不知道具体各个岗位都是负责什么内容,算法分为哪些方面,选择面无疑窄了很多,看到今年同门拿到大模型的天价总包也很是羡慕,所以如果你还有时间(即不是现在的大三、研二),都是可以考虑了解更多的方向找到你所热爱的。如果找不到或者学习之后发现不感兴趣怎么办?当然是回来看帖子的后续内容。并且现在的开发也不仅仅只是开发,很多研究生同学都是做算法的,对于涉及到算法的开发岗位也会有额外的加分。

扯淡结束,如果你是现在的大三、研二还是0准备的话,从现在开始也不晚,我和几个朋友的观点是,保证每天6h学习时间,1个月足以学完Java的绝大多数内容,更多的细节内容和复习可以留到之后再去补充。我觉得一共分为三方面,规划排期、具体执行以及实践,对应学习规划、如何学习以及如何面试。

================================手动分割========================================

首先是规划排期,规划的路线是Java基础 - 集合 - 刷力扣 - SSM - 第一个项目(找点简单的即可) 到这里正常努力是可以1个月完成的,也不排除项目难度较大或者SSM学的太多导致无法完成,动态排期即可。第一个建议是业务类型,用于熟悉SSM的具体开发以及一些常见的工具使用,写项目的同时可以应用到软件工程相关内容,写好文档记录、重点难点、类图、UML图、设计模式等,都是面试的资本。同时 开始了解数据库、Juc、Jvm、消息队列等内容 - 考虑第二个项目

如果有时间,根据之前的文档与思路重写第一个项目,例如引入原子变量等多线程内容。时间不足则跳过,直接开始第二个项目,此时可以是轮子项目,这个种类较多,Github、牛客网自行找即可,不做分享。

随后根据时间和你的进度,如果时间充足并觉得第一个项目不好(烂大街/没难度),可以考虑自己重新写一个新一点的,并可以放到Github上开源。时间不足则找亮点填充进去并开始背八股。觉得自己八股战神 + 项目还可以的,直接投日常实习,实习项目一般都是强于自己的项目。此时也可以投身开源项目,作为贡献者。还可以考虑部署项目,实际去使用Linux和git,而不是单纯的背命令。

此外,项目来源主要是实验室/个人团队的需求、网上现成开源的以及开源项目(例如中科院开源之夏/鹅的犀牛鸟/谷歌的开源),一个开源项目注意一下时间节点,建议提早准备,做的好应该很出彩。

之后根据你的安排或者学校安排,找实习/完成毕业条件后找实习/继续巩固/开源/完成自己的项目均可。

================================手动分割========================================

随后是如何学习

Java开发的面试内容包括八股[ Java基础(语言特性 +集合 + Juc + Jvm + Spring) + 数据库(Mysql, Redis/或其他nosql如MongoDB)+ 计算机基础(计网 + 操作系统 + 基本的Linux) + 额外内容(消息队列 + 高并发、可用、分布式、系统设计)] + 项目拷打 + 算法题。对于资料,我都是白嫖的,白嫖的内容足够大家用了,如果你确实有需要再去考虑付费内容。

先从八股说起,对于具体的面试题内容,这里空白太小,我写不下,各位可以去牛客上搜索,但切记,一切的八股都仅供参考,这些是他人的问题,和你可能完全不同,不同公司、小组、面试官以及你们之间不同的简历都会影响到八股问题。将其看作高考/考研前的模拟题即可,这不是你的真正试卷。有用的是你面的部门甚至小组的面经,你可以推测出面试官/公司偏好的倾向(但也不排除面试官从一个题库中选题,这种没救了)。实际上,我个人遇到的面试问题,大部分都是常见的题,剩下的都是和项目相关,所以各位看到面经有奇怪的问题,很可能是项目或背景相关,你可以不在意。

我个人的学习路线是Java基础(B站上很多视频,我看的是韩顺平,尚硅谷、黑马的也都可以 - 注意,这部分只是基础,快速了解基本的语法即可,没必要抱着本书或者多个课程深入学习),练习的话就是学了一下集合内容直接去刷力扣熟悉语法(集合常用的只有List, Set, Map, Queue, 初步学习不会可以直接看题解,再去百度/GPT对应语法的含义)。

有了基本的语言基础建议此时去学习Spring,准确来说是Spring + SpringBoot + Mybatis(SSM),时间紧直接学SpringBoot, 建议按部就班学习,这部分直接看B站视频即可,涉及到很多设置,视频更加流畅。这部分面试常见的只会问(Ioc/Aop/Spring事务/SpringBoot启动流程)之类的,八股不算多,甚至可以直接背,但没有这个你就无法后续推进项目。

学完基本的SSM后,可以直接去做练手项目了,可以直接B站找各种商城、牛客的仿牛客网、黑马的外卖等,这个其实是熟悉基本的Spring使用以及项目开发过程,做完之后也可以作为自己的项目。有人会问,这些都烂大街了,怎么办?最好的自然是用实习项目或者实验室项目顶替(我个人是实验室项目)或基于自己的爱好去开发,之前所学的知识用于过度的练手。其次可以考虑去Github或者B站上找相关的项目,选一个文档相对好一点且你觉得不烂大街的,最后还可以考虑套皮改写项目描述。

有了项目之后,就是八股盛宴了,基础的资料网站主推小林,可以将数据库、计算机基础学的很扎实,不过内容是有部分缺少的(例如Redis中没分布式锁,也没分布式等内容),这些可以自己去找内容补上,学习的时候又不是只会看一份,建议多个对比学习。现在也多了面试题板块,有了Java的内容,个人感觉深度和广度都有了。Java基础的直接JavaGuide即可或者全栈体系等其他你需要的。

Java基础 + 集合 : 基本的语法、反射、面向对象三大特性、包装类, 直接看课和资料即可。熟悉语法可以自己写写小demo或者直接刷力扣。

Juc : 建议B站黑马Juc , 可以结合Github上的相关资料一起学习,更深入的可以考虑博客,书也可以去看。

Jvm: B站黑马Jvm。之后看周志明老师的《深入理解Java虚拟机》书中有些内容过时,但总体很完整。Jvm主要分为内存、垃圾回收、类的加载三部分, 可以结合大厂的技术博客例如美团,查看更加精细化的内容。

SSM : 八股就是AOP,IoC等老生常谈的内容,实际还是要去看怎么使用,B站找个播放量不低的SSM课程即可。后续的学习直接跟项目走就好。

数据库:Mysql 直接小林 + MySQL45讲(极客时间的课程,盗版很多,看了后一本不需要看这个了) + Mysql是怎样运行的(很多,很细,我没看完..) , 以及声哥的手写Mysql,总体来说小林的足够了,在掌握的基础上,再去考虑深入。 Redis直接小林即可

基础知识同理看小林,也可以看大黑书来补全知识体系(CSAPP至今只看完了100页,听说HIT考研考这个,看完的可以去试试),或者网络是怎样连接的/计算机是怎样跑起来的这类通俗一点的。计网相对较多,基本算是必考,主要是HTTP和TCP。操作系统少一些,重点就是内存和进程线程,和Juc对比学习即可。这些只是重点,不代表你只要会这些。

Linux对于普通的Javaer同学而言,大部分只熟悉一点命令,很少去主动部署服务,可以去尝试部署服务运行,并排查对应的问题,Steam有个Hacket的游戏也能帮你提升能力(确信只是为了学习命令,毕竟这游戏太枯燥了)。

对于额外的内容,消息队列会在项目中遇到,需要时直接学对应的八股即可,系统设计以及三高等内容,都可以在JavaGudie中找到,对于深入的内容,一方面是看网上的博客与帖子,参考大厂的技术博客(例如B站就有点赞系统设计的文章) , 还可以去Github上寻找。

最后到了力扣,top100足以,找个你能看得懂的题解,自己去实现,逐步理解即可。对于新手,可以参考卡哥的代码随想录系统学习,以及你的数据结构教材或普林斯顿的《算法》足以掌握绝大多数的算法。此外,英文能力较好的可以试试CS61B, 使用Java语言的数据结构课程,全英课程。这里提一嘴,笔试和面试的题目是不同的,笔试的遵循难度分布,很少原题,这部分大部分人基本只能做出来1-2/3题(例如美团5题就是能做出4题)。笔试的范围大于hot100,例如前缀和这个常考的点。关于笔试题解可以参考万诺coding。面试的题很多都是力扣原题,大部分都是hot100,看面经也有很多奇奇怪怪的题目,有余力准备一下就好。

提一下设计模式,这玩意平时用不到,但实习过程中看到很多优秀的代码都用到了这部分内容,可以初步学习一下,看大话数据结构即可,能应用到项目中也是一个亮点。

最后是实战部分啦,我个人水平一般,只能给一点愚见。

1 水平较好的 + 学历可以(至少一个211), 可以尽早投,尽可能早,晚点就没offer了,只能等补录,不要等来你学校开宣讲会了再去投,我秋招9月末回学校参加宣讲会投递,赶上10.1等了3周才有笔试,10月中下旬才开始面。有人觉得,我没准备好,实际上你投了,HR还有筛选,部分公司还有笔试,约面后还有延迟,一般起码1周左右,足以复习了。

2 面试是一个你和面试官沟通的过程,这是个双向的,不是你问我答的电视节目,是一个你要展示出自己的能力,不管是学习、沟通、思考深度(体现在项目和实习)都是需要的,毕竟面试官是在选将来要从事的同事,不是AI机器问答官。

#我的实习求职记录#
全部评论
感谢大佬开源 按大佬的思路 双九保持每天的学习强度到三四月能找个暑期实习吗
点赞 回复 分享
发布于 12-01 19:51 黑龙江
进大厂不一定要双9科班,单2也有很多
点赞 回复 分享
发布于 昨天 00:23 黑龙江
点赞 回复 分享
发布于 昨天 15:27 北京
太有实力了,BAT全图鉴选手
点赞 回复 分享
发布于 昨天 15:56 陕西
佬写得很真诚啊,学习了
点赞 回复 分享
发布于 昨天 16:37 陕西
大佬你好,在知识复习的不全面时可以找实习吗,小厂实习和自己做项目哪个含金量更高一点
点赞 回复 分享
发布于 昨天 17:59 浙江
话说针对暑期实习,笔试部分需要准备到什么程度
点赞 回复 分享
发布于 今天 16:03 广东

相关推荐

评论
29
85
分享
牛客网
牛客企业服务