知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

java自学有效果吗?

发表时间:2022-03-23来源:网络

大二当然可以自学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 ,我要自学网等也可看看。

视频网课网站

动力节点:http://www.bjpowernode.com/javavideo.html 有很多免费不错的课程

慕课网: https://www.imooc.com/ 有免费有付费

B站:https://www.bilibili.com/ 有"B站大学"美称

对于视频类教程网站,首推B站,很多培训机构会将部分高质量视频放到B站吸引用户,这些免费资源可以利用好,并且B站是个开放的平台,有很多up主会自己录一些视频讲解也是相当不错的。还有一些培训机构例如传智播客、尚硅谷、达内等可以到官网获取一些免费知识,还有一些课程网站例如腾讯课堂、潭州教育、拉勾、极客时间、蓝桥云课、开课吧等很多课程在刚开始推广期特别便宜可以入手一波学习。

当然,获取视频教程还有一个途径就是向别人要,很多公众号号主将资源分享在公众号后台可以免费获得,还有一些资源可以通过淘宝和咸鱼低价获取网盘资源,还是很值得。

刷题网站

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

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

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

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

其他学习网站

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

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

知乎: https://www.zhihu.com/ 有很多高质量问答、文章、专栏

掘金:https://juejin.cn/ 社区较新,前端用户较多,内容质量相对较高

思否:https://segmentfault.com/ 文章内容质量不错,问答质量较高

github:https://github.com/ 全球最大开源社区,有非常多的开源项目

Stack Overflow: https://stackoverflow.com/ 全球最大技术咨询交流平台

V2EX :https://www.v2ex.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天左右,推荐以视频为主,工具书为辅。

本阶段的学习推荐视频为回车课堂的《Java入门教程》(总时长约30小时)(https://ke.boxuegu.com/sceneDetails?sceneId=10)。看视频的时候1.5倍数看(看不懂可以倒回来多看几遍,最好不要原倍速看),遇到案例就暂停,自己动手跟着敲一下(划重点,跟着敲非常重要,看懂不等于真懂)。

看完视频,再看书上内容,推荐《Java从入门到精通》或《Java核心卷 Ⅰ》。如果对应的内容很容易懂那就说明学习的效果不错,如果不懂的话就多看书研究一下或者再找一些博客文章学习一下。书上的案例也要跟着敲写。

学完后,你还要检验自己学的怎么样,可以通过刷一些简单题来巩固。我建议到杭电第11页http://acm.hdu.edu.cn/listproblem.php?vol=11)或者C语言网https://www.dotcpp.com/oj/problemset.html)去刷一些简单题检验自己,成功完成一道道题会让自己获得成就感,有继续学习的动力。

在这个阶段,你可能学习了大量集合框架的使用,但是不了解为什么,比如很难理解为什么ArrayList查询快,LinkedList插入更快,这是因为你没有数据结构与算法的储备,所以在这一阶段的最后,你要补一补数据结构与算法的内容(第一遍学习以看和理解为主,不需要自己实现),这里我推荐王道考研数据结构视频和B站青岛大学王卓老师的数据结构与算法专栏https://www.bilibili.com/read/cv3285768),虽然这两个都是以C语言角度讲的,但是不妨碍你理解,如果有兴趣要动手实现各种数据结构与算法,可以到博客上查找实现方式。

在这个期间当然也要刷题了,但不推荐在杭电和C语言网刷题了,此时建议刷“剑指offer”上的题,剑指offer共计67题都是高频笔试面试题,并且有很多都和数据结构有关系。也许刚开始刷的时候会比较吃力,力扣https://leetcode-cn.com/problemset/lcof/)和牛客官网https://www.nowcoder.com/ta/coding-interviews)对应题目讨论区有很多优质讲解可以学习。

JavaWeb学习阶段

JavaWeb部分,每天学习8小时,建议控制时间在30天左右,推荐学习方式以视频为主,教程网站为辅。这部分内容虽然相对简单,但涉及到很多新的技术和概念需要时间吸收理解(例如HTML,JavaScript,CSS,JQuery,MVC,Ajax等)。学习JavaWeb推荐B站狂神JavaWeb入门到实战视频(https://www.bilibili.com/video/BV12J411M7Sj?from=search&seid=5650664425103872007),大概25小时左右,同样也要倍速看。在学习JavaWeb的时候,会涉及一些其他领域的东西比如Html,JavaScript,CSS,MySQL等你不需要学的很深,先会一些基本的就可以。另外看视频的时候JSP部分可简略看,尤其是标签、EL表达式那块应用已经很少很少了,快速浏览即可。

JavaWeb部分,如果遇到一些错误很难解决跳过,可到Github找一些可运行的项目进行跑。有些东西不一定非要死扣,资源教程很多能跑出来对于初期才是最关键的。

学习JavaWeb除了跟视频外,也可以跟着教程网站或者博客专栏进行学习(例如菜鸟教程的Servlet(https://www.runoob.com/servlet/servlet-tutorial.html)),因为跟着教程网站在代码学习上效率较高,当然在学习别人代码的时候要有自己的创新。

学习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完成实战项目巩固学习。

推荐狂神系列视频:

狂神Mybatis教程:(https://www.bilibili.com/video/BV1NE411Q7Nx) 视频长11小时左右狂神Spring教程:(https://www.bilibili.com/video/BV1WE411d7Dv) 视频长8小时左右狂神SpringMVC教程:(https://www.bilibili.com/video/BV1aE41167Tu) 视频长10小时左右狂神SSM整合教程:(https://www.bilibili.com/video/BV1RE41127rv) 视频长3小时左右狂神SpringBoot教程:(https://www.bilibili.com/video/BV1PE411i7CV) 视频长19小时左右狂神SpringBoot开发网站 (https://www.bilibili.com/video/BV19E411v7Ty) 视频长5小时左右

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

Spring 官方社区(https://spring.io/projects/spring-boot)Mybatis官网文档 (https://mybatis.org/mybatis-3/zh/index.html)Mybatis-Spring文档介绍 (http://mybatis.org/spring/zh/index.html)Mybatis中文社区(非官方) (http://www.mybatis.cn/)SpringBoot中文社区(非官方)(https://springboot.io/)方志明的个人博客(SpringBoot,SpringCloud教程) https://www.fangzhipeng.com/程序员DD的个人博客(SpringBoot,SpringCloud) (https://blog.didispace.com/categories/Spring-Boot/)孤傲苍狼的Mybatis专栏:(https://www.cnblogs.com/xdp-gacl/category/655890.html)纯洁的 Github仓库:[https://github.com/ityouknow/spring-boot-examples](https://github.com/ityouknow/spring-boot-examples

除了以上框架,还要学习Java后端必学的安全框架(Shiro或者Spring Security,可以学习其一);Redis缓存消息队列(选一种消息队列学习),后面有时间再学习其他中间件。

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

自我提升阶段

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

Java并发编程:《Java并发编程实战》JVM:《深入理解JVM虚拟机》MySQL:《MySQL技术内幕》23种设计模式:《大话设计模式》数据结构与算法:《数据结构与算法分析Java语言描述》(机械出版社黑皮书),坚持刷力扣操作系统、计算机网络JDK源码、框架源码Redis、MQ等主流中间件大数据、分布式、微服务、容器等部分

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

Java自学常见疑难解答

在自学Java前或者自学中你会不会有这样的疑惑:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

如果你觉得自己适合自学Java,必须要鼓足干劲一鼓作气!自学前先了解Java知识体系,掌握一些学习资源和方法,学习过程一定要多敲代码、多回顾交流。

IT界经常流传这么一句话:"talk is easy,show me the code"。自学Java,就是学会写代码,多多练习是非常非常重要的。之后的锦上添花是懂原理,但深入理解原理是一个任重而道远的过程。

码字不易,拒绝白嫖,还请关注、点赞、喜欢!

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜