Java初级工程师
开发相关
熟练使用Java基本数据类型。
熟练使用数据结构如:ArrayList、HashMap、HashSet。
熟练使用多态、继承、封装、抽象。
掌握Java异常分类及处理、反射、注解、内部类、泛型、序列化、复制。
熟练使用Spring IOC|AOP|常用注解、Spring MVC、Spring boot。
数据库相关
熟练编写insert、update、delete、select语句。
熟练使用MyBatis和Spring Data Jpa编写增、删、改、查。
团队协作
svn常用操作。
git常用操作。
使用Maven私服。
前端相关
了解html、css、js。
了解ajax技术。
Java初级工程师也需要熟练使用开发工具,能完成简单模块和项目开发工作,而且要具备一定的程序调试和排错能力,而要想提升程序调试和排错能力,一定要多做实验。
Java中级工程师
开发相关
在不同的场景灵活运用List(ArrayList、Vector、LinkList)、Set(HashSet、TreeSet、LinkHashSet)、Map(HashMap、ConcurrentHashMap)。
理解Spring IOC原理、Spring AOP原理、Spring MVC原理、Spring boot原理。
熟练使用Java多线程。
掌握日志框架Slf4j、Log4j、LogBack。
熟练使用常用设计模式工厂模式、抽象工厂模式、单例模式等。
了解JVM内存区域、运行时内存、GC垃圾收集器、JVM类加载机制
数据库相关
熟练运用数据库三范式、索引、事务、数据库锁、分区分表。
熟练编写动态标签、级联。
根据业务场景灵活使用Mybatis一级、二级缓存。
自定义TypeHandle。
团队协作
处理svn相关问题。
处理git相关问题。
使用Maven私服。
了解Docker虚拟化技术。
网络
网络7层架构
TCP/IP原理
HTTP原理
CDN原理
Java中级工程师在必要的辅导或标准流程支持下,能独立负责一个子模块或者一个项目的具体任务,对及时性和准确性负责。
Java高级->架构师->技术总监
开发相关
深入JVM内存区域、运行时内存、GC垃圾收集器、JVM类加载机制。
Java线程实现、4种线程池、线程生命周期(状态)、同步锁与死锁、线程池原理、Java阻塞队列原理。
Spring全家桶源码研究。
MyBatis源码研究。
微服务服务注册发现、api网关、配置中心、事件调度、服务跟踪、服务熔断。
分布式缓存雪崩、穿透、预热、更新、降级。
灵活运用23种设计模式。
数据库相关
RabbitMQ概念
RabbitMQ架构
Exchange 类型
MongoDB原理及灵活运用
存储引擎
索引
数据库三范式
数据库是事务
存储过程(特定功能的SQL 语句集)
触发器(一段能自动执行的程序)
数据库并发策略
数据库锁
基于Redis分布式锁
分区分表
两阶段提交协议
三阶段提交协议
柔性事务
CAP
团队协作
git、svn服务搭建。
掌握git工作原理。
Maven私服搭建、仓库管理。
Jenkins服务部署、持续集成。
深入Docker虚拟化技术。
高可用SpringCloud微服务与Docker集成实现动态扩容。
Java算法
二分查找
冒泡排序算法
插入排序算法
快速排序算法
希尔排序算法
归并排序算法
桶排序算法
基数排序算法
剪枝算法
回溯算法
最短路径算法
最大子数组算法
最长公共子序算法
最小生成树算法
数据结构
栈(stack)
队列(queue)
链表(Link)
散列表(Hash Table)
排序二叉树
红黑树
B-TREE
位图
负载均衡与高可用
四层负载均衡 vs 七层负载均衡
负载均衡算法/策略
LVS
Keepalive
Nginx反向代理负载均衡
HAProxy
Java高级工程师具有独挡一面的能力,能够高质量完成工作,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效。
->架构师一般来说负责业务架构、应用架构、产品功能决策、技术选型、协作分工等问题。
->技术总监重大业务架构和应用架构选型决策者,管理架构师,有担当,具备全局视野。
团队主管->项目经理->项目总监
技术保持中级+,重心放在项目和人的管理上。
团队主管负责任务分配、进度跟踪、质量把控、协调配合、协助初级工程师或者中级工程师解决研发过程中遇到的技术难题。
->项目经理负责项目管理工作、进度把控、协调,管理团队主管。
->项目总监统筹项目全过程,有效确认进度把控、盈利把控、成本把控和风险把控,指导方案设计,合理安排项目经理工作。