如何衡量一个Java程序员技术水平?
Java后端开发大致分为三个层次:初级开发、高级开发和架构构建。针对不同的阶段掌握技术能力有所不同,那具体要掌握哪些技术呢?
初级程序员:
初级工程师主要是指刚毕业的,职场上的技术新人。通常这类人会有一定的专业理论知识,所以也能够比较快的学习公司的常用框架、工具和开发技术。能够在上级/导师的指导下,理解相关的业务知识。
能够按照研发需求完成部分模块和功能的开发,能够在别人的指导下解决研发中遇到的问题
掌握技能:
完成代码层面的CRUD操作 + 前端基础(HTML+CSS+JS+Jquery+Vue+Layui) + SSM框架基本用法 + 会看功能文档和理清数据库模型关系 + 解决BUG是有方向 + 规定时间完成项目任务
中级开发工程师:
中级工程师的水平与大多数工作了三到五年的程序员相当。中级工程师必须能够独立承担开发任务,能够独立负责一个模块或小型系统。能够根据自己的历史经验和学习能力,独立解决日常工作中遇到的技术问题。
掌握技能:
扎实的Java基础,熟悉JVM、JavaIO,掌握并发编程、网络编程及常用数据结构;深入了解Spring,SpringCloud、Tomcat等开源架构,并对其运行原理有较好的理解;熟悉面向对象开发,具备领域模型抽象能力,熟悉常用设计模式;熟悉分布式、缓存、消息等机制;有高并发,高性能系统经验,熟悉微服务架构设计;熟练掌握MySQL等关系型数据库,掌握MongoDB、HBase等NoSQL数据库,并有性能调优经验 + 初级程序员掌握的技能
高级开发工程师:
高级工程师,一般是混迹多年,且有一定技术积累的程序员,有一套自己的开发方法。对于高级工程师要求能快速的理解业务、够独立负责一个中大型系统,且在工作中需具备指导他人的能力,属于团队骨干,在团队中有一定的技术影响力。
掌握技能:
Java技术功底扎实,有多线程,NIO,集合,内存调优等技术的实际项目经验,了解技术的底层实现原理; 精通Dubbo、Spring Boot、Spring Cloud、MyBatis、ElasticSearch、Nacos、Zookeeper、Redis等常用开源框架及中间件,熟悉其原理及实践;可以针对不同的大型分布式、高并发、高负载、高可用性架构分析和设计,熟悉离线或实时大数据平台架构; 有Kubernetes,Linux,Docker,ServiceMesh,微服务经验,能参与JVM和MySQL线上排查和调优,对与项目出现的机构问题能够及时处理调。