非科班Java小白的我在这一年里是如何学习的

由于有很多学弟学妹都向作者咨询这一年来的经验,因此决定记录下来供大家参考,祝愿大家最后都能拿到自己想要的offer ! 下面分几个阶段作下介绍。

文章目录

      • 一、决定转行
      • 二、基础学习
      • 三、尝试做项目
      • 四、巩固基础
      • 五、春招以及实习
      • 六、进阶与秋招
      • 七、资料和学习路线

一、决定转行

相关背景:作者本硕都就读于机械相关专业,有转互联网的想法是在大三暑假保研的时候萌生的,可能有很多读者会比较疑惑我当时为什么没有选择跨专业保研。这是因为当时自己没有接触任何计算机专业的相关知识(除了大二学习的《C语言程序设计》),自己也没有刻意去学习操作系统、编译原理、计算机网络等基础知识,因此没有尝试联系软件学院和计算机学院的老师们(现在回想起来当初无论如何应该试试的)。后来机缘巧合下联系了现在的导师,我们的实验室有自主研发的工业仿真建模软件,实验室的编程语言以C++语言为主,往届师兄的就业去向也都是以互联网公司为主,总体来说氛围不错,因此研究生就继续选择呆在了机械学院。

二、基础学习

在大四毕业后的暑假,也就是去年的7月份,我没有选择去做兼职,也没有出去旅游,而是买了一本《Head First Java》在家啃,算是正式开启了学习Java的道路。在暑假的两个月里,一边看《Head First Java》,一边看黑马程序员的JavaSe教学视频,每学完一节就会自己代码跟着敲一遍。现在回想起来《Head First Java》这本书对零基础的我最大的帮助就是理解了面向对象的思想,它的图文结合读起来比较轻松,敲代码的过程中也让我真正感触到了什么是眼高手低,视频看着都会,自己写起来总会出现各种各样的问题,最后花费的时间总是导致我的学习计划被延后,而这个过程其实就是进步的过程。为了能够提高自己敲代码的速度,自己还专门花了两天去纠正了自己的十指按键。就这样,通过看视频结合敲代码的方式,自己暑假学完了JavaSe的大部分内容,比如Java语言基础、类和对象、Java集合、IO等等,学完后自己又买了《Java核心技术 卷1》《Java核心技术 卷2》这两本书进行翻阅,重新温故之前学习的知识,在理解的基础上加深印象。

三、尝试做项目

转眼间,两个月很快就过去了,入学后第一学期主要的任务是上课,这时候学习Java的时间就比较少了,在搞懂上课内容,做完课程作业后利用空闲时间自己开始学习JavaWeb知识,这个阶段自己也主要是通过
看视频《黑马程序员_轻松掌握JavaWeb视频教程》来学习的。在这个过程中自己学会了写简单的前端页面,然后写后台代码做一些小的JavaWeb项目例如登录注册、图书管理系统等等,也学会了数据库的使用。
在看完上述视频后,又挑选了《崔希凡超全面javaWeb视频》中讲的比较好的几节课进行了重点学习,比如day14的编码实战演练,day17~19的JDBC,day24-day26的综合练习,day27-day28的基础加强。这些课程的质量都十分高,敲代码能达到很好的实战效果。
接着就开始了框架的学习,由于现在公司基本不使用SSH框架了,因此自己直接上手了SSM框架,同样是跟随着视频边看边敲进行学习,就这样,一个基于SSM框架的商品后台管理项目搭建完成后研一的上学期也基本结束了。

四、巩固基础

SSM框架学习完成后时间来到了年后,转眼间进入了研一的下学期,距离春招实习招聘开始还有一个月左右的时间,这个时候自己意识到了基础知识学得比较浅显,知其然而不知其所以然,开始了啃书籍的阶段。买了《深入理解Java虚拟机》《Java多线程编程核心技术》 《Java并发编程的艺术》《Head First 设计模式》等书籍,尝试阅读和理解,一遍读不懂就多读几遍,做一些书上的案例demo。通过公开课 《浙江大学数据结构公开课》结合书籍《算法 (第四版)》《剑指Offer》去提升自己的数据结构和算法能力,通过公开课 哈工大精品课程《计算机网络》结合书籍《计算机网络自顶向下方法》《图解HTTP》学习计算机网络知识,通过 B站视频《王道考研-操作系统》学习操作系统。

五、春招以及实习

春招的过程自己持续了两个月左右,从3月到4月底,由于没有任何找工作的经验,基本接近于海投简历,这个过程也增长了自己面试的经验。最后拿到了几个实习Offer,最终决定5月下旬前往北京去哪儿网机票事业部实习。在去哪儿网实习的两个月中,接触到了公司内部的中间件如QMQ、QConfig等,也用到了一些开源工具比如服务框架Dubbo以及消息队列Kafka等。如果说实习前是在打基础的过程,那么实习的经历对我来说就是进阶,在实习的过程中了解了实际工业生产环境下公司是如何用技术为用户服务的,意识到了自己在哪些方面的知识仍有欠缺。在此期间,每天晚上在离开公司之前都坚持刷两道剑指Offer题目或者一道LeetCode题,保持做题的手感。 在7月份,Oppo开始了秋招提前批,北京作为面试第一站,自己抱着试一试的心态去参加了面试,顺利拿到了自己第一个正式校招offer。

六、进阶与秋招

转眼间两个月就过去了,我在八月份回到了学校,开始重点学习Dubbo、Redis、Zookeeper、SpringBoot等现在互联网公司都会用到的框架和工具,学习方式主要是边看视频边做demo。同时也开始去尝试看源码,例如集合、Spring框架中的IOC和AOP思想、Netty、java.util.Concurrent包下的一些工具类例如AQS、阻塞队列的源码,学习方式主要是通过看大佬们的源码分析博客,在理解的基础上自己给原生代码添加注释,最后总结整理代码逻辑。在此期间主要看的书籍有《Redis设计与实现》、《大型网站架构设计》、《高性能MySQL》、《从Paxos到Zookeeper》、《Netty实战》。
都说金九银十,自己认为互联网公司的招聘应该是金八银九,八月份很多公司就已经开始了提前批。在学习分布式相关知识的同时自己开始做简历,加入到一些互联网公司的提前批以及正式批中。由于想去上海工作,所以只投递了部分公司,从第一场面试到最后一场面试持续了一个半月左右,最终拿到了阿里巴巴、美团、携程、华为消费者BG、招商银行信用卡中心、贝壳找房、远景智能等公司的意向书,总体来说还算比较顺利。

七、资料和学习路线

自己一年来各部分知识的学习参考资料:学习资料总结

最后附上一个学习路线以及该路线侧重点的具体介绍供大家参考:
非科班Java小白的我在这一年里是如何学习的_第1张图片

你可能感兴趣的:(转行这一年)