社群论坛交流:最大众化的就是添加一些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页(?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入门到实战视频(
JavaWeb部分,如果遇到一些错误很难解决跳过,可到Github找一些可运行的项目进行跑。有些东西不一定非要死扣,资源教程很多能跑出来对于初期才是最关键的。
学习JavaWeb除了跟视频外,也可以跟着教程网站或者博客专栏进行学习(例如菜鸟教程的Servlet(https://www.runoob.com/servlet/servlet-tutorial.html)),因为跟着教程网站在代码学习上效率较高,当然在学习别人代码的时候要有自己的创新。