中小企业程序员应该掌握的技能与知识

简介: 对于初级开发工程师来说,可能是程序猿阶级中最低等级的了,日常的工作也比较简单,通常我会分配给该职位员工简单的接口与搬砖工作。例如在OA的项目中,编写公告的curd接口,编写日历维护等curd接口,这类接口不涉及到业务,主要考验的是否掌握接口的基本写法。

各个级别程序员需要的技能

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语句。

掌握架构的设计能力。能够落地常见的架构配置。

了解和掌握一种安全框架。

对微服务有这自己的见解。能够针对环境选型。

了解热门的开源框架,并能通过开源解决问题。

相关文章
|
Java 测试技术 项目管理
0011Java程序设计+jspm大学生创新创业项目管理平台
0011Java程序设计+jspm大学生创新创业项目管理平台
113 0
|
1月前
|
敏捷开发 搜索推荐 测试技术
软件开发职业心得:从新手到专家的转变
在软件开发领域,每位开发者都需要经历从新手到专家的成长过程。本文分享了六大职业心得:持续学习以应对快速变化的技术;注重代码质量,遵循规范并积极审查代码;提升沟通技巧,促进团队协作;培养问题解决能力,高效应对挑战;优化时间管理,提高工作效率;实施持续交付,确保软件质量。希望这些经验能助力你在软件开发之路上不断前行,最终成为行业专家。
|
缓存 NoSQL Java
提升职场竞争力,掌握高级开发面试知识!
提升职场竞争力,掌握高级开发面试知识!
|
架构师 程序员
为什么35岁的问题在程序员这个行业中尤其突出
为什么35岁的问题在程序员这个行业中尤其突出
|
开发工具 开发者 UED
五种关键的软技能可以让软件开发人员脱颖而出
五种关键的软技能可以让软件开发人员脱颖而出
150 0
|
机器学习/深度学习 算法 架构师
哪几种程序员更容易走上管理岗位
  也许你早已决定做一名管理者,又或者你刚刚有这个打算,不管哪种情况,你是否已经和你的上级交流过这个问题呢?   在我调研过的几百位新经理中,只有15%左右和上级表达过管理意愿,我自己培养的几十位新经理中,明确表示自己想做管理的,也只有大约20%左右,这个比例很低。所以,如果我猜你没有跟上级表达过你的意愿,大概率能猜对。   你可能会说,如果上级觉得我能干,肯定会给我机会的;如果觉得我不行,表达也没用。而事实上,这个问题往往不会这么绝对。对于明确表达自己意愿的工程师,即便不能立刻满足他们的期待,但在有合适岗位的时候,他们的确会被优先考虑。因为对于做管理来说,个人意愿很重要,没有意愿就没有主
137 0
|
人工智能 Cloud Native IDE
人生苦短,开发用云-如何优雅完成程序员的侠客梦
工欲善其事,必先得其器,一款得心应手的编程工具,对于程序员来说无疑是效率神器,可以令开发工作事半功倍,在笔者亲身试用了云原生开发工具之后,可以说目前以云开发平台为代表的最新开发平台,其带来的效率提升加成,令人吧为观止了。
人生苦短,开发用云-如何优雅完成程序员的侠客梦
|
人工智能 Cloud Native IDE
人生苦短,开发用云 | 如何优雅完成程序员的侠客梦?
Coding 的魅力如此之强,引无数程序员竞折腰,在今年由 CSDN 举办的 1024 程序员节上,中国初代程序员大宗师求伯君说,当年看到有人在用 WPS,可开心了,因为有很多人用。然后,也会去找看是谁破解的,于是就这么认识雷军的,目前我虽然退休了,还在写代码,写游戏代码,不是商业软件....其实是写外挂,这个不好意思拿出来炫耀但确实可以让游戏简单点嘛。让自己的代码、自己的项目广泛流传,可以说是每一位程序员的最高目标。
人生苦短,开发用云 | 如何优雅完成程序员的侠客梦?
|
人工智能 物联网 程序员
十年职场人教你选专业:不知道自己兴趣在哪,该如何选合适专业
作为十年职场人,能否指导下我选专业,我也不知道自己兴趣爱好在哪,之前都是听父母安排,现在我想自己为以后的人生做主,我该选什么专业呢?
|
程序员
程序员得到的报酬与他们的生产力不成正比
导读:原文作者John D. Cook在johndcook.com上发表的《Why programmers are not paid in proportion to their productivity》,由国内整理编译成《程序员得到的报酬与他们的生产力不成正比 》。
1155 0