什么样的人适合自学Java呢?

无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班。报班通常太费钱,时间又不自由;自学又不知道如何下手,担心自己坚持不下来。怎么办呢?

本文将解答你自学Java的N种问题:

你适不适合自学Java呢?

如何自学Java呢?

有没有靠谱的Java自学资料推荐?

怎样让自己看到进步,坚持下来?

……

以上问题,课程中我都会呕心给你梳理答案,赶快开始学习吧。

什么人适合自学Java


在自学前你可能会因为自身的条件有很多困惑和疑虑,不清楚自己是否适合自学Java。下面我们来做个测验,来检测一下你是否适合自学Java。

第一道题:你对学习Java的信念有多强?

最低分0分,最高分5分,你给自己打几分?

对学习Java抱有坚定的信念是学习Java的必备条件,如果你给自己的打分小于等于2.5分,建议你直接放弃学习Java吧。如果你给自己的打分大于2.5分(越高越好),恭喜你,第一关的考验过了!

第二道题:你学Java的目的是兴趣提升 or 就业?

如果你学习Java只是兴趣提升,那么你无论是自学或者报班怎么学都是适合的,因为你不差时间。那么后面的考验题你也可以直接跳过,看后面的干货。

但如果你是为了就业而学习Java,那对学习Java效果和时间都有一定要求,还要满足社会岗位要求。建议你好好考虑报班还是自学。

如果你大于30岁的话,我已经不推荐你学习Java了,一方面30岁后学习能力和精力堪忧,另一方面30岁的Java初级小白几乎找不到工作。

但如果你小于30岁的话,那你的客观条件还是可以学习Java的。剩下的就要考验你的自控力和毅力了。

第三道题:最低分0分,最高分5分,你给自己的自控力和毅力打几分?

如果你的打分小于3分,我建议你报班学习Java,自学不适合你。(如果你不能确定自己的自控力水平,你也可以去网上找一些自控力测试的问卷。)

但如果你自控力较强、个人时间较多、热爱独立思考钻研的话,那么恭喜你,我认为你是非常适合自学的。如果你也选择自学,那么本课程的内容你可以好好学习借鉴,相信你一定可以找到一条适合自己的道路!

最后你也许会问,性别、英语水平、数学水平、是否为科班等是否影响自学Java,如果你上面的测试都通过了,这些其实都是一些非关键性的影响因素。

我们用一张图总结一下以上的所有问题:

虽然性别、英语水平、数学水平、是否为计算机专业都等不是关键因素,但当你是女孩子,英语、数学水平较差,非计算机专业相对于男孩子,英语、数学水平较好的计算机专业还是会有一些影响,为了达到同样的结果可能需要付出更多的努力。

我们这里拿计算机专业和非计算机专业比较一下。

计算机专业和非计算机专业自学Java的区别?

虽然说计算机主要靠自学,但是计算机专业的学生相比非计算机还是有很大优势的,大部分计算机专业是有开设Java这门课程的,可以让这些学生在学习Java的道路上快速度过"冷启动";还有一些重要的基础课,例如数据结构、操作系统、数据库、计算机网络等课程能够帮助学生更深入地了解计算机,学习起Java语言也能有更深层次地理解。

而非计算机专业在自学Java时,会因为有原专业课程、作业的限制,学习时间相比计算机专业学生少了不少,但这些问题是可以被克服解决的,可以多花一些课余时间、周末时间,学习练习Java,也可蹭一蹭计算机专业开设的Java课程,多与计算机相关专业同学交流碰撞。自学Java的心态也很重要,不要因为被本专业课程拖累而埋怨,要乐观地去面对学习上的困难,有长远的眼光,阳光总在风雨后!

总的来说,计算机专业自学Java资源、时间更多,更需注重自学的方法和内容;而非计算机条件较难,除注重方法和内容之外,重要的是要坚持在百忙之中挤出很多时间留给Java,这对毅力是非常大的考验。

当你适合自学的时候,那么你就要寻求好的方法提高自学Java的效率,如何做呢?看看下面内容吧~

高效自学Java三大关键点


这里我总结了三大点,分别从认识、方法、反馈角度来写,其中一定有适合你的方案!

1 了解Java知识体系
自学Java前,要对Java和Java体系知识有一定认识,心中有个大概的轮廓去学习,方能更踏实。通过几个问题了解Java。

什么是Java?

Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种跑在JVM上的语言,Java编译后是字节码,而JVM会把这些字节码解释成机器码,然后做出相应的动作。

Java能干什么?

Java当前用的较多的就是做后端开发、大数据开发、安卓开发,这是当前Java技术栈较为热门的三种岗位,其中以Java后端的市场需求最大。Java也可以做桌面应用开发、游戏开发,但需求相对较少。

国内大厂,像阿里巴巴、美团、京东、拼多多等,使用的主要语言都是Java,大部分中小企业为了成熟稳定也选择Java作为后端开发语言。此外,很多著名的中间件是由Java编写的,例如:Elasticsearch、RocketMQ、Hadoop等。

Java有哪些知识?


一、Java基础
Java入门部分:

JDK、IDEA安装,第一个HelloWorld

基础内容:输入输出、命名规范、注释

数据类型:基础数据类型(及其包装类)、引用类型

修饰符:访问修饰符、非访问修饰符

运算符:赋值、算数、自增自减、比较、逻辑、位、三元运算符及其优先级

控制流程:条件判断、循环语句

数组、字符型

类与对象

面向对象三大特征:继承、封装、多态

日期、正则、大数运算(简单了解)

Java进阶部分:

IO常见文件操作

集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等

异常处理

泛型

JDBC

网络编程

Java8新特性(Lambda)

反射、注解(有点难)

二、Java高级
多线程、高并发

23种设计模式

树、红黑树、B树、散列、堆、图等

算法:十大排序、二分查找、分治、贪心算法、位运算、回溯、动态规划、搜索算法(bfs、dfs)、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)、并查集、KMP等算法

三、JavaWeb:
HTML、JavaScript、CSS

XML、JSON

Tomcat

Servlet/JSP(以Servlet为主)

JQuery、Ajax

MVC

Cookie、Session

过滤器、监听器

文件上传下载(Servlet3.0)

Linux

四、常见框架:
ORM框架:Mybatis

Spring全家桶:Spring、SpringMVC、SpringBoot

安全框架:Shiro、Spring Security(可选一种先学)

其他框架:Swagger(在线接口)、Log4j2(日志)、Quartz(定时)等

微服务:SpringCloud、Dubbo等

五、常见中间件和工具:
版本控制:Git、SVN

包管理:Maven、Gradle

关系型数据库:MySQL、Oracle等

非关系型数据库:Redis(缓存)、Memcached(缓存)、MongoDB(文档型)等

搜索引擎:Elasticsearch、Solr等

消息队列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等

Web服务器:Apache、 Nginx

容器:Docker、K8S

大数据:Hadoop、Spark、Strom、Flink等

当然,上面只是罗列了大部分知识点,还有很多知识比如日志分析监控(ELK)、持续集成、分库分表等也都是热门技术,Java后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。

2 自学Java的三大途径—书籍、视频、博客
自学Java一般有书籍、视频、博客等学习资料,这里主要讲解三者在自学Java中的异同点。

看书自学Java
看书是最为传统的学习方式,我们从小到大大部分的自学知识是通过看书来获得的,所以可能很多人都喜欢和适应这种方式。书籍具有严谨、体系完整等特点,并且纸质的内容来回翻阅在回顾的时候也更便捷。

但看书也有一些缺点:可能分不清主次,在学习Java的时候其实是有侧重点的,而书上可能在这方面并不会有太多的介绍和标注,并且一些冷门淘汰知识可以不用学习(例如Java Swing部分);有些内容即使作者写得很棒了,但可能会因为案例、解释较少不能完全理解(尤其是小白)。

看视频自学Java
比起书籍,更多人愿意看视频自学Java,因为看书时大部分人会觉得比较枯燥。但是视频就不一样了,视频中老师们通常会边敲边讲解,更易于知识点的理解,并且人是感性动物,看视频就如同与老师交流,好的老师会让学习效率直接翻倍。

看视频当然也会有些缺点,视频时间较长较多,很难快速回顾学过的知识或者快速浏览章节内容,所以有可能会浪费一点学习的时间。

看博客自学Java
博客是程序员必不可少的学习资源,近些年高质量博客、文章也越来越多。这种博客文章阅读比较方便,内容选择也比较丰富,好的博客图文并茂生动形象非常有助于理解记忆,并且博客在代码拷贝学习方面更占优势。

看博客也有一些缺点:比如博客比较碎片化,体系不太完整。还有博客质量参差不齐差距较大,甚至有的博客还出现较大的错误,所以挑选好的博客是一大挑战。

总的来说,系统自学Java主力军还是 看视频和看书 ,可以以看视频为主,看书为辅,遇到疑难点不理解的可以通过搜索相关博客多看文章进行学习吸收。

为了方便你的学习,我贴心为你搜集了一波优秀的视频、书籍、播客,以及刷题网站和社区的列表清单,你可以慢慢“享用”。

图文类的教程网站:

菜鸟教程:https://www.runoob.com/java/java-tutorial.html 教程免费,适合基础入门

W3Cschool:https://www.w3cschool.cn/ 教程免费,适合基础入门

易百教程:https://www.yiibai.com/ 教程免费,适合基础入门

How2j: https://how2j.cn/ Java基础到高级,还有各种框架、中间件教程

回车课堂:https://ke.boxuegu.com/ 以关卡形式教学,从基础到高级,文章内容质量比较高

书栈网:https://www.bookstack.cn/ 免费的在线电子书、笔记、文档网站

还有其他免费图文教程、个人站点的例如importNew ,我要自学网等也可看看。

刷题网站

力扣:https://leetcode-cn.com/problemset/all/

牛客:https://www.nowcoder.com/

适用ACM选手的一些刷题网站:杭电oj、 Codeforce、 Vjudge 、Atcoder

Java开发也要刷题吗?那是肯定的,找工作无论大厂小厂(尤其大厂)避免不了笔试题,力扣和牛客上都有剑指offer,建议刷2-3遍,力扣hot100一定要刷一下,如果冲击大厂那一定要刷200道以上才行。

其他学习网站

csdn:https://blog.csdn.net/ 最大中文博客网站,结合搜索使用

博客园:https://www.cnblogs.com/ 老牌社区,依然有很多用户

至于51CTO、Infoq、开源中国等社区内容质量也很高,但用户相对较少。这些学习网站和资源不向前两项介绍的知识成体系化,这些平台相对都是流动交互性很大,所以你需要找到适合自己的资源,要利用好搜索的功能,此外各平台你也可以关注觉得不错的博主阅读他的专栏文章,收益也是很大的。

推荐书籍

自学Java我推荐的书籍为《Java从入门到精通》,有案例、代码跟着学很容易懂。

当然被业界称为为四大名著书籍质量也不错:

《JAVA语言程序设计》----初级

《JAVA核心技术》卷I----初级、《JAVA核心技术》卷II----中级

《JAVA编程思想》----初级~中级

《Effective Java》----中级

在跟着书籍学习的时候,有困难的内容也可以先放一放,还有Java Swing等窗口应用部分也可跳过。这些书不需要全买,有一本工具书就足够了。

3 回顾与交流,牢牢锁住知识点
学习很容易遗忘,因此要时常回顾。不推荐视频作为长期回顾的方法,更推荐博客、纸质书回顾,因为它们可以快速定位,很多内容看一遍就想起来了。

除了回顾以外,交流可能是另一种锁住知识的好方法了,通过交流倾听别人的意见,能深入思考,加深对知识的理解。交流的方式和途径有很多

和身边人交流:最方便和高效的交流方式就是和身边同学、舍友、一起学习的人进行交流,一起学习进步共享学习的心得;

社群论坛交流:最大众化的就是添加一些QQ、微信的技术交流群或者在一些问答论坛交流,群中或者论坛中会有不少大神或者志同道合的人能够帮到你。作为技术人加几个技术社群、多逛技术论坛还是很有必要的。

当然还有一种方式并不一定适合所有人,就是和"自己"交流,将自己的学习内容重难点以笔记、文章形式输出出来,虽然这会耗费大量精力和时间,但这不断思考、优化、写的过程会使你对知识印象更深刻。

史上最实用的Java学习路径
上面已经介绍了高效自学Java的关键点,下面来推荐实用的Java自学路径。

这个路径是我为你呕血整理而成,它结合我个人的自学经历与大牛的学习建议,避免了学习的坑。路径分为四部分:

Java基础学习阶段

JavaWeb学习阶段

框架学习阶段

自我提升阶段

学到第三阶段,就达到初级程序员的水平,可以找工作了。第四阶段——自我提升阶段——里的知识是Java高级和框架两部分里的需要深入学习的知识,你可以一边工作一边提升,其他内容是。

这里我推荐的自学路径,以视频为主。因为Java路径中的各个阶段相对独立,不必追求一家视频,但同一阶段建议看一家视频。

Java基础学习阶段
该阶段对应Java知识体系中的Java基础,方法为学习+刷题,每天学习8小时,推荐总时间控制在60天左右,推荐以视频为主,工具书为辅。

学习JavaWeb 中Servlet/Jsp这部分内容的时候,除了要跟着教程的案例一个一个敲代码,最后一定要动手敲一个小网站,网站内容囊括 Servlet、jsp、Session、Cookie、JDBC、Ajax等相关技术,包含具体登录注册功能、文件上传下载功能、页面访问计数等功能,可以从网络上获取一些前端页面模板或者UI框架(推荐Layui或者EasyUI)进行修改。

框架学习阶段
框架学习+项目实战,每天学习8小时,建议控制时间在60天,推荐学习方式是视频+文档资料学习。

JavaWeb中Servlet/Jsp很少在企业直接使用,学习企业级开发框架才是重中之重,框架类如果单纯为了学习应用的话不要买书,因为主流框架技术更新迭代较快,大部分书籍跟不上技术的发展;如果为了深入理解框架设计、原理可以买对应框架的源码分析类书籍(要注意框架版本)。在寻找视频或者博客教程的时候要留意文章或者视频的发布日期,如果太早的话不建议观看。

在框架中,重中之重的是Spring、SpringMVC、Mybatis、SSM、SpringBoot等。学习顺序的话建议从Mybatis到Spring到SpringMVC,三个框架单独学完之后再进行整合SSM框架,利用SSM写一些小案例。之后学习SpringBoot,再利用SpringBoot完成实战项目巩固学习。

从学习框架开始,你就要学会阅读官方文档啦,因为一个开源框架之所以流行成功,和它的文档资料等都是密不可分的,官方文档是第一手高质量资料。可能有部分官方文档没有中文版本,因此需要你有一定英语水平或者使用翻译。这里提供一些优质的专栏、博客分享给大家:

框架学习完,一定要多动手才能熟练掌握,如果你是学生可以根据课堂的任务或者学校的本创、大创写项目来提高熟练度并且不断拓展学习,如果你是非学生、非计算机专业没有项目条件,那你可以跟着项目实战教学视频去写项目巩固学习内容。

自我提升阶段
前面的内容学起来相对简单,是自学的核心内容,但是度过初期要学什么也要有个大概的了解,这里简单介绍一下并推荐部分书籍。

Java并发编程:《Java并发编程实战》

JVM:《深入理解JVM虚拟机》

MySQL:《MySQL技术内幕》

23种设计模式:《大话设计模式》

数据结构与算法:《数据结构与算法分析Java语言描述》(机械出版社黑皮书),坚持刷力扣

操作系统、计算机网络

JDK源码、框架源码

Redis、MQ等主流中间件

大数据、分布式、微服务、容器等部分

这部分的学习可能比起前面会枯燥一些,但想要变强突破初级的瓶颈就得沉得住气,静下心来学习。

Java自学常见疑难解答
在自学Java前或者自学中你会不会有这样的疑惑:

自学Java,学多久可以找到工作?

进大厂和进中小公司自学Java的侧重点有区别吗?

为什么学了那么久还只会“Hello World” ?

编程能力从什么时候开始突飞猛进?

以上选项无关对错,让我慢慢给你唠~

学Java迷茫,感觉学习没有方向,找不到正确的路线可以点

Java自学讨论组,互帮互助

1 自学Java,学多久可以找到工作?

如果是小白的话,每天保证8小时以上的学习时间,达到Java初级程序员的水平最快也要6个月。前5个月正常学习Java技术,最后一个月准备简历以及面试。Java面试非常重要,要找一些面经将面试常考的问题搞明白。可以到牛客上看看别人的面试经验也可到Github上找一下面经。

2 进大厂和进中小公司自学Java的侧重点有区别吗?

大厂更重基础,需要你对学习的Java内容有透彻地理解,以及学习和理解数据结构与算法、操作系统、计算机网络、设计模式。而小厂更重项目和框架的使用。因此不同的定位,决定了在学习和面试准备的时候要有不同的侧重点。

还要提一点,大厂都注重编程能力,会笔试算法题,对应届生的要求更高,所以如果有条件的话一定要把剑指offer刷2-3遍,力扣最好能刷100题以上(学生的话刷200题以上)。

3 为什么学了那么久还只会“Hello World” ?

学那么久只会"Hello World"就是因为只看不练或者练少了。很多人在学习时眼高手低,不去敲代码或者只是copy一下执行,到后面碰到有难度的代码,就发现自己啥都不会。

解决这个问题一方面是学习途中遇到的案例都要动手敲;另一方面就是要刷题巩固,因为跟着案例,逻辑上还是有所依赖,但刷题时必须要自己充分思考才能通过。

所以自学Java,要一步一个脚印,每部分的案例都要动手去实现,并在实现的基础上去巩固和创新。

4 编程能力从什么时候开始突飞猛进?

编程能力的进步靠练习,一般突飞猛进会有两个阶段。

第一个突飞猛进就是学完Java基础部分。刷了100题左右,这时候遇到简单逻辑题都可以轻松解决,自己的逻辑能力、编程能力都有不错的提升,你会觉得自学Java这么久,努力没白费。

第二个突飞猛进的体会就是独立完成一两个项目的后端模块时。从搭建项目、到MVC分层编写业务逻辑代码会让学到的知识真正应用起来,自己会有点窃喜:哇,我自己也能写项目啦!这时候就是编程能力的第二次突飞猛进。

当然,后面可能也会因为一些其他原因让自己再次突飞猛进,但总的来说,想要突飞猛进,就要在短期内高强度学习、高强度敲代码。

文章总结
通过上面自学Java的介绍,我想你对Java的学习方法和路线已经有所认识和掌握,通过一张表来复习一下。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值