前几天在头条上收到一条私信,内容大致是这样的:“我学校比较垃圾,想自学 Java 可以吗?自学 Java 难吗?毕业后能找到一份 6k左右的工作吗?”

不知道有没有人有类似的问题,我熬了一个大爷,肝出了这条学习路线,送给大家作为参考。

难在坚持。你要是对自己的自律性信得过,自学 Java 是没问题的。

互联网时代最不缺的就是学习资源,学习教程,网上随便找找,就能找到一大筐,只要你能每天花 6-8 个小时用于高效学习,半年就能入门 Java 了。

高效学习期间,一定要杜绝抖音、游戏的诱惑,可以在学习之余,奖励自己玩一会,但千万要控制时间。

好人做到底吧,附赠一些学习资料(有需要的点击此处获取






B站上面有很多零基础的视频,讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者您想让Java基础更扎实的同学。

祝你早日成功!!!

那为什么有人会说自学 Java 很难呢?

这里我必须得强调一点,自学感觉难,可能和自身的学习能力有关系,但更多是和教的人有关系。

虽然十多年过去了,但回想起大一时候的光景,仍然历历在目。

由于计算机专业是学校新开的专业,所以老师们也没有多少教学经验,于是我们第一学期就直接开搞 Java 这门编程语言了,教材用的是大名鼎鼎的《Java 编程思想》和不那么大名鼎鼎的《Java 开发宝典》。

由于没有一丁点编程基础,所以我上课的时候完全听不懂,看《Java 编程思想》这本书就像是看天书一般,心里慌得一逼,但也没什么好的办法。

和我类似情况的同学还有不少,能在下半学期转到其他专业的都转了;不能转的,就和我一样瞎胡混着。

你看,遇到这种情况,肯定就很难了!

我是大二下半学期才开始发愤图强的,因为当时汇编和计算机网络都挂科了。再这么下去,拿毕业证都成问题,这简直对我打击太大了。

于是就下定决心,一定要补一下。

当时也没有很好的学习路线,网上的资源也没有现在这么丰富(可以说是极度匮乏),从网络上找了一份马老师的讲课视频,是讲 Java 的,讲课特别激情,很带劲。

一开始,还是挺难的,因为基础太差,很多听不懂。没办法,一遍听不懂,就再听一遍,前前后后一套视频看了有四五遍吧。

当然了,编程是看不会的,也听不会的,只能练。

给大家一点看视频的小建议哈。先整体上过一遍老师在讲什么,然后遇到敲代码的时候一定要暂停,先自己去理解,理解不了就去背,然后脑子里有点东西的时候就下手去敲。卡壳的时候,就重复之前的动作,直到代码的完整逻辑全部都吸收到了脑子里,自己能在没有任何帮助的情况下把代码完整敲下来,这时候才能继续。

我大概花了两个月的时间,才把这份视频教程刷完,算是有了点编程基础,后面就尝试自己主动去修修改改,看是不是还能跑的通——有很多时候跑不通,一度怀疑自己是否适合编程,太惨了。

但终究我没有放弃,吭哧吭哧地学,按照自己的节奏,一直持续到大三的时候。

功夫不负有心人,也许是努力得到了老天的眷顾,我还是拿到了一家外企的实习 offer。

关于看书还是看视频这件事,不用纠结,人类学习效率最高的方式,不是"读书 + 思考",而是"观察 + 模仿"。前者需要较长时间的注意力投入,后者只需要短时间注意力,更符合人类的天性。

有些知识,读书读半天也不一定明白,但是亲眼看别人做一遍,马上就能懂。即使不完全懂,至少知道怎么模仿。所以才会有"百闻(文)不如一见",人们更容易接受形象的东西,而不是抽象的文字。

大部分领域的入门方式,都是"观察和模仿",所以视频学习更有效。对于深入学习,文字和书籍的效果可能好于视频,因为入门以后再往上走,"理解 + 思考"的作用越来越大,"观察 + 模仿"的作用越来越小。但是,大多数人需要的只是入门,成为专业工作者毕竟是少数。

所以,视频学习才是初学者更好的方式,或者说,视频是大众学习的主流,读书更适用于某个主题的进阶学习。

以前没条件视频学习,现在不一样了。智能手机的普及,使得以前没人拍的知识,现在都有人拍;宽带互联网的普及,又使得人们可以随时随地消费视频。我们已经进了视频学习的时代,视频网站可能是新时代的图书馆和印刷机。

如何快速高效地学习 Java 这门编程语言呢?

任何一门编程语言都是由下面这几部分部分组成的:

1、数据类型、数据结构
2、逻辑判断,循环
3、类、函数(方法)
4、库函数(库方法)
5、第三方类库

对于零基础的新手来说,1、2、3 可能需要花点时间 ,但只要学习教程到位,学习方法合理,一个月的时间就完全足够了!

对于有基础的人来说(之前学过 C语言或者其他编程语言),一周时间就足够了。

接下来的重点是库函数(库方法)和第三方类库的学习,你能否熟练写程序就取决于对各种开发库的熟悉程度。新手需要不停地查手册,查看每个方法和参数,通过大量的使用来形成肌肉记忆。

我当初就是备了一份 Java 6 的 API 在桌面上,现在还是以 Java 8 为准。

针对 Java 的学习,其实可以分为以下 4 大块:

1)Java 语言入门

从基础语法、面向对象,到常用工具类库开始,主要包括的内容有:

判断/循环/数组/方法
对象和类/继承与多态/抽象类和接口
集合框架/IO
这部分的学习,再给大家推荐一份 GitHub 上的开源教程——《Java 程序员进阶之路》,专栏主要针对零基础学 Java 编程的同学,从 Java 核心语法开始,循序渐进,再到 Java 集合框架、Java IO、Java 并发编程、Java 虚拟机,只讲重点。

你在练手的时候可以作为参考,但尽量尝试在每篇学完后独立完成任务。

这个阶段我是这样安排的:

01、运行环境花一天的时间,关键字花一天,数据类型、运算符花一天,条件结构、循环结构给你一个星期,方法重载、数组也给你一个星期。

02、面向对象、this、构造方法,差不多一周时间也够了。

03、常用API、继承和多态、集合、异常、多线程、网络编程

常用API给你一天,继承和多态给你一天,集合给你一周,多线程(先入门)、网络编程给你一周,至此,JavaSE的内容完毕,总的时间差不多两个月。

2)企业级应用数据库

数据库技术作为信息系统的核心技术,在企业系统开发中至关重要。所以我们不仅要学会 MySQL 的基本使用,还要掌握索引、锁等数据库高阶知识。

SQL,增删改查
MySQL,数据类型/数据操作/事务与锁
JDBC 与连接池
MySQL、JDBC我觉得40天就够了,学完 Java SE 和 MySQL,基本上就能写点小应用了。

3)Java 框架

工欲善其事必先利其器,Java 发展到现在,出现了很多优秀的框架,它们大大地提高了程序开发的效率。

Spring:AOP 和 IoC
SpringMVC:常用注解/配置文件/拦截器
MyBatis:动态 SQL/集成 Spring
Spring Boot
这一阶段SSM说实话是需要花时间和精力好好掌握的,一定要把这部分内容学好,不然后面学习 Spring Boot 会感觉很困难,花上两个月的时间去学习完全是够了的

互联网行业中,不论是阿里/网易,还是京东/小米,电商业务都是重要的一换。所以在学习框架的时候,最好能从一个电商项目着手。把商品/订单/后台/用户/购物车/支付这一套走下来,你就能胜任不少互联网的高薪职位了。

4)就业加分项

在学习的过程中,不仅要能够完成项目的基本开发工作,更重要的是能把那些硬通货吃下来,让面试官眼前一亮,你的 offer 就稳了。

都有哪些硬通货呢?

Java 并发编程:线程池/线程安全/线程通信
JVM:类加载机制/GC 机制/JDK 各种优化
Nginx:负载均衡
Redis:常用数据类型

———割一下————

自学 Java 真的不难,但也会很艰辛地敲代码。

程序员经常需要加班,所以要做好心理准备。一旦下定决心自学 Java 了,就一定要坚持下来,不要半途而废。

对于学习能力还不错的人来说,学习周期大概就半年时间。这期间,除了学习知识,重要是要主动敲代码,做一些练手项目,熟悉软件开发的流程。