往期精选(欢迎转发~~)
- Java全套学习资料(14W字),耗时半年整理
- 消息队列:从选型到原理,一文带你全部掌握
- 肝了一个月的ETCD,从Raft原理到实践
- 我肝了三个月,为你写出了GO核心手册
- 领域驱动设计:从理论到实践,一文带你掌握DDD!
- 常用设计模式汇总,告诉你如何学习设计模式
3个月时间掌握Java基础知识,分享楼主的学习心路历程。
前言
我是4月25日开始确定要好好学习Java,上周6月26日完成Java的第二阶段学习,总共学习Java共计64天,加上之前对基本知识的30天学习,共计约90天,算下来刚好3个月。下面简单记录一下我的Java学习轨迹,如何从Java小白,到基本掌握Java技术栈的常用基础知识。
温馨提示:本文中的所有文章,都可以进入我的公众号“楼仔进阶之路”获取。
JAVA基础知识
我是于今年3月,将JAVA的基础知识整体初步学习了一遍,主要是结合书籍《JAVA疯狂讲义》,包括Java的基本语法、集合、泛型、并发编程等基本知识。
因为项目需要,也简单学习了Spring、Spring Boost、Maven和Mybatis,只是很粗略的学习那种,比如说@Service注解是干啥用的,Mybatis是怎么操作DB等(其实主要是因为看不懂项目代码,用来扫盲用的。)
学习时间:3月1日 - 3月30日
设计模式
这个其实和Java没有太大关系,但是我还是把它列进来,因为在开发Java的过程中,不可避免会用到各种设计模式,所以希望尽快把这块的坑填完。
学习时间:4月25日 - 5月8日
学习内容:
- 《设计模式系列1 - 模板模式&策略模式》
- 《设计模式系列2 - 工厂模式》
- 《设计模式系列3 - builder模式》
- 《设计模式系列4 - 组合模式》
- 《设计模式系列5 - 单例模式》
- 《设计模式系列6 - 代理模式》
- 《设计模式系列7 - 装饰器模式》
- 《设计模式系列8 - 门面模式》
学习资料:菜鸟教程
学习心得:
- 不建议大家拿一本书,从第一个设计模式看到最后一个设计模式,如果这样的话,我保证你记住的,永远是最后一个设计模式。
- 设计模式需要结合实际的项目,才能体会的更加深刻;
- 如果当下没有实际的项目,可以回顾一下之前做的项目,然后再结合某个具体的设计模式进行学习;
- 设计模式不建议一次性学成,我是先结合当下和之前的项目,通过前6篇文章,将自己遇到的设计模式进行总结,最后两篇是项目中遇到该设计模式,然后才去学习。
总结:建议大家先结合之前的项目,对自己用到的设计模式进行总结学习,然后后面项目遇到相关设计模式,再进行该设计模式的学习,这样才能学以致用。千万不要抱着一本书,或网上的某个教程,去啃设计模式!!!
------- 真正的系统学习,是从下面开始的!!!-------
------- 真正的系统学习,是从下面开始的!!!-------
------- 真正的系统学习,是从下面开始的!!!-------
JAVA并发编程
这个是JAVA语法中非常核心的知识,学习这个的前提,是大家先掌握JAVA的基本语法,建议大家可以花一周时间快速看完一本讲解JAVA基础语法的书籍。
学习时间:5月9日 - 5月24日
学习内容:
- 《Java并发编程系列1 - 基础知识》
- 《Java并发编程系列2 - volatile》
- 《Java并发编程系列3 - synchronized》
- 《Java并发编程系列4 - final》
- 《Java并发编程系列5 - 对象的共享》
- 《Java并发编程系列6 - 同步工具类》
- 《Java并发编程系列7 - 线程池基本知识》
- 《Java并发编程系列8 - 多线程实战》
- 《Java并发编程系列9 - 锁》
学习资料:
- volatile:blog.csdn.net/u012723673/…
- 并发编程资料:redspider.gitbook.io/concurrent/…
- 内存模型(一般般):blog.csdn.net/javazejian/…
- 陈晓明:ifeve.com/java-memory…
- spring非常好的文章:www.cnblogs.com/szlbm/p/551…
- 栅栏:blog.csdn.net/qq_38293564…
- 线程同步工具:blog.csdn.net/yjc0403/art…
- 线程池:blog.csdn.net/mu_wind/art…
学习心得:
- 学习周期会比较长,我是分2个阶段学习,先学习内存模型部分,再学习并发编程部分;
- 最好结合书籍《java并发编程实战》来看,可以让你对并发编程有个整体的认识,其实这本书只是补充,对于你需要掌握的并发编程相关知识,里面的知识点可能只覆盖30%-40%;
- 一定要动手去写Demo,不要只看不写,否则很容易忘记;
- 最好是每看完一部分内容,能从你的项目中,找到类似的代码进行学习,这个印象更加深刻。(我最后是看完了我同事写的一个并发编程框架,后续如果让我自己写,我应该也能写出来)
Spring
这个不用我多说吧,我刚开始学习Java,感觉最头疼的就是这个Spring,里面一堆注解,看得我头都大了,难怪Java的学习成本比较高。
学习时间:5月25日 - 6月5日
学习内容:
- 【Spring基础系列1】基于注解装配Bean
- 【Spring基础系列2】很全的Sping IOC基础知识
- 【Spring基础系列3】Spring常用的注解
- 【Spring基础系列4】注解@Transactional
- 【Spring基础系列5】Spring AOP基础(上)
- 【Spring基础系列5】Spring AOP基础(下)
- 【Java基础系列】Lombok常用注解
学习资料:
- 菜鸟教程
- 原理篇:zhuanlan.zhihu.com/p/29344811
- 很详细的原理篇:www.jianshu.com/p/b60c30fdc…
- Configuration注解:www.cnblogs.com/cxuanBlog/p…
- transactional:blog.csdn.net/jiangyu1013…
- blog.csdn.net/mingyundezu…
- www.cnblogs.com/clwydjgs/p/…
- Spring IOC知识点一网打尽:juejin.cn/post/684490…
学习心得:
- 先学习注解,将项目中遇到的常用注解全部给扫盲掉,除了Sprin g的注解,还有Lombok常用注解;
- 主要掌握IOC和AOP知识,所以这个可以分2块来学习;
- 一定要自己写Demo跑一下,否则就是白学了!!!
- 学习过程中,比如学习某个注解,或者AOP,看完基础知识后,找项目中用到的地方,看使用姿势。
MyBatis
如果用到MySQL,或者其它DB,这个你是跑不掉的,哎,Java的框架,就是TM的多。
学习时间:6月6日 - 6月12日
学习内容:
- 【MyBatis系列1】基础知识(上)
- 【MyBatis系列1】基础知识(下)
- 【MyBatis系列2】MyBatis与Spring整合
- 【MyBatis系列3】MyBatis SQL执行流程
- 【MyBatis系列4】MyBatis与Spring Boost整合
学习资料:主要看的菜鸟教程
学习心得:
- 这个光看菜鸟教程,其实只能学到一些皮毛,最好是结合菜鸟教程,然后到网络去完善你的知识,比如掘金、知乎等;
- 八股文部分还是需要掌握,可以让你对MyBatis更了解;
- 不建议大家上来就看源码,可以稍微初步过一下别人写的博客;
- 一定要写Demo!一定要写Demo!一定要写Demo!重要的事情说三遍!自己去集成MyBatis和Spring和后面的Spring Boost。
- 最好的学习方式,当然还是项目啦,我学完基础部分,就开始去趴项目代码了,只要是MyBatis的部分,我都不放过。(小米中台有个地方用到MyBatis,涉及到各种接口的高深操作,我看了一天都没看懂,后面技能提高了,再回过头去看)
Spring Boost
又是TM的Java框架,以后谁再告诉我转技术栈影响不大,我要和他拼命。
学习时间:6月13日 - 6月20日
学习内容:
- 【Spring Boot系列1】一文带你了解Spring Boot(上)
- 【Spring Boot系列1】一文带你了解Spring Boot(下)
- 【Spring Boot系列2】还在为配置文件注解头疼?一文带你全部搞定!
- 【Spring Boot系列3】自动化配置详解
- 【MyBatis系列4】MyBatis与Spring Boost整合
学习资料:
- 教程:c.biancheng.net/spring_boot…
- 一篇搞定:juejin.cn/post/684490…
- 非常好的一篇搞定的文章:juejin.cn/post/684490…
- 面试题:juejin.cn/post/684490…
- 原理分析:juejin.cn/post/685457…
- 很好的原理分析文章:blog.csdn.net/mnicsm/arti…
- 非常全的流程解析:blog.csdn.net/hfmbook/art…
学习心得:
- 先掌握框架的八股文知识,主要是框架的加载流程;
- 实战部分主要掌握Spring Boost的配置部分,然后还有里面常用的注解;
- 还是需要自己写Demo,MyBatis与Spring Boost整合,已经给你安排上了;
- 这个就是更抽象版的框架,建议只先掌握上述知识,后面项目中遇到相关知识,再深入学习。
Maven
这块内容不多,主要是项目管理部分,一周时间绝对够。
学习时间:6月20日 - 6月26日
- 菜鸟教程
- 教程:www.runoob.com/maven/maven…
- 一篇搞定:juejin.cn/post/684490…
- 入门教程:juejin.cn/post/684490…
- 水文一篇:juejin.cn/post/684490…
学习心得:
- 先掌握基础知识部分,菜鸟教程足矣;
- 找几个Java项目,看看pom.xml是怎么写的,然后自己再去研究一下,基本就OK了;
- 后面还是跟着项目成长。
后续学习
- 微服务框架:Dubbo + SpringCloud
- WEB编程:SpringMVC + Servlert/JSP + Tomcat
- 进阶学习:《JAVA编程思想》 + 《深入理解Java虚拟机》
学完这些,应该才能进入Java的中级水平,下半年估计需要继续在Java中卷了,不过应该不会按照目前的这种学习强度,更多的时间会投入到公司的项目中,虽然目前又回到一线,但还是希望能在公司有更长远的发展,光靠这些其实远远不够,以后还得继续往管理发展。
学习时间安排
这个非常重要,很多人给自己列了一堆计划,就是很难实时,总结一句话就是“代码都写不完,天天改bug,哪有时间学习”,可以参考《发一篇水文,对自己的学习做一个总结》,如果你也能每天6点起床,每天坚持学习2个小时左右,无论哪门技术,相信你也能速成。
后记
距离上一篇水文《发一篇水文,对自己的学习做一个总结》,刚好一个月时间,这个算是第二篇水文吧,等我把后续需要学习的知识掌握的差不多了,就是我的第三篇水文了。
这周学习动力有些不足,一方面是因为自己的一些私事,另一方面是在思考一些问题,希望这个周末能调整好心态,开启新一轮的学习。
欢迎大家多多点赞,更多文章,请关注微信公众号“楼仔进阶之路”,点关注,不迷路~~