java工程师技能要求大纲

前言

要写这个东西的主要原因,发问,我现在是什么,我要将要成为什么。是要给自己一个定位,给自己一个发展方向,通过翻阅网络上行业内对各级工程师的定义以及自己数十月的工作经验来做个记录。

相信很多人也是工作一段时间很迷茫,常用的都会了,不常用也不知道学什么,不知道值不值得花费时间和精力去学,慢慢地成为职场老油条,慢慢的丧失跳槽和升级的能力。

实用主义是我最崇尚的,一切知识都是为解决实际问题,程序员的等级是解决问题的能力决定的,与工作多少年没有直接关系。只是工作的时间长与能力有相关性,对不同的人可以有天壤之别。

java实习生

又不需要开发,技能要求主要还是学校里课程有的
java:至少会java这门语言,熟练运用list、map等容器
sql:会写sql语句
操作系统:对进程和线程有概念,线程几种状态,死锁的形成和避免
计算机网络:http、https、tcp、udp几种协议有个初步了解。
前端:Html、css、javascript都有一个初步的了解,常见标签,选择器,点击事件等。计算机专业大部分会学(可能课本上会出现一点点)。
数据结构:顺序表、链表、平衡二叉树、最小生成树、冒泡排序、快速排序、二分查找等,课本也是有挺多内容的,都学会了可以做一个基础扎实的实习生,日后受益。

java初级工程师

不管是不是前后端分离,数据的交互总是要了解点,熟悉json语法和应用,开始独立编写后台代码。
java:J2EE、多线程编程、socket编程、异常处理
设计模式:熟悉单例模式、工厂模式、代理模式
数据库:熟悉常见的关系型数据库,SQL Servers、mysql、Oracle
aop框架:Struts/Spring/Springboot等环境下的编程,可能有的是jsp,理解面向切面,知道框架中大概有什么
orm框架:Hibernate/mybatis/EclipseLink/JFinal等掌握其一的增删改查,和一些复杂一点的查询
服务器:tomcat
前端:jQuery,ajax

java中级工程师

中级工程师是最常见的主力,人数多,工作年限范围也比较大,不主动去学习和改变,干10年也可能就是个中级工程师,应为一个优秀中级工程师掌握的技术占了一个普通项目的90%以上
java:对集合容器了如指掌、过滤器、监听器、文件传输、日志、模板引擎等,对jvm结构有个认识、了解GC、熟悉代理模式、单例模式等常见设计模式的实现,代码质量高,易扩展,易复用。
:连接池、线程池、对象池的常用实现
aop框架:熟悉必须的配置文件,在框架出现问题是能快速定位问题。
sql数据库:合理的进行表设计、索引、存储过程、熟悉sql优化。
分布式:RPC框架Dubbo、在分布式环境下的开发,了解一些相关配置。
nosql数据库:非关系型数据存储中间件,文档型mongoDB、CouchDB等,键值型Redis等,图形数据库Neo4J、ArangoDB,搜索引擎Solr、Elasticsearch等,至少得熟练使用一两种,熟知常用数据类型和数据库的特点,熟练增删改查,能灵活的应用在多种业务场景中,熟悉其事务和持久化。
消息队列:RabbitMQ/RocketMQ/CMQ/Kafka/Notify/Hermes等,用消息队列首先一点先明确该队列的该模式的应用场景,熟练使用几种发布订阅模式和接收确认。
权限框架:轻量级apache shiro,复杂的Spring Security 。一般都是管理系统,数量不多的用户有明确的分工,可以用来开发工作流。
网络安全:登录注册得会写,了解常见的攻击手段并学会防治。
前端:至少熟练的掌握一个框架。
运维:Linux常用命令,稍微会点shell脚本,毕竟也不是专业运维,平时需要部署服务器和查看日志。
其他:因公司业务不同需要不同的技术,对接三方、支付、科学计算等,有几个特殊技能,对当前业务的设计和改进有些思路。道了中级,代码可不能是只实现功能就行了,要用各种手段实行优化。

java高级工程师

满足了上述条件进入高级工程师的门槛了,高级工程师优秀一些的,就能在小公司或部门里做个架构师了,在企业里能做技术主力,一般小公司也没几个这样的高手
java:能开发出很多方便的工具,JVM调优
架构:深刻理解分层、客户端-服务器模式、主-从模式、熟悉插件架构、微服务架构、云架构,能独立完成一般企业项目的搭建和开发
数据库:分片的方案,高可用的方案
分布式:分布式协同系统(分布式日志复制)、分布式任务调度框架、流计算框架、分布式文件/对象系统、分布式NoSQL存储、分布式关系数据库(OLAP、OLTP)、springCloud组件Hystrix:服务的隔离、熔断和降级、Zuul:动态路由
:乐观锁、悲观锁、自旋锁、自适应锁、公平锁、非公平锁、可重入锁,不可重入锁、共享锁、排他锁
集群:代码以及以上各种中间件都到了一个集群的环境里,就会产生很多新的问题、例如数据库集群时的同步问题
消息队列:消息重复问题、副本复制、事务设计、高可用问题
一致性:raft算法、paxos算法、ZAB协议、BASE算法、CAP算法

java架构师

一个优秀的架构师能给团队带来极高的工作效率,可以说,除了他一个人幸苦,其他的开发人员都能享受到他带来的福利,工作效率上去了,才能少加班。除了开发,架构师平常经常参与服务器建设,对运维方面相当熟悉。
架构
服务器:服务限流:令牌桶、漏桶,服务链路监控和报警:CAT、Dapper、Pinpoint
分布式事务:JTA分布式事务、TCC分布式事务

技术专家

传说中无所不能的人,掌握尖端技术的人,走在时代前沿的人。
能独自开发出一套实用的受欢迎的框架

由于本人知识贫乏,各位评论区补充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章