各个级别程序员需要的技能
1.初级开发工程师/实习生
对于初级开发工程师来说,可能是程序猿阶级中最低等级的了,日常的工作也比较简单,通常我会分配给该职位员工简单的接口与搬砖工作。例如在OA的项目中,编写公告的curd接口,编写日历维护等curd接口,这类接口不涉及到业务,主要考验的是否掌握接口的基本写法。
所以对于领导关注的点就是按照时间节点写完接口,并保证数据处理准确即可。
1.应该掌握的技术栈
通过以上背景,博主总结了以下是需要掌握的技能。其中标记小红旗的为重点掌握知识。
掌握java常用的技能。
掌握spring,熟练应用IOC与AOP。了解底层原理。
掌握数据库概念,常用语法,重点掌握增删改查语句。
掌握mybatis常用标签,重点掌握增删改查写法。
了解springboot概念与文件结构,重点掌握增删改查业务写法与常用注解。
熟练使用idea、navicat、postman等开发工具。
了解微服务概念。
了解redis中间件。
2.为何需要
由图可以看出以上技能都为curd做准备。首先springboot+spring+mybaits为最流行的框架,是接口编写的基石。java基础必须掌握牢靠,否则数据比较的坑就够你喝一壶的。熟练使用开发工具能够帮你提升代码编写效率规范。了解部分中间件与微服务概念为下一步的提升搭建了桥梁。Mysql语句不会???请出门右转。以上都是必须必须的技能,缺一不可。
2.中级开发工程师
中级开发工程师是一个公司的最多也是最核心的职位,因为大多数都是业务骨干,负责业务代码的堆砌,必须时也负责管理指导初级开发工程师。所以,在工作中我会分配给比较复杂的接口,如组织架构相关接口,定时任务接口,用户接口,因为这些接口涉及到权限、返回格式、日志留存、基础应用等,因为这些初级程序员很难胜任,这就需要中级工程师编写。
1.应该掌握的技术栈
相对于初级开发工程师,以下是应该提高的点。
掌握lanmda与stream流写法。
理解spring、mybatis、springboot的底层原理。
掌握常见常用的sql优化规则。
掌握springboot功能性start。
理解微服务,最低标准为独自落地demo。
使用过redis和rabbitmq中间件。
掌握常用的设计模式。
2.为何需要
中级工程师的基础是业务接口非常熟练,需要多架构、管理、整体的统筹做到提高。
首先要有良好的代码格式,注释格式。并善于使用工具类,如函数式接口、p3c代码检测工具。且适当使用设计模式重构代码,并能够将自身的原则与想法传递到初级工程师,这样项目才能有着良性的运行条件。
对springboot+mybatis+spring等常用框架的源码有这一定了解,这不是背八股文,在了解一定底层原理后能够通过日志更加快速的定位问题。同时对于springboot提供的一系列start,要有着使用的经验,如:websocket、quartz、邮件、短信,都非常常用,同时在业务难度上也略大于普通接口,可以扩展自身的能力。
然后需要对一些中间件有这基础的应用与了解,我认为至少掌握redis、mq,因为中小企业使用该中间的几率很大。同时已经内卷成必会问题了。
可能有点小伙伴会问了中小企业是否需要掌握微服务?答案是一定要,因为很多政府项目的市局领导会在竞标文件上提到要上云,上微服务。所以中级工程师起码要有微服务demo搭建的经历。
最后需要掌握sql优化的常用场景。
以上就是中级工程师需要提升的技能,有多少人终生就停留在这个阶段,而市面上所说的30岁被淘汰的也是这些人。所以这是一个培养能力的重要阶段,并尽量上升到高级工程师。
3.高级开发工程师
在中小企业来说,高级工程师已经是技术的带头人了。对于高级开发工程师来说,更多是解决问题的能力。
什么是解决问题能力?我的理解是无论遇到什么问题,无论你是谷歌百度搜索,还是请教业界大佬,只要能解决就ok。
也要求你无论在技术深度还是广度上都有一定的积累。对于源码与底层原理也有一定的涉足,适当时机需要更改源码解决问题。同时在架构方面也有一定理解和建设,能够根据公司条件优化和建设符合场景的优化。同时善于利用开源解决问题。
所以博主认为高级工程师需要掌握以下技能:
1.技术掌握
起码阅读过spring、mybatis、springboot源码,并充分理解。
对分布式有这一定了解。(ps:虽然使用场景不多)
掌握explain语句,熟练优化sql。
能够根据公司情况制定代码规范与代码检查机制。
掌握常用的linux语句。
掌握架构的设计能力。能够落地常见的架构配置。
了解和掌握一种安全框架。
对微服务有这自己的见解。能够针对环境选型。
了解热门的开源框架,并能通过开源解决问题。