关于自学Java

其实我一开始学Java仅仅是处于爱好与无聊,大概可以总结为以下两点:

怎么卷起来的?

  1. 爱好,没什么好说的,就好比现在是2024年1月1日凌晨,别人在跨年,我刚刚在抖音上学完了IDEA直连Docker。

  2. 无聊,曾经一天刷15小时以上短视频。

  3. 老师教的不好,有可能是因为我大一压根没听过课,我大二刚开始学习Java的时候感觉非常艰难。

  4. 因为网上的老师教的太好,前面说我听不懂老师讲的课,于是我去哔哩哔哩找一些培训机构的录课。

  5. 也是对自己的一种救赎,毕竟我这么聪明(开个玩笑😅),总不能毕业后干体力吧(虽然我也确实还算高壮)。

怎么卷下去的?

  1. 爱好,没什么好说的,就好比现在是2024年1月1日凌晨5时27分,别人在睡觉,我依旧在钻研。

  2. 适当的休息,没有人不会累,我曾经半个月没去实验室,在宿舍打游戏,半个月的休息换来的是疯狂的学习欲望。

  3. 对未来的渴望(月薪过万谁不眼红)。

学习的时间线

初期:

我在22年中秋节(9月10号)开始了我的自学之路,一切从零开始。一开始就是跟着动力节点(一家只教Java的培训机构)的路线,JavaSE->MySQL数据库->前端三剑客->JavaWeb->Ajax->Maven->Mybatis->Spring->SpringMVC,这个时期只能说才勉强搞懂Java的定位、我的定位。

我在22年11月底的时候,就已经学完了SSM框架,这个速度相信应该算快吧😁。

中期:

12月初寒假回家,我便想开始学习数据结构与算法,稳固一下基础(我11月中旬探索IDEA插件的时候接触到了刷算法题的插件,那个时候接触了算法,试着做了两道,刷新了我对编程的认知)。

同期,我进入了一个程序员老哥的绿泡泡群,他们每天除了吹牛逼和吐槽,其实还给了我一个工具,我使用这个工具直接化身体质选手,为日后学习埋下了伏笔。我使用这个工具接触到了ChatGPT,我那一个月就干了三件事:①学习数据结构与算法②探索ChatGPT与编程③玩游戏。但是在12月最后一天我阳了,摆烂的几个月就开始了。

直到3月8号我踏进学校图灵实验室,我开始收起玩心,继续学习数据结构与算法。但是好景不长,在3月底,由于种种忽略掉的个人生活方面原因,浮躁的心没能收住,我开始了长达4个月的xx长征。

对于这件事我只能说,到达7月中旬,这期间我就仅仅学完了:数据结构与算法->SpringBoot->MybatisPlus->Gradle,这个效率相比我初期80天搞定Java企业级开发入门只能说是龟速,好在这期间我还稳固了基础,使得后面的学习轻松了一点。

后期

7月底,在打了半个月游戏后,我终于迎来了学习路上的光......

我其实在6月20号左右就学过一点点Redis,那个课是动力节点动力哥讲的,他是继动力节点杜聚斌之后我第二个佩服的老师,但是这节课长达41小时,并且是基于Linux系统讲解,我完全没接触过Linux(其实我完全可以跟着老师走,但我这个人就是喜欢钻研,老师使用的是图形化界面,我在使用前拓展了一些Linux知识,所以我强行使用“更优”的纯命令行版本,你们可能不能理解难度多么大,就好比以前你都是睁着眼睛走路的现在蒙住你眼睛只给你一个拐杖,最终跟着老师读源码的时候坚持不住了,因为Linux原生命令行它不给你显示全部文件,你必须将结果导入到一个文件中然后用vim编辑器查看,而我当时根本不知道不理解),这使得我难上加难,重重打击下以致于再次学习已经到了7月底(其实这期间我除了玩游戏还学习全套组装电脑知识,给朋友组了一台4060Ti也给自己的笔记本加装了一块固态),Redis绝对是我这一路上最难啃的一块骨头,但它又那么重要。

言归正传,7月底我是怎么又开始学起来的,我记得好像是网上一句话“现在前端都是vue框架,后端都是微服务架构”,恰好动力节点7月25号发布了SpringCloudAlibaba全套教学视频。就这样,我边写边练,半个月下来37小时的课程被我搞定了,并且初步学习了WebSocket和Dubbo。

接下来就是马不停蹄的学习Redis,学习Redis的时候是最无聊的,动力哥的Redis课程太深奥了,41小时的课程几乎只有2小时是和Java有关的。

8月25左右开学到10月我几乎一直是在学习,这期间学完了41小时的Redis、40小时的vue、22小时的Linux。

10月休息了大概两周。

10月中旬我准备学习RabbitMQ,但是我安装失败,一方面老师也没有怎么重点讲,另一方面这玩意确实太难装了(我学习的时候一般都喜欢用比较新一点的版本,而CentOS7只支持旧版本,我当时一点点都不知道)。安装不了RabbitMQ,我就想到了Docker就是为了解决环境问题而存在了,于是我转头去把48小时的Docker课程学完了,然后回头学习了RabbitMQ。

学习完RabbitMQ后,我紧接着学习了JUC、Nginx。这一切学完我已经可以独立开发网站了,于是在11月21号我开始开发我第一个项目。

这个项目我写的并不好,包括之后这个项目改良后我依然觉得不好,因为我并没有学习过微服务项目开发,写项目只是为了熟悉我学过的东西,这个项目我用到了SpringCloudAlibaba、Redis技术栈,后端写了大概一周时间(期间还算法竞赛等等),开始开发前端,我边复习边开发,最终12月初在css上面卡住了,我不知道如何是好。因为这个打击我又去补了一个vue项目的开发教程,但是还是卡住了,我又不想去抄别人的,css那我又不知道怎么写,于是这个项目我停止了,因为这个原因我之后直接把简历上的“熟悉vue”删了。

那几天还有算法竞赛我还得上课,我项目停止后紧接着又是实训周,不管是找别人写,还是抄,我得先缓缓。

事情的转折点是我过了几天想重构项目,因为我24晚上使用1小时时间在抖音又学了一遍Dubbo3.0,我感觉SpringCloud项目拿出去太平庸了,于是接下来12月4号到12月6号我将老项目迁移到Dubbo框架,并且引入了RabbitMQ消息队列,后端开发完成提送到了GitHub,就停止了开发,是的,这次我决定不写前端。

接下来几天除了算法竞赛,我开始了Netty的学习,我从14号到22号使用了大概一周时间学完了Netty。

截止到今天2024年1月1日,我除了部署个人博客、写文章、复习、考试、背了一点点八股文(说是背其实我觉得深入理解底层原理更合适),我还学习了MongoDB的用法,Git的用法,还看了约10%的JVM,还看了一点点耗子叔的那本《左耳听风》。

学习路线

那么,我为什么知道怎么去学,有人带我吗?

emm,我可以很明确的说,我的学习历程,从始至终都是一个人,没有人手把手教我该去学什么、怎么学,所有的路线都是自己找的,所有的坑都是自己踩的。

我的学习分为前中后三个阶段,前期和中期我都依靠培训机构引路,从后期开始我的每一步都是由自己决定的,我开始知道自己想要什么、需要什么,学习不再是为了补充知识,而是为了填补问题!

总结我的学习路线来源于以下几个方面:

  1. 培训机构标准路线。

  2. 各大短视频,刷到相关的都会留下了看看。

  3. 各大评论区,评论有好有坏只能自己甄别,gradle就是被指路才去学习的。

  4. 自己的需求,这个在后期占绝大一方面,比如Docker、MQ、Linux都是出于需求。

  5. 爱好,Netty与MongoDB完全是出于对知识的拓展或者说爱好。

知识来源

作为程序员,需要有很强的学习能力,获取信息的能力应该是超群的,并且是要有很强的鉴别能力。

我在获取知识方面,主要有以下几个来源:

  1. 哔哩哔哩各种课程

  2. 抖音视频以及抖音主播

  3. 各大评论区

  4. CSDN、知乎和个人博客等等一些文章

  5. ChatGPT

  6. 官方文档

  7. 自己想

  8. 八股文

个人规划

  1. 完善我的项目

  2. 完善我的简历

  3. 复习知识|学习八股文

  4. 刷算法

  5. 暑假找个实习

  6. 秋招|校招

  7. 持续学习

最后

这行是学不完的,要一直保持学习能力才不会被淘汰,现在已经7点11了,我4点半刷到了鱼皮的抖音视频,他项目用到了swagger,我之前接触过这个东西,知道它是一个管理接口的东西,我管理接口使用的是强大的ApiFox,于是我没有学习swagger,但是刚刚的swagger界面,我感觉这个东西太有用了,我必须要先深入了解一下它。

我学习的经验其实9个字就能概括:

多尝试、多思考、多总结!