序:何为高级java开发工程师?

java高级面试梳理 专栏收录该内容
5 篇文章 0 订阅

开发工程师的分级

在软件开发行业,通常会对工程师做分级,各大厂通常有自己内部的职级划分和评定规则。整体上通常来讲,分为初级开发中级开发高级开发等。 再往上我就很难去评价了。

初级java开发 :

一般是刚毕业或刚入行,至工作一两年的阶段。掌握一些java基础,如:基本的数据结构、基本数据类型、面向对象的思想等。对知识的掌握处在理论阶段,实战经验少,还处于积累总结的阶段。 职责上,一般负责较为轻松的工作,比如简单的增删改查、不太复杂的模块设计,将理论赋予实践,比如尝试使用设计模式等。对常见的中间件,更多是学习怎么使用的阶段。

中级java开发

一般是工作一两年以上,到三四年的阶段。 对java基础掌握比较扎实,有了一套自己的开展工作、解决问题的思路。多多少少的阅读了一些源码,对常见的场景以及常用的解决思路。 能独立完成小型项目开发,或者完成复杂模块的合理设计。对常见的技术或中间件的底层实现有一定的理解。瓶顶在于知识面窄,对业务理解,设计侧重点不够敏感。

高级java开发

工作三年以上,java基础比较扎实,有较好的设计能力、编码能力、分析理解能力。对常用的中间件,以及底层有自己的知识网络。除了技术能力之外,对负责业务比较了解,对项目的背景和目标,迭代阶段目标比较敏感,能够总结迭代经验,找到工作重心,并为之做到合理的拆分和设计,通常不仅负责核心模块开发,同时肩并着分配任务,管理进度的职责。甚至更高一点的层次,需要对最终产品负责。 这个阶段 也是工程师职业道路的分叉口。 技术、业务、管理。 技术再往上是资深开发工程师、技术专家,业务往上是业务专家、架构师(个人理解架构师需要对某个业务领域足够了解,才能设计合理的架构,来应对业务上和技术上的走向),管理往上是项目经理、主管、部门经理。

所以高级开发工程师,需要从三方面来提升自己。

  1. 技术
  2. 业务
  3. 管理

技术

技术上包括:

  1. java基础
  2. jdk源码(主要是集合、线程、锁)
  3. jvm (jmm,垃圾回收详解,问题排查)
  4. 数据库(索引、锁、事务,以及分库分表、主从等)
  5. 分布式
  6. 常用中间件(架构、存储、原理等)
  7. 第三方jar(原理、源码)
  8. 场景设计

扎实的java基本功,有助于源码的阅读。 比如,同样都是阅读源码:

  • jdk的源码
    — 更倾向于设计思想如:不变性、函数式编程,有大量的底层和优化如:hashMap,并发性问题解决思路:concuurentHashMap、Lock锁。
  • 第三方jar的源码
    — 更多的是设计模式的应用、如何更好的抽象解耦,如何划分模块,组织模块间关系等。

这些都需要扎实的java基础功底做支撑。

jvm的了解,能够增强对java本质的理解, 建立起java与操作系统的理解桥梁。对空间(内存)、时间(效率)上有更深的认识。对线程问题、并发问题理解力很有帮助。

现在的项目大多是微服务,所以需要对分布式、中间件有很好的认识。来协助设计、分析解决问题。

场景设计考察了综上所述所有的点,以上知识掌握的好,场景设计即使无法做到最优,也能有比较切实可行的解决方案。

业务

对自己参与负责对项目,达到足够了解有一下几个点:

  1. 项目背景
  2. 项目为了解决什么痛点
  3. 项目为了达成什么样的目的
  4. 设计是如何解决问题达成目的的
  5. 下一阶段的发展方向是什么
  6. 终极形态是什么样
  7. 终极目标是什么

管理

管理分很多方面很多层次。对于高级工程师来说,处在刚接触管理的阶段。


在这篇序文中提到的各个点,都会用一篇或几篇文章来介绍,放在此栏位中。

– 能力有限,又不准确或不完善的点,欢迎评论或私信。

  • 1
    点赞
  • 1
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值