一、基础
1,语言基础
Java (以及其他语言Python,Go和一些前端涉略html Javascript)语法及语言特性
代码量要不断累积,主要是为了熟悉。
2,数据结构
数组,链表,树,图, 以及排序算法
3,linux命令
4,数据库
基础理论,sql语句,各种常用的数据库mysql mongodb redis memcache
5,计算机网络 TCP UDP OSI MTU等等基础
6,设计模式
工厂,原型,生成器,等等
7,项目经验
主要对一些SSM,netty等等框架的应用到个人项目中,有一定的实战经验。
二、进阶
这个阶段是脱离基础阶段只会用的程度,上升到知道为什么,以及具有活用到开发的能力。
1,jvm虚拟机以及语言库的实现源码和原理:常见hashmap,table,concurrrentHashmap等等基本库。
2,算法:leetcode,剑指offer (ACM看个人吧)
3,linux操作系统底层原理
4,数据库原理,调优,(mysql mongodb redis memcache )
5,spring SpringMVC mybatis ,netty等基本框架的源码解析,注意源码的框架思路,设计模式
三、架构
1,通信框架 netty websocket ,http的一些细节。
2,其他开发工具nginx,zookeeper,rabbitmq(消息队列,kafka,acctiveMQ),docker。
3, 以上的工具的原理和开源源码的阅读。
4,架构师个人非技术的修养