查看原文
其他

初级和高级程序员,真正的区别是。。

鱼皮 程序员鱼皮 2024-04-16

大家好,我是程序员鱼皮。昨天直播的时候,有同学问:初级、中级、高级程序员,有什么区别?

答案当然是 “头发”。

开个玩笑,这个问题非常好,提前了解这个问题有助于我们明确自己的技术学习路线和职业发展路线。

下面就跟大家分享下我个人的看法。(文末有你们要的封面图)

初级、中级、高级程序员的区别

我会分别从这些角度去对比初级、中级和高级程序员。

  1. 负责的工作和角色
  2. 需要掌握的技术
  3. 需要掌握的其他能力

初级程序员

实习生和刚入职 1 年内的程序员基本上都算是初级程序员,这里的初级倒不是说你的技术水平如何,而是初入职场,在很多方面没有经验,公司对你也不会有很高的要求。

初级程序员的目标是 “能完成工作”。这个阶段,你的角色是执行者。比如上级分配给你一个 任务 ,你能够按时按要求地完成,这就足够了。完成好工作的基础上,再考虑进一步发展。

举个例子,上级让你开发一个抽奖转盘的页面,直接按照别人写好的方案和现成的设计稿去做就好了,你甚至都不用理解为什么要做这个需求、它的背景是什么。

初级程序员的技术要求并不高,能会用基本的开发框架(前端 Vue / React,后端 Spring Boot 等)解决 Bug、完成工作就好。如果说还有什么额外的期待,那就是少写一点 Bug 吧。

这个初入职场的阶段,我们要学会和他人合作、有一定的责任意识、熟悉职场的规则,提升自己的职业素养、阅读文档和理解需求的能力。

中级程序员

一般工作 1 ~ 3 年工作经验的程序员可以达到中级程序员的水平。

中级程序员的目标是 “能负责工作”。这个阶段,你的角色是负责人,能够独立负责一个模块或项目。比如上级给你一个 想法 ,你能够通过各种方式,把想法实现落地。

举个例子,比如公司现在要做一个抽奖功能,你能够通过自主需求分析 => 设计方案 => 开发编码 => 测试 => 部署上线这一整套流程,把它上线,而且尽量不要出问题。能做到这点,基本上是可以独当一面了。

中级程序员首先需要有足够扎实的技术基础,比如能熟练运用框架完成开发、自主解决开发过程中遇到的报错,这就需要我们足够了解一门技术的特性和应用场景。比如前端程序员需要熟悉前端工程化(TypeScript)、前端常用的工具和解决方案(像状态管理、单元测试、打包工具等);后端程序员需要熟悉主流中间件(Redis、MQ、ES、ZooKeeper 等)、并发编程和语言的运行机制(JVM)。

此外,中级程序员还需要具备一定的需求分析和架构设计的能力,不仅能理解业务、知道某个需求要不要做,还要能设计出一套合理的方案来完成需求。

高级程序员

一般工作经验 3 年(5 年)以上的程序员才能达到高级程序员的水平,当然,如果你缺乏自我提升的意识,可能中级程序员就是天花板了。

高级程序员的目标是 “能推动工作”。这个阶段,你的角色是领导者,能够独立负责和推动项目的发展。比如公司给你一个 目标 ,你要能拆解目标为具体的想法、需求和任务,带领团队同学一起达成目标。

举个例子,公司 Q2 要增长 10 w 的营业额,你作为高级程序员(技术负责人),要和其他同事(上级)一起制定发展策略,在技术上给出可行的建议和方案,然后去搭建一套技术架构。比如我们可以搞一个抽奖系统来作为宣传裂变的手段,对于抽奖系统的调研、实现方案的文档、具体的项目规范制定、项目模板搭建、项目的部署流程等,你都要有能力带团队完成。

当你到高级程序员位置的时候,有 2 条进一步发展的路线。一种是技术路线,一种是管理路线。

走技术路线的人需要做到将自身的技术水平达到精通,比如熟知 Java 的各种特性和性能优化方法,初级程序员写的代码需要 1 秒运行,高级程序员写的代码可能只需要 100 毫秒就能运行,并且占用的资源更低。

走管理路线的人自身的技术能力不需要特别强,但是他要有足够的经验和判断力、有将自身的技术和经验传递给团队和下级的能力,带领团队保质保量地完成工作。我自己也是技术出身,目前兼顾技术和管理能力的提升,我自己的感受是,做管理比做技术难 100 倍!毕竟人是最复杂的,充满了不确定性,而代码是机械的,最起码不会骗你。

针对这两条发展路线,腾讯也有对应的 2 种职级安排,一种是 T 技术路线,一种是 L 领导路线。很多高 T 的技术专家,都兼有 L 领导职级。这也体现了,对于一名优秀的程序员和技术人,我们一定不能只埋头写代码,而是要提升自己的综合能力,比如写作能力、产品思维、沟通表达能力、管理能力等等。



怎么样才能更快地成为高级程序员呢?

我之前看过一本互联网大厂晋升指南,里面提到的一点我觉得非常妙:我们要始终拿自己去对标更高的职级,而不是满足于当前的职级。

如果你现在是初级程序员,想要晋升为中级,首先你要用中级的工作标准去要求自己,比如完成需求之余,自己多思考下需求和方案的合理性。如果你想晋升为高级,就要在工作之余,多阅读一些深入的技术或管理书籍、多自主开发项目和产品等。这样你的能力提升会非常之快!

以上就是本期分享。哝,你们要的封面图(来源于网络),有收获的话记得给鱼皮点赞哦~


👇🏻 点击下方阅读原文,获取鱼皮往期编程干货。

往期推荐

我的编程学习小圈子

如果遇到这些 Bug,你会如何应对?

看了同事设计的库表,我默默流下了眼泪。。

用 API 项目拿下面试,爽!

我凭什么要开发小程序?因为。。

又踩坑了,java日期闰年处理,算少一天!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存