关于JAVA学习路线中的学习重点的整理和思考
由于很久没有更新博客和公众号了,找了点以前的资源,暂时发一下更新
学习背景
我大约是15年左右才真正开始进入JAVA开发的队伍,在这之前一直是用.NET技术的,大家也知道.NET封装的很多东西,当时并不是开源的,有些东西只是知道用,并不了解其背后的实现。 而JAVA确不同,完全开源,任何一项功能都需要程序员亲力亲为,当时除了一些基础的类库方法不用自己写,很多都需要自己去写,当时也有Spring框架,但还没有到今天这么完善,所以一些不算太复杂的编码基本都是靠自己去思考和设计。 到2020年学习java也有几年了,但总还是觉得没什么大的进步,有些东西知道,有些东西不知道,有的知道一部分,感觉是很乱,很碎片化的,所以当时也在探索到底怎么样才能把JAVA技术真正学习好。
1.jvm基础
jvm执行过程、jvm内部整体结构、jvm内部结构详情及各自作用、jvm垃圾回收、jvm参数配置、jvm内存调优、jvm常见出现的问题及解决办法
引申思考:从jvm的设计能学到些什么,实现了什么算法、怎么实现的、在什么场景可以采用类似的设计和算法技术的应用等。
2.java编程基础
核心重点:java.lang java.util java.sql java.io java.net java.text
重点关心一些具体的算法实现过程,不仅要能看懂,要会写,还要思考是否还有其他的思路去解决类似的问题,要把思考的结果也公布出来。
3.工具(构建工具、版本控制、设计工具)
这个过程较为复杂,要学习ant maven的构建、cvs或svn的版本控制、设计工具也有很多,先选择一种进行,后面再持续的进行调整,比较分析出他们的不同和优势劣势等。
目标:完成一套工具的学习,写一份学习心得体会,最好能够用部署在服务器上的实例说明问题。 同时也要学习并思考如何去画uml图,多做示例练习,熟练掌握工具用法。 尽可能的结合公司现有的行业业务,进行练习,也能一定的促进熟悉业务过程。
4.编程进阶
数据结构、算法、设计模式、tcp/ip、操作系统理论
5.java io处理
网络和并发
6.开发框架
常用框架技术详细了解,并分析优缺点
7.常用工具类库
8.远程调用技术
9.应用型编程理论
消息推送、单点登录等
10.大型技术框架的设计
例如Tomcat的代码设计、Netty框架设计、工作流Activiti代码实现的设计、Spring的代码设计等
总结
这里只是做了一些大方向的总结,希望能够提醒自己和读者,循序渐进,形成系统化的知识结构。 这些大的方向中,还可以逐级的细化,一点一点的把知识能量转化为自己的技术能力,有了理论的基础再结合大量的实践和思考,成为大神就变得指日可待了。
编程是一件“学无止境”的事情,从不会到简单的学会,从学会到简单的抽象,再从简单的抽象到高级的抽象,直至完全把理论知识刻在骨子里,再通过在实践中的不断地探索和思考,无论是什么形式的学习,都会让你一步一步地成为自己心中理想的大师。有条件的话,还能将这种能力变得更有价值。 咱们目前行业的状况其实大家都知道,从业人员特别多,但水平确实参差不齐的,如果你的技术能力掌握得更好,一定能够找到心仪的工作。 虽然也面临AI代替编程的挑战,但如果你的技术能力够强,一定是人胜于天,更胜于机器,毕竟机械化的生产一定有他的弊端,再怎么改进,也会有不如人意的地方。
上面十大点钟,有九点是我2020年的笔记,第十点是今天补充的,时间过去也有三四年了,可能技术发生了很多变化,如果大家有更好的思路和想法,欢迎大家多多交流。