Java程序员的级别定义: 对号入座, 你在哪个阶段心里要有点数

初级

刚入职场的新人一般都在这个级别了。这一点倒是不区分本科还是硕士,比如我第一家公司硕士毕业进去算初级工程师,本科是助理工程师。而公司对于刚毕业的同学的级别定义也是类似,本科 T1-1,硕士 T1-2。大级别都是 T1,小级别上的细分区分可能也就是在薪酬起点上略有不同(别问我差多少,我也不知道,但估计差距不大)。

中级

要说中级和初级最本质的区分是什么,我觉得体现在独立性方面。初级的同学刚进公司,一般还会给安排一对一的导师帮助其快速上手,所以很多初级的同学在工作上就对导师存在依赖性。而工作一段时间(1、2年吧)后,他们对公司的各种开发流程规范已经相当熟悉,熟悉其参与项目中的部分业务、产品和代码,能够按要求完成业务功能开发。

所以中级的工程师基本能够独立承担开发工作,甚至有些还能指导新人了,成长为公司「动作执行」层面的中坚力量。这个层面的基本要求就是:完成动作、达成品质、优化效率。但观察下来这个级别的工程师多数都能做到完成,但品质可能有瑕疵,效率上甚至可能有缺陷。而关于效率和品质总是在不断的迭代和改进中去不断完善的,自身也在这个过程不断成长向着下一个阶梯迈进。

而不少人卡在这一阶段,就是因为虽然不断的在完成工作,但却没有去反思,沉淀,迭代并改进,导致一直停留在了不断的重复中。

高级

这个级别基本属于能独立负责某个小项目或大项目中的子系统或模块,自己是项目的骨干成员,属于团队或项目中最大的个人贡献者。

相比于中级,高级工程师在「动作执行」层面属于攻坚力量,不仅能独立完成高级难度的开发任务,而且在用户体验(品质提升)和性能优化(优化效率)都能作更全面的考量。不仅对开发任务完成的又快又好而且还能能清晰的定义出多快多好。

资深

这个级别有些叫「资深工程师」,有些叫「架构师」,而不同的叫法代表了两种不同的发展方向。在基础研发、算法或特定技术复杂领域会向「资深工程师」方向发展,属于深度优先。而在面向业务开发的领域,业务复杂度高于技术复杂度,则会向「架构师」方向发展,属于广度优先。

不管是深度还是广度,进入这个级别说明在特定领域都已经具备了相当的积累,在项目和团队中担任技术骨干。除了自身专业知识、技能和实践经验的积累,还能够从中总结沉淀出有效的方法论,引导和组织团队成员一起进行推广应用。积极主动的输出自身经验,为跨团队项目提供技术支持。

很多工作有一定年头的高级工程师卡在迈入这个级别的门槛边,我觉得有两个原因,一方面是自身虽然各种实战经验丰富,但却没有系统的去梳理自己多年的积累,未能很好的形成体系。所谓体系也这就是上面所说的沉淀出有效的方法论,有效方法论的最大作用是帮助快速决策,而且决策的正确概率还会比较高。另一方面,就是其虽胸有块垒,腹藏千言却倒不出来,出现明显的瓶颈效应,造成的负面作用就是很难对其「资深」的程度作出有效评定。

Java高级架构二群688583154

进群:可免费领取架构师学习资料。

进群:获得面试学习资料

进群:学习架构最新技能知识

进群:了解最新BAT招聘动态

分布式


微服务


性能优化


源码分析


专家

技术专家一般在公司领衔重大技术项目,而且在其细分的技术领域,于业界也有公认的影响力。以「家」冠名会让人感觉遥不可及,高不可攀。实际「家」也分大小,一般的「大家」实际都是稀世珍宝,举国稀有的,确实是遥不可及,但也有「小家」相对来说就没那么遥远。

而专家总和影响力挂钩,影响力听起来很虚,那换个相对实的角度说说影响力。作为一个 Java 程序员,在学习使用 Java 的过程中总有那么几个人,你不仅要去读他们的书还要去看并且使用他们写的代码,在 Java 这个领域你总是绕不过去。那么这就是他们在这个领域实实在在的影响力,自然也是这个领域的专家。所以,专家可能就是这个领域内你绕不过去的人吧。

评定

有了级别的定义,那么如何来评定一个人到底属于怎样的级别呢?这点在低级别的评定中标准会相对宽松,而越往高级别走越难评定。对于不同级别的评定标准一些大公司都定义了覆盖多个维度的评判标准,并给出了详尽的说明。对于高阶的晋升会由公司专家评审小组来组织晋升述职答辩,评审小组的评委就是根据这些多维度的标准来做出一个综合的评判。怎么样呢,看完之后大家应该还是有了一个大概的概念吧。如果觉得自己还是有很多不足的话,可以点我的资料,加群一起交流学习。

原文地址:http://blog.51cto.com/13550895/2059112

时间: 2024-10-29 19:13:29

Java程序员的级别定义: 对号入座, 你在哪个阶段心里要有点数的相关文章

【Python】Java程序员学习Python(五)— 函数的定义和使用

不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍,方法的目的还是重用和封装 一.方法的定义 方法的定义使用关键词def来定义,定义格式如下: def 方法名(参数定义): 方法体 方法名:方法名的规范同变量名规范一样 参数定义:比较复杂,后面会进行讲解 冒号:这个类似于Java的{},必不可少 方法体:方法实现的功能在此定义即可 简单的例子: #定

Java程序员面试题集(71-85)

Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言).面向对象的设计原则(六原则一法则).GoF设计模式.企业级设计模式.JDBC(Java数据库连接).XML(可扩展标记语言)等知识. 71.UML是什么?UML中有哪些图? 答:UML是统一建模语言(Unified Modeling Language)的缩写,它发表于1997年,综合了当时已经存在的面向对象的建模语言.方法和过程,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化

【转】你离顶尖 Java 程序员,只差这11本书的距离

个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了. 很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书

Java程序员面试题集(86-115)

摘 要:下面的内容包括Struts 2和Hibernate的常见面试题,虽然Struts 2在2013年6月曝出高危漏洞后已经显得江河日下,而Spring MVC的异军突起更加加速了Struts 2的陨落,但面试中仍然有可能被问及和此框架相关的内容,毕竟Struts 2曾经被阿里巴巴.京东以及政府企业门户网站广泛采用.另一方面,Hibernate目前仍然是ORM框架中的中坚力量,MyBatis在此领域也有不容 忽视的一席之地,因此了解这两个ORM框架对Java程序员是很有必要的.第一期发布的Ja

JAVA程序员必看11本书籍

http://developer.51cto.com/art/201512/503095.htm 学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 2.对着书上的代码自己敲的时候方便 "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后

Java程序员学习一天半C++的感想

大学期间,学了一学期的C语言,当然包括学习数据结构时,用的也是C语言.当时刚刚接触计算机,对于编程更是一无所知.上课学习学习,偶尔会照着书上敲一下代码.大二下学期,就丢掉了不用了.最近由于工作的需要,要使用Java Native Interface,所以就学习了1天半的C++,对C++有了一点点的了解,写一下自己的理解. 一天半时间,也学不多少东西,我主要就搞明白了下面几个问题: 1)指针 这么多年了,还记得在C语言时,最难以理解的,应该属于指针了.还记得谭浩强的那本C语言书(书名是啥,真的忘了

Java程序员们值得一看的好书推荐

转载自知乎 原作者:mdcc "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便"看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学

Java程序员岗位

Java程序员岗位面试题有哪些? 1.面向对象的特征有哪些方面(1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的

Java程序员面试题收集(6)

<!————————————————————————————基础题122道,代码题19道————————————————————————————> JAVA相关基础知识1.面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法