一、前言
在我的另一篇博文——【一年总结】记我的大一生活中,我其实已经谈过了我的大一经历,但是对于我自学Java的地方往往都是一笔带过的,因为那篇博文主要是想记录我那时所思所想,表达的主要是一种情感,而非“攻略”。
所以我觉得我有必要另起一篇来专门讲讲我是如何一步一步自学Java的。
二、为什么要自学Java?
有的在校大学生可能会问了,为什么要自学,跟着学校的课程走不好吗?
我在这里跟大家算一算,拿我在的这所双非一本学校举例,我们是大类招生,大二专业分流,以下使我们的课程安排:
大一学的都是些基础以及一些和专业无关的课,和专业有关的就只有数据结构和c语言。当然我不否认这些基础课程的重要性,但在这里我想说的是,如果按照大学的课程这么走,到大二才堪堪学了一部分专业课程,而且一个大二学的东西这么杂,你敢说你能全部掌握吗?大二相当于你在很多方向上初看了一眼,让你认认路而已。
没错,就是认认路!
不要指望老师能真正教你什么。事实上,老师常年在校内做研究,其实很多技术已经脱节,你听过老师来教你使用spring框架吗?你听过老师来教你flutter吗?没有吧,但凡和流行技术沾边的东西,老师一律不交教。
mybatis他们教吗?不教,教jdbc。
thymeleaf他们教吗?不教,教jsp。
说句难听的,他们教的技术一般都是那种不容易改变的,那些时常更新的技术一概不在他们的考虑范围。所以语言这种东西就成了他们的最爱,语言相较于其他技术而言,变化很小,你要想想c语言可是延续了30多年,至今还在使用。
不过这也不怪他们,对于那些变化快的技术,学习成本太高了,就算学会了,他们也可能教不了几年,性价比低,所以教育方案的思路就是让你接触各种基础,让你明白有那些路。真正深层次的东西还是得靠自己学。
所以你说自学重要吗?
谈完要不要自学,我们再来谈谈什么时候自学。
什么时候自学?
当然是越早越好!
我再和大家算算,如果你想在学校里有点作为,你就要参加比赛吧,但是比赛最佳时间是大二,那时候时间充裕。大三虽然也可以,但是你那时候要开始考虑你接下来的路,我团队里负责市场的两个即将大三的学姐都是因为自己学业的原因中途退出的。
所以你至少得在大一多学些技术,最起码Java基础要学成。
三、我的经历
先自我介绍下,本人19级在校大学生,双非一本软件工程专业。在写这篇博文的时候的水平可以参考我的另一篇博文——【项目实战】个人博客(SpringBoot,SSM,thymeleaf,Semantic UI)——从设计思路到成品
很多人会很惊讶我大一就学了这么多,觉得我很厉害。
其实不然,我入学的时候也和大家一样,都是啥也不懂,一个平平凡凡的普通人而已。
但是我为什么会甩开别人那么多,成为别人口中的大佬?其实最大的原因我已经在【一年总结】记我的大一生活这里提到过了,改变自己,就看你是否有这个决心!
其次还要讲究学习的方法,本文就是围绕这点来讲讲我的学习方法和理解,希望对大家有所帮助。
四、学好Java的几个点
1.学习目的
你是否问过自己:
你学习Java是为了什么?
工作,兴趣,还是学校安排?
搞清自己的学习目的很有必要,因为它会支撑起你的学习热情和学习方向。
对于我而言,其实很简单,我想做一款app来证明自己,多方搜索决定从Java开始。也许是一时冲动,但我不后悔!
就是这个目的支撑了我一年的学习——每当自己遇到困难,陷入迷茫时,自己亲手组建的团队、当初的豪言壮语和许下的承诺都是支撑我坚持下去的动力所在。我不能放弃,我也不敢放弃,因为我不仅要对自己负责,还要对我的团队负责,更要对我当初的“梦想”负责!
所以我不能退!
这个目标也为我的学习指明方向,后端用到Java,我就去找Java视频看;需要学数据库、服务器,我就去找相应的视频;app协作开发需要用到项目管理工具git,那我就去学git。总之,你要学什么取决于你想做什么。
所以,如果你还没有一个能说服你自己不管不顾去学习的目标,那么我建议你停下来思考一下——你到底想要什么?
2.自律
自律其实对于一些三心二意的人来说确实很难,但是影响着我们的学习效率。
你在学习的时候,千万不要把手机放在旁边,不然当你光明正大的拿起手机然后对自己安慰:我就看看qq有什么消息,看完就放下。然后你就陷入手机无法自拔,吸引你注意的可能是一个推送又或者是随手点开的视频,等你放下手机时可能已经半小时过去了。
对于自律,我的理解是——你可以玩游戏,可以刷视频,但是你在学习的时候就是学习,不要干其他的,要确保你学习的效率。就算你自律极差,一天只学习一小时,那你也得管住自己确保那一小时的效率。
3.自信但不自傲
你想要干大事,自信必不可少。
比如你想要参加一个比赛,看到往届比赛选手的优异表现,你可能会觉得他们好厉害,不自觉的就怀疑自己的能力,打了退堂鼓。
殊不知,打败你的不是别人,而正是你自己!为什么别人能做到,你就做不到呢?你连试都没试过,怎么知道自己不如别人呢?
要有自信,相信自己,自己打退堂鼓是因为自己目前的技术能力不够。
那不够就去学呗,你为什么不能成为站在台上的那个人呢?
但是自信不代表你要自傲,对待别人,一定要谦虚,这是一种态度。在这个行业里,大佬比比皆是,你不知道前一秒跟你谈笑风生,问你问题的人,后一秒可能就是帮助你解决问题的人。
4.会折腾有耐心
折腾对于我们这个行业的人来说是家常便饭了,尤其是你刚接触一个技术时,折腾是免不了的。
当你遇到bug异常时要耐心,这其实也是对你能力的一种考验,真正的大佬正是在这种折腾中越来越强的。
5.有计划有目标
你一定要对自己的学习路线有所规划,要有自己的学习节奏。
当你学完一种技术,不要懈怠,不要觉得自己已经大功告成了,事实上,你只是进入一个更大的世界而已。
6.善于记录,善于输出
你每次学完一种技术,是不是有一种虚浮的感觉?
这很正常,每一种技术,不去实践永远不要说自己掌握了,你要把你的所学记录下来。
写博客就是一种很好的方式。当你向其他人分享自己的所学时,实际上也是在巩固自身。而从功利的角度出发,博客其实也是你实力的证明,一些面试官很喜欢看你的博客,因为他们可以从中看到你做了哪些事。
当然有实力也可以参加一些开源项目,这对于自己的成长将会有很大的帮助。
7.学习以构建知识框架为主
大家学习的时候可能都会遇到这么一种情况,学着学着发现有个地方听不懂,搞不明白了。
怎么办?
我的建议是回放再听一遍,如果还是听不懂,那么果断跳过去,不要去纠结。
学习,尤其是前期学习,要以构建知识体系为主。很多东西你目前可能不懂,那是因为你的知识体系不够完善,等你学完后面的,说不定前面不会的就很顺利的解决。
切记不要钻牛角尖!
比如,你在学习些helloword时,你就不要纠结System.out.println() 为什么能够输出。因为这涉及到后面的输入输出流,以及面向对象的思想,你说你入门去纠结这个有什么意义呢?
所以构建知识体系才是你的当务之急!
五、学习路线
首先,先明确一个问题——自学编程最有效率的方式是什么? 我会毫不犹豫地回答——做项目! 不会做项目呢? 看教学视频,其次才是看书。
说说我的学习路线吧。
首先大一学c的时候,我就课外自学c语言,看的是b站的鱼c小甲鱼的视频。结果就是要上一学期的c语言被我14天学完了。
剩下的时间我学的是Java全栈学习,其实我当时看的那个只有三百多集,这个一千多集是我学完之后发现的。
跟着这系列我学到了很多,再加上我平常逛b站和知乎,自己对于Java学习有了新的理解。
到了框架部分,我就开始跳脱开这个视频系列,不是说它不好,只是它有些过时了,学学基础部分还好,毕竟基础不怎么变,但是到框架部分就开始有点乏力了。
至此,我已经学了Java基础、tomcat服务器、网络编程、mysql、oracle数据库。
我开始根据自身的需求来找合适的视频,后来学了
maven、git、mybatis
之后恰逢短学期程序设计,我根据我的所学写出了第一个我独立完成的项目——【项目实战】 图书信息管理系统(Maven,mybatis)(第一个自己独立完成的项目),这个博客出乎了我的意料,截止到我写这篇博文时,浏览量已经破4万了,收藏破2000,这给了我极大的鼓舞。
其实这之间我也忙了些我那个项目的事情,不过与主题无关,我就不细讲了。
再之后我学了Spring、SpringMVC、SpringBoot,期间我参加了校软件创新实验室的集训,不过我是讲课的那个。
为了巩固自身所学,我完成了我第二个项目——【项目实战】个人博客(SpringBoot,SSM,thymeleaf,Semantic UI)——从设计思路到成品
直到现在我在写这篇博文。
其实上面这些视频仅供参考。只有适合自己才是最好的。
那么怎么选择适合自己的视频呢?
初期入门Java的时候,你可以选些零基础的教学视频。
标准就是,这个视频必须要自成体系,有一套完善的学习路线,这可以让你在初期不太懂的时候给你指明方向,把你带进Java的大门,这种视频可以不是最新的,但一定要有体系,最好是那些知名培训机构的视频,因为他们一般讲的比较易懂。
到了一定程度,你对Java有了一定新的认识,你可以跳出这个体系,去找那些你想学的技术视频。但这种视频,时间最好是最新的,因为一般你到这种程度,技术时效性就有了一定要求,你总不希望自己学的是一些过时的技术吧。其次才是热门程度,但你要知道一点,热门的不一定是最好的!
最后你学到一定阶段,一定要尝试自己做项目,因为做过项目和没做过项目真的是两个水平。
博文到此就已经结束了,如果你对Java自学有什么疑问或者建议,欢迎在评论区评论。当然,你要是觉得这篇博文在一定程度上帮助到了你,不妨给我一个小小的赞,这将是对我最大的鼓励!!!
愿我们都能以梦为马,不负青春韶华! 与君共勉!