Java学习总线
刚毕业工作的时候以为掌握那些知识就够了,再加上第一份工作过于轻松,以为这个行业也就这样,其实是我太井底之蛙,被先入为主,随之而来的就是换工作时面试带来的巨大苦恼。
这里我就想说说某些培训机构太不负责了,为了钱而钱也就罢了,关键是ta会给你灌输一种思想:你只要会用就行了,搭框架,设计数据库表什么的都是架构师的事,你只要会用就行了。 这种先入为主的错误思想,如果在工作后处于超级传统的行业,仅仅就是CRUD,业务也不复杂,同事也是混混罢了,你的后路将会为0,你的下一份工作与你Very far away。萌新难免会被忽悠,这个行业最大的忽悠就是某些不负责的培训机构的老师。
最好的学习时间是上大学那会,工作之后学习时间会变少,其实不是变少,而是你根本不想学,总觉得没方向。艰难的环境下你不学习,难道环境变好了你就会主动学习吗?(这里需要倒过来理解)。
工作中大概都是有空闲时间的,有空闲就看看博客,多接触点自己的行业,看过了有点印象。切回正题,本人总结的学习总线,第一年算是接触行业,把行业环境熟悉起来,不必那么快去学以下的内容,先将之前所掌握的“皮毛”熟悉熟练起来,大概有个底之后再进入真正的JAVA学习阶段(其实这些算基础,而你之前学到的是入门)
数据结构与算法
只要你是学习计算机类门学科,数据结构与算法都是必学的知识点之一
JVM
JVM其实不难,平时多多少少有听说过一些堆、栈等内容,如果你需要系统学习,这些远远不够,网络上大多数博客的内容也总是反反复复,因为它们几乎同出师门—— 《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》 ,看博客比较零散,而系统化读书,会更有深度。
Java 集合&工具类
每一个分类都必须掌握并熟练使用,以及相关的实现原理,源代码阅读。常问的如:hashMap的原理等等。
并发编程
并发编程不仅仅是如何实现线程那么简单,深入了解需要掌握一些计算机组成原理。并发编程涉及较广,也需要掌握一些JVM基础,可以通过视频教程去学,如果没有好的视频教程,那么就看书吧,所谓的教学视频,只不过是他们将对书中内容的理解简单化传授给你,想要深入了解还是需要看书——《Java并发编程的艺术》
数据库相关
目前流行的有Redis 、Elastic Search、MySQL、MongoDB
如工作中使用到的Mysql,你需要去了解高级特性,索引原理等等;如果工作中没有用到,你也需要去了解如何使用,掌握使用方法只需要一篇博客,留个印象比不知道好。
高级进阶分割线
设计模式
《Head First 设计模式》
框架
目前流行的有:Spring、Mybatis、SpringMVC、SpringBoot
框架的学习,不仅仅是知道怎么使用,还要知道其原理,这部分是有一定难度的,需要一定的工作经验。面试中常见问题需要直接掌握。 推荐书籍——《Spring 技术内幕》
分布式
目前流行的有: Dubbo 、SpringCloud
本人侧重于SpringCloud,原因嘛~简单一些。首先就要掌握其中丰富的组件如何使用。说到框架基本上都需要去了解原理,Dubbo原理? Enruka的原理? Hystrix的原理?而分布式还需要了解更多内容,如:分布式事务,消息中间件等等
总结分割线^ ^
看起来非常多的知识点,其实确实非常多的知识点,这就是JAVA的半壁江山,基础部分是必须掌握的,需要花时间,切记不要犯“完美主义”的错误而放弃学习,不够聪明,就多学习几遍,慢慢熟悉掌握,只要处在学习中了,编织的知识网就会越来越大!滴水穿石,非一日之功!