我的Java技能树点亮之路
编程思想
脱离于语言之上的一些不变的知识
- 设计模式,重构,Clean Code ,代码大全,Unix编程艺术
- 算法导论什么的就算了,但是至少得学会实现《数据结构》上的集中最基本的数据结构,java实现
- 理解 SOA面向服务架构
工具加成
让自己的开发工具从小刀变成
- Linux &shell &vim
- Ngix
- 工具类 google guava, apache-commons
- 构建工具maven,gradle
- Web容器 tomcat
- 版本控制git
- java8新特性
- mysql&mariadb 数据库进阶,慢查询,数据库引擎,索引
- 熟悉Http,《图解HTTP》
- 了解使用noSql,mongodb
Java进阶
并发编程
- 熟悉NIO&OIO
- 熟悉一个NIO框架,我选Netty
- 熟悉JDK java.util.concurrent包的类,BlockQueue,CocurrentHashMap,Semaphore等
- 再读一遍《Java并发编程》
- 深入理解Java内存模型
JVM相关
- 熟悉GC的原理
- JVM相关工具使用以及调优
- 读完《深入Java虚拟机》,并实践
- ClassLoader相关深入理解
- 动态代理,Cglib使用
一些框架
- 分布式缓存memcached
- 消息队列ActiveMq实现原理以及使用&JMS的使用
- 深入Spring相关,Spring Boot等
- RPC框架Dubbo
- 深入Mybatis,实现原理,缓存使用等
云相关
- Zookeeper,在linux上部署
- Hadoop
- Hive
Java之外
- 学习一门动态语言:Ruby,体会Ruby元编程
- 使用Rails实现自己的项目
- 作为Java开发者,Scala自然不能少
- 学习开源项目 Apache旗下的, Thrift,Tomcat、Mina等