java从0开始学习笔记及路线
## 序言简单的介绍下自己,一名在校大三菜鸟
你们可以看下我主页,在*2020-12-29*发过[ 用python爬取jk小姐姐照片慢慢看](https://www.52pojie.cn/thread-1340115-1-1.html)帖子,当时的我有多么菜,刚会用python获取网页信息,就迫不及待的想表现以下,整文没什么亮点,最后还没写完整,只获取了图片地址,没保存到本地功能。
**学java一定不能急于求成**,不能像我一样还不会python基础,直接就去干python爬虫。java一定要往后学,因为每当你学完一种技术,以后你写项目了,就会多一种思路!
举个例子,大一的时候,爱用易语言写一些机器人插件,我只知道数据库概念,但没学,于是自己写了个小功能用txt当做mysql储存一些信息,后边等学校讲到了数据库,就知道了数据库的强大。
话不多说,学习java有一段时间了,以下是我目前学习过程,希望能帮助到那些开始学java,和刚入学即将学java的同学们
## JavaSE基础阶段
学校里讲课一般都用的 Eclipse(免费),但我建议使用 **IDEA**(虽收费,但百度教程一大堆,你们懂的)
工具没有好坏,自己用的顺手就行,但后边的教程使用的工具是IDEA,用eclipse的同学配置一些东西就可能比较麻烦
> 首先是javase阶段
我看的是黑马程序员的教程,资源(百度网盘)是在本论坛找的,虽然老师讲可以,但是里面只有视频,没有笔记和资料,我推荐你们去bilibili看。
在b站搜下java就有很多教程,尚硅谷、动力字节、韩顺平、黑马,根据自己的学习习惯选择一个看即可
记住,**不能急于求成**!像“7天零基础精通java”这种标题的视频,就直接pass,根本不可能。
- **良好的学习习惯很重要**
SE阶段学的东西挺多的,建议你们一点要**记笔记**
笔记软件有很多良心软件,例如:语雀、有道笔记、typora
我推荐你们用 **markdown**(不懂的百度)语法写笔记,其中语雀和typora都支持
原因:因为**大多平台都支持markdown**,以后你们把笔记放到自己博客,或者某些平台(CSDN),直接复制过去就行,就不需要再调整格式了。(我比较喜欢用typora,**关于如何免费搭建博客下面有提到**,请耐心看)
然后我按照狂神笔记(**狂神课堂全部笔记我放到了最下面**,不过是pdf格式)复习了一些内容。
按照狂神笔记整理的md笔记在线预览地址:(https://oddfar.github.io/notes/java/)
当你们学完javaSE阶段,在学校里一般就是学完你们上课用的书,就进入了web阶段
## JavaWEB阶段
> 前端阶段
进入到网页开发阶段,首先前端三个基本技能:html+css+JavaScript,必学的,你可以不熟练,但必须要学
可以看狂神的,快速入门(其实入门就够学校里日常使用了,毕竟我们要主攻后端)
- html:<https://www.bilibili.com/video/BV1x4411V75C>
- css:<https://www.bilibili.com/video/BV1x4411V75C>
- JavaScript:<https://www.bilibili.com/video/BV1JJ41177di>
> mysql
- 基础
我看的是狂神的,虽然讲的是基础,但入门是够了,后边需要学一些mysql高级教程
**狂神:**<https://www.bilibili.com/video/BV1NJ411J79W>
- 高级
这个不着急学,因为涉及到linux,需要把linux学了再学这个,这里只是先提一下概念。
内容有mysql索引介绍和使用,sql语句优化,缓存、内存管理,并发参数,日志,常用工具,主从复制......
**黑马**:<https://www.bilibili.com/video/BV1UQ4y1P7Xr>
我同学看的是诸葛的,听他说也挺不错,这两个你们自己选择吧。
**诸葛:**<https://www.bilibili.com/video/BV1xh411Z79d>
> JavaWeb
我看的狂神的,你们看他的就可以了:<https://www.bilibili.com/video/BV12J411M7Sj>
因为其他视频所需要的依赖大多是需要自己导入jar包,狂神的用maven,比较方便
里面的 JSP 技术现在已经不用了,不需要过多费精力学,不过建议还是要过一遍的。
笔记预览:<https://oddfar.github.io/notes/javaweb/>
## 框架阶段
> ssm框架
ssm就是:spring、springmvc、mybatis框架
一句话简单的说,用了框架写代码直接起飞,很方便!
按照狂神的顺序学,快速入门一下
- mybatis:https://www.bilibili.com/video/BV1NE411Q7Nx
- spring5:https://www.bilibili.com/video/BV1WE411d7Dv
- springmvc:https://www.bilibili.com/video/BV1aE41167Tu
mybatis笔记:<https://oddfar.github.io/notes/mybatis/study-note/>
因为我最开始学习,并没有记笔记的习惯,后边就只整理了mybatis的。
Spring,Spring Boot, Spring Cloud 等一些笔记,现在所学尚浅,且没时间整理,后续可能会极大的丰富这个系列的笔记
> springboot框架
其实我大多视频都是看的狂神的。
springboot还是建议你们看下 尚硅谷 的:<https://www.bilibili.com/video/BV19K4y1L7MT>
狂神讲到翻源码那块,很模糊,我同学一开始是看的狂神的,看了一半去看尚硅谷的了,说雷神翻源码那块讲的挺易懂的
> springcloud框架
没什么好说的,看尚硅谷的就行,狂神讲的不全
尚硅谷:<https://www.bilibili.com/video/BV18E411x7eT>
> mybatis-plus
狂神的即可:<https://www.bilibili.com/video/BV17E411N7KN>
学完直接起飞,sql语句都不用你写了(复杂的sql还需要自己写),非常方便!
笔记:<https://oddfar.github.io/notes/mybatis-plus/study-note/>
> JUC 和 JVM
JUC我看的狂神的:<https://www.bilibili.com/video/BV1B7411L7tE>
JVM我还只是扫了一眼,准备看尚硅谷的。
**学完linux就可以学mysql高级教程**
> linux
linux的使用看狂神入门就行:<https://www.bilibili.com/video/BV187411y7hF>
> git
尚硅谷的,直接好评,讲的特别全:<https://www.bilibili.com/video/BV1vy4y1s7k6>
因为给的文档很全,就写了一点笔记:<https://oddfar.github.io/notes/git/>
> nosql 方面
elasticserch:<https://www.bilibili.com/video/BV17a4y1x7zq>
redis:<https://www.bilibili.com/video/BV1S54y1R7SB>
这两先看狂神的入门就行,笔记我也写了,浏览找下就行!
> 中间件
消息中间件有很多,建议先学一个RabbitMQ就行,其他的看自己需求再来学
视频:<https://www.bilibili.com/video/BV1cb4y1o7zz>
笔记:<https://oddfar.github.io/notes/rabbitmq/>
## 项目开发
我学的是尚硅谷的商医通项目,因为为了快速入门,所以就找了个时间较少的(40多小时)
学完之后,怎么说呢,内容有点混乱,适合快速了解前后端开发流程。
因为我在校所学专业是.net方向,且自学java时间较晚,时间不太充裕,于是就选择了这个项目。
如果时间充裕的话先学下尚筹网,**根据自身情况来学习!**
>尚筹网项目 --> 在线教育项目 --> 谷粒商城项目 --> 尚医通项目 --> 尚融宝项目
视频bilibili搜就行
Gitee 有一套后台快速开发框架:https://gitee.com/stylefeng/guns
springboot单体版本开源,前后端分离版本收费。
前台用的layui,适合快速写一套后台管理系统。
我用这个快速开发了个“网课”提交系统,由于接了个活,是私人定制的,以后有机会了就开源!
你们可以了解下,希望能帮到你们
## 工具部署方面
> Docker
Docker 入门:<https://www.bilibili.com/video/BV1og4y1q7M4>
Docker进阶:<https://www.bilibili.com/video/BV1kv411q7Qc>
也没什么可说的,过一遍
笔记:<https://oddfar.github.io/notes/docker/>
> Jenkins
推荐大家学一下,因为等项目开发阶段,编写前后端分离项目时,可以和同学合作
大三实训课,授课内容是新闻发布系统,但是我所在专业教的是asp,我觉得用特别特别老技术,就像是“故步自封”,但由于网上asp教程不好找,后来就去学java了。
这个授课项目和同学分组一起写,他负责前端(vue),我负责后端(springboot单体项目,微服务项目服务器配置不支持,且升级成本过高,所以不考虑)。
因为是多人合作开发,需要我后端写完并发布到服务器上,他前端才能进行编写及测试。
测试功能,需要手动打成 jar 包,然后部署到服务器,这些重复工作大大的消耗了时间。
如果每次都这样配合前端,还不如我直接自己一人全栈开发省事呢。
于是就用到了 Jenkins ,配置好后,只需要提交代码到 Gitee ,就可以自动构建部署上线,不需要之前的手动重复操作。
因为只是用这个功能,看这篇文章就行:[从零开始用Jenkins自动构建部署SpringBoot项目](https://blog.csdn.net/A_zhiyuan/article/details/120328816)
## 补充
- 数据结构
韩顺平讲的就可以,这门课大学里都会讲,建议边学边去力扣上刷刷题。
- 计算机网络基础
这门课也需要学学,没看过视频,听的学校里讲的,先不做推荐。
## 博客
> 免费博客
- hexo + github 搭建博客
- vuepress + github 搭建博客
这两教程网上很多,自行搜一下就行
> 需要服务器
有能力的可以买个服务器自己搭建(学生机一年90左右),搭建个宝塔。
有几个开源博客挺好用的(WordPress,typecho等等)
## 结尾
学习java一定不用急于求成,一步一步来,上面是我的学习路径,希望能帮到你们。
有什么不足的地方,请各界大佬补充一下。
> 狂神笔记:
链接:<https://pan.baidu.com/s/123Oye5xZYfindbCCiIvG2w>
提取码:zvdg
> 我的笔记
在线预览:<https://oddfar.github.io/notes/>
GitHub:<https://github.com/oddfar/notes>
Gitee:<https://gitee.com/oddfar/notes>
笔记md文具在仓库里,有需要的自行下载。笔记网站搭建方式也写到了上面!
本人学识尚浅,笔记内容难免有错,有错地方请各位大佬斧正,尽情批评!
笔记都是自己一点一点整理出来的,整理不易,无私分享大家,请多多支持!希望可以给我点个star,满足一下虚荣心! 楼主牛啊{:301_993:} 感谢分享 学习下 :lol 楼主这是自学了多久.. anwen 发表于 2021-9-17 18:57
楼主这是自学了多久..
我从今年年初从0开始学的,我太菜了,自觉性不强,再加上我在校所学专业是.net方向,所以大部分java是在假期学的,学的挺慢的。 挺快了 都学到框架了 哈哈{:301_978:} 感谢分享,学习了。 惭愧,本来是想用java吃饭的吧,又去搞算法,几个月算法之后,又去搞py,搞了py之后,c/c++ golang Android arm 等逆.向.渗.透的都学过来了 QingYi. 发表于 2021-9-17 19:53
惭愧,本来是想用java吃饭的吧,又去搞算法,几个月算法之后,又去搞py,搞了py之后,c/c++ golang Android arm...
我一开始也是搞这个搞那个,后边意识到不行,学校课程保证不挂科就行,其余精力就来学java 支持楼主
写的不错,可以参考