视频?还是书籍?
对于java自学,前期而言,我个人推荐是先从视频开始入门的,视频、博客文章、官网文档或者书籍之间的有如下的有对比。
视频:由老师整理,内容相对较新,而且重次分明,有老师的分析和讲解,对于新手而言比较友好
博客文章:一般是由博主进行整理,有些文章的质量很高,而且重次分明,这种时候学习起来还可以,特别是有学习案例的,但是现在的博客环境不是很好,各式文章参差不齐,在查找文章的过程可能就会浪费很多的时间
官网文档:官方文档一般知识点比较全面,各式各类十分系统,但是难点就在于需要懂些英文,而且有些文档不会特别详细,只会给一个简单的demo,所以如果遇到的话,可能要深入源码去查看之类的
书籍:书籍也是不大推荐新手去看的,他跟官方文档一般,也是十分系统跟繁杂的,知识点会讲的比较详细,次重点不是很明确。比较适合在有一定的水平基础上,去深入研究的时候学习,例如《java编程思想》的厚度就跟砖头一样,当枕头都会觉得厚。
啰嗦了这么多,就是为了证明,新手入门任何语言,建议选择的是视频入门,有老师带,比自己摸索好一些,当然看视频可能会费时间,所以可以开启1.5或者2倍速,找到自己思维跟的上的速度进行学习。不要觉得看视频很慢很浪费时间,因为慢即是快,看视频有讲解,总比看书看了很久却没有一个重点,或者遇到一个问题卡了很久要好,当然也不是说看书不好,只是针对于性价比而言去分析。
学习路线
1、java基础
对于java基础,我们这边主要是以入门为主,不太过深入,所以这里大部分教程以“遇见狂神说”的视频为主,可以在后面复习java面试题地时候再进行深入的学习,以免我们现在过于深入导致丧失学习的兴趣
【狂神说Java】Java零基础学习视频通俗易懂
[图片上传失败...(image-dd5edb-1653230366162)]
不过这个课程相对而言比较简单,课程有80集。但是对于集合,多线程,jvm等没有过多的介绍,但是对于简单入门应该是ok的
学习基础语言的过程,一开始是会有些枯燥的,因为基本上都是一些知识点,或者一些用法和概念。这个时候需要有耐心,就像我们学英语一样,把一个要点和一个公式记下来就可以了,还有事情说三遍,敲代码和做笔记!敲代码和做笔记!敲代码和做笔记!
当这个学习完之后,可以学习
【狂神说Java】多线程详解
[图片上传失败...(image-530c22-1653230366162)]
【狂神说Java】注解和反射
[图片上传失败...(image-6b5ee7-1653230366162)]
【狂神说Java】网络编程实战讲解
[图片上传失败...(image-61b51c-1653230366162)]
狂神对于集合的没有讲述,所以我们可以看黑马的课程,或者尚硅谷,这里列出的是黑马的
黑马程序员全套Java教程_Java基础入门视频教程,零基础小白自学Java必备教程
[图片上传失败...(image-29ab84-1653230366162)]
可以从P220开始看,看到p268,或者如果觉得不错看的下去的话,也可以继续往下看
[图片上传失败...(image-d7a90f-1653230366162)]
[图片上传失败...(image-4a5d8f-1653230366162)]
然后对于GUI是可以不用去看的了,这个用于实际的后端开发不多,然后jvm这里我也不大推荐先去学习,可以到后面再学
2、mysql
mysql是数据库教程,基本上掌握我们常用的安装,增删改查就ok了,后续像锁,视图,存储结构等知识等复习面试题的时候再去进行学习,所以我们仍旧以简单使用为主
【狂神说Java】MySQL最新教程通俗易懂
[图片上传失败...(image-a5b098-1653230366162)]
3、javaWeb
javaweb是我们开始做项目的基础了,虽然现在很多技术栈都使用spring和springboot,但是我们还是应该学习一下,这对于我们对项目的基本运行有一定的了解
【狂神说Java】JavaWeb入门到实战
[图片上传失败...(image-3672f-1653230366162)]
但是对于视频里面的jsp可以不用过度的去学习,简单了解一下就好了,因为这个技术栈现在已经过时了,基本上是不适用了
[图片上传失败...(image-8445a8-1653230366162)]
4、ssm
虽然现在大部分使用的是springboot,但是我们ssm还是需要使用的,因为springboot只是在spring的基础上对其进行封装而已,所以我们要理解这个中间的过度,而且有些企业还在用ssm,所以我们是需要学习的
【狂神说Java】Spring5最新完整教程IDEA版通俗易懂
[图片上传失败...(image-5188b9-1653230366162)]
【狂神说Java】SpringMVC最新教程IDEA版通俗易懂
[图片上传失败...(image-14f59b-1653230366162)]
【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂
[图片上传失败...(image-a8f00b-1653230366162)]
以及学完ssm之后,进行项目的简单整合
【狂神说Java】SSM框架最新整合教学IDEA版
[图片上传失败...(image-e4dfb8-1653230366162)]
然后你就可以进行基本的增删改查啦,这一步是非常重要的,基本上贯穿着我们后端的生命线,大部分的业务基本上都离不开这个,所以我们是一定需要学习的
5、springboot
springboot是现在微服务比较流行使用的框架,搭配springcloud使用
然后springboot学习的话,我是十分推荐尚硅谷雷神老师的课程的,雷神老师yyds
尚硅谷雷神SpringBoot2零基础入门springboot全套完整版(spring boot2)
[图片上传失败...(image-28a8ce-1653230366162)]
大概就到了这里,因为对于新手而言,这上面这些东西的学习已经需要花费很多的时间了,而且基本上也已经够用了,在实际工作中,其实大部分项目都只使用了springboot或者ssm,还没用使用到springcloud的地步,因为当开始使用分布式的时候,一般是需要一定的并发量和使用量的,但是大部分企业还没有到这个地步
然后学完还有精力学习的话,就可以学习下面这些,不过建议先不着急啦,这个时候可以看看面试题,或者如果有大厂梦的话,就该好好刷刷算法题了
1、springcloud
2、linux
3、git
4、mybatisplus
5、es
6、docker
6、面试题
java面试题,简称java八股文,是每一个程序员必看的了,也可以说基本上跟程序员的薪资挂钩的了,可以说是一个不会java面试题的程序员,不是一个好的程序员
面试题太多了,就不一一在这里发出来了,可以关注gzh 【I am Walker】或者私我询问哦
7、算法
算法虽然在中小厂的实际工作中用的不多,但是在校招和大厂的社招,却是十分重要的一环,手撕算法,这是非常有必要的,如果算法不过关,基本上笔试是等着被刷的结局了
对于算法的学习,我们一般都是在leetcode进行刷题,可以百度自行搜索
然后我这里有个特别推荐的,对算法的学习十分有帮助的一位博主,carl
他的网站,十分地良心,将各类算法进行分类,以及有很好的总结,相对我们在leetcode一道题一道题的刷而言,他网站提供的方式,可以让我们学习的更加系统,所以是十分推荐的。
代码随想录
[图片上传失败...(image-81cef6-1653230366162)]
总结
这大概就是walker 自己的认知范围内的学习路径啦,可能有不正确的地方,欢迎指正,然后也希望能帮忙点个赞啦!