工作1-3年
要求:能独立完成分配的模块开发任务
技术要求:
1、掌握最基础的数据结构:数组、链表、堆、栈、队列、Hash表、二叉树等
2、算法:经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序等。
3、语言要求:基本的开发基础语言掌握,比如:面向对象,集合类、网络IO。
4、数据库要求:能独立设计数据库表,掌握sql,索引等。
Java初级阶段的重点主要是掌握好编程相关的基础内容,开发框架与数据库的操作比较熟练。
工作3-5年:
要求:能独立设计核心模块,并完成编码工作。
技术要求:
1. 三年及以上使用JAVA开发的经验,JAVA基础扎实,理解io、多线程、集合等基础框架,了解JVM原理;
2. 对用过的开源框架,能了解到它的原理和机制;对Spring,ibatis,struts等开源框架熟悉;
3. 熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制;能对分布式常用技术进行合理应用,解决问题;
Java中高级阶段的重点主要是需要对Java高级多线程、框架、JVM等开始能深入了解了,而不是仅仅停留在初级阶段的会使用,而是需要能深入技术原理了,对于分布式相关的也开始接触了。
工作5-8年
要求:能独立设计大型网站的架构能力,核心和关键问题的掌握能力
技术要求:
1. 5年及以上使用JAVA开发的经验,对于你用过的开源框架,能了解到它的原理和机制;
2.精通Mysql、Oracle等关系数据库设计和开发,对数据库性能优化有丰富的经验;
3.精通多线程及高性能的设计与编码及性能调优,有高并发应用开发经验;
4. 具有大型分布式系统研发经验,对常见的中间件如分布式缓存、消息队列、RPC等有丰富的使用经验和深入理解;
5.思路清晰,有良好的业务理解、系统分析和软件设计能力; 具有良好的沟通能力和横向推动能力;
如果到了架构师这个阶段,除了掌握好上面高级的内容,对分布式高并发:缓存、消息队列、RPC等需要能很深入底层的实现,而且架构设计的能力也需要具备了,能独家操盘一个大型项目!
备注:个人认为工作经验无法用年限评估,主要看能力,年限仅供发展参考,初、中、高按个人能力去划分