如何成为高级开发人员?谁是高级开发人员?如何成为成年人?广度与深度 Zen 示例 一些技巧 更多资源 有想法?还有更多技巧?保持联系 软件开发职业发展指南 新闻简报

2025-05-25

如何成为高级开发人员

谁是高级开发人员?

成为成年人了吗?

广度与深度

一个例子

一些建议

更多资源

有什么想法吗?还有其他建议吗?

保持联系

导航你的软件开发职业通讯

不久前,我写了一篇关于软件开发职业生涯各个阶段的文章,其中我提出了一种简单的方法来思考大多数开发人员在其职业生涯中会遇到的一般步骤。

下一组文章开始深入探讨这些阶段,例如转变为初级开发人员角色……

...并希望成为一名中级开发人员。

在开始这个系列之前,我曾探讨过首席开发人员和高级开发人员之间的区别。到目前为止,这是我在 dev.to 上最喜欢的文章!

现在,是时候享受更多乐趣并仔细看看高级开发人员的素质,以及为有抱负的高级开发人员提供一些建议!

谁是高级开发人员?

回顾一下以前的一篇文章,高级开发人员实际上被标记为:

  • 精通公司使用的核心技术
  • 通常具有一些专业化
  • 掌握高层架构问题和设计
  • 应该拥有多年的经验(你只需要通过艰苦的努力就能获得)
  • 具有构建“完整”现实世界解决方案的经验
  • 积极指导和培训团队中的其他开发人员

我想说,最后一点是表明某人是高级开发人员的最佳指标。

如果您通过以下方式证明自己值得信赖:

  • 展示你可以解决棘手的技术问题
  • 展现出自己良好的沟通能力
  • 拥有现实世界的经验来指导你的许多决定

然后,您的同事就会将您视为领导者和教练。

成为成年人了吗?

我关于成为中级开发人员的文章将中级开发人员与进入青春期的人进行了比较 - 但针对的是他们的职业生涯。

高级开发人员就像一个已经长大成人、能够照顾自己的人。他们的生活不再像以前那样飘忽不定、随性而为、充满实验性。

这是因为,在很多情况下,他们已经“经历过那件事了”。

他们从错误中汲取了教训,进行了多次尝试,为自己的人生奠定了坚实的基础。

成年之后,生活不再那么精彩。但你会更加了解这个世界,你会明白,在你的视角之外,还有更广阔的世界。

只要将这个类比放在软件开发人员身上,您就会了解高级开发人员是什么样的。

高级开发人员解决问题的方法更加谨慎、周到、务实、实用和简单。

他们了解了什么有效,什么无效,什么可能太抽象,不够实用,有用,有效等等。

老年人凭借自身经验,对自己的知识充满信心。但他们也清楚,还有很多事情是他们不知道的。

广度与深度

您可能听说过这样的想法:高级开发人员的技能应该是“T”形的。

这意味着他们对许多主题(字母“T”顶部的水平部分)有基本的了解。但他们在一个或多个领域拥有非常深入的知识和技能。

高级开发人员对于哪些工具和技术可以解决特定问题有着广泛的了解。

宽度

例如,我从未构建过可用于生产的分布式微服务系统。但我知道这种架构方法能解决哪些问题,也知道一些不同的方法来构建它们。

我从未在生产环境中使用过事件溯源。但我知道它能解决哪些问题。

就在几周前,我向我的开发团队推荐了使用一些图形数据库表来解决某些性能问题的方案。我从未使用节点/边表构建过完整的系统,但我知道它们能解决哪些问题!

再次强调,这是高级开发人员的一个关键特质:

高级开发人员知道有哪些解决方案可以解决常见/重复出现的编程问题。

深度

在“T”的垂直部分,高级开发人员应该在某些特定领域拥有非常熟练和丰富的知识。很多时候,这些专业知识与他们所担任的特定角色直接相关。

高级开发人员应该在某些特定领域非常熟练且知识渊博。

无论如何,高级开发人员都是某个领域的专家,并且在其他领域也在不断成长!

这可能是特定领域,如系统架构、特定的编程语言、编程范式(OOP、功能等)、某组技术、安全性、性能,甚至只是对特定行业的广泛了解!


PS 本文最初来自YourDevCareer.com,您可以在那里查看更多文章和资源,以帮助加速您的职业发展!


作为初级开发人员,您仍在学习如何构建软件。您可以想到的是:

  • 有哪些模式可用/何时以及如何应用它们
  • 如何处理给你的业务需求
  • 如何评估你的工作
  • 如何将各种系统连接在一起
  • ETC。

高级开发人员已经获得了构建解决方案、管理复杂性、处理混乱的业务需求、应用设计模式等方面的经验。因为他们已经一遍又一遍地做过这些事情,所以他们可以“凭心而论”地解决许多常见问题。

高级开发人员可以查看初级或中级开发人员面临的问题,了解该问题所涉及的模式,并且他们根据已经习惯的模式知道应该发现或实施解决方案的一般方法。

高级开发人员使用常见模式来发现正确解决方案的一般路径。

如果你想成为一名高级开发人员,这种“禅”实际上只能来自于现实世界的经验,从失败、成功、导师等中学习。

你只是需要大量的练习,并且需要做这些事情很多次,直到它们印在你的大脑里!

当然,这需要多长时间取决于您工作期间所做工作的强度、多样性等。

附注:如果您的工作没有挑战性,那么您很可能不会快速成长。

一个例子

以我自己的经历为例,我的第一份工作是加入一个团队,该团队正在构建一个新的软件系统,以新的方式处理汽车制造商的财务问题。

我很快就必须处理非常大的代码库,并涉足前端、后端、数据库编程以及其间的所有事情!

经过几年的发展,我被要求帮助保险公司建立一个新的白标平台,允许人们通过网络申请人寿保险。

负责构建这个项目的整个 Web 部分确实让我成长了很多。我学到了很多!包括什么不该做😋。

这个项目的业务逻辑非常复杂(之前已经开发并移植到了这个项目中)。理解和管理起来非常困难。这促使我寻找如何在软件中管理业务逻辑的模式和工具。

我花了很多时间(包括下班时间!)学习设计模式、架构风格和领域驱动设计等主题。

一旦我开始在自己的代码中使用这些技术、模式和原则,其他开发人员就会来找我并开始询问它们!

因为我花时间投入学习这些模式和技术,所以今天我一直在帮助我的团队解决这些架构和代码组织问题。

一些建议

你能从中得到什么呢?以下是一些关于如何成为一名高级开发人员的建议,这些建议可以从我们之前的经验中总结出来:

  • 弄清楚你真正想要掌握的技术栈,并深入学习它
  • 每天读书!(这会帮助你成为一个更好的读者,并帮助你每天学习)
  • 尝试承担那些提供给你的真正困难但有价值的项目
  • 请记住,经验是随着时间而来的——没有其他方法!
  • 记住“T”型技能组合的概念
  • 规划你的技能,找出哪些是你想要真正深入研究的,哪些是你想要学习基础知识的
  • 对于想要了解基础知识的技能,最重要的是要了解它解决了什么问题?
  • 对于您想要深入研究的技能,请考虑指导或高质量的培训材料(例如Pluralsight
  • 了解设计模式对大多数领域都有好处(再次强调,最重要的是了解每种模式解决什么问题)
  • 如果你目前的工作没有挑战性,考虑换一份更有挑战性的工作

您可能会注意到其中一些有一个共同的主题:学习技术和模式主要是为了了解哪些问题有解决方案。

熟练的高级开发人员可以指出具体的问题,记住哪些技术或模式可以解决这些问题,并在需要时学习或重新学习如何即时实现这些解决方案!

更多资源

以下是我的一些文章,可以作为深入研究我发现有助于成为高级开发人员的主题的起点:

有什么想法吗?还有其他建议吗?

您对有志于成为高级开发人员的人还有什么建议吗?

还有其他问题吗?

发表评论!

保持联系

不要忘记通过以下方式与我联系:

您也可以通过我的网站www.jamesmichaelhickey.com找到我。

导航你的软件开发职业通讯

一封电子邮件简报,助您提升软件开发职业水平!您是否想过:

✔ 软件开发人员通常经历哪些阶段?
✔ 我如何知道自己处于哪个阶段?如何进入下一个阶段?
✔ 什么是技术领导者?如何成为技术领导者?
✔ 有人愿意陪伴我并解答我的疑问吗?

听起来很有趣?加入社区吧!

文章来源:https://dev.to/jamesmh/how-to-become-a-senior-developer-3di3
PREV
我应该使用微服务架构吗?一片混乱 流沙 微服务和分布式系统 如有疑问,请澄清 什么是微服务? 微服务的意义何在? 穿上我们“大男孩/女孩”的建筑裤子 一个实际的例子 一些提醒和补充说明 进化架构 关于那个UI问题…… 复合UI 不是微服务 我知道尺寸不重要…… 还是很重要? 结论 需要帮助吗? 保持联系
NEXT
高级开发必备技能:用模式解决问题 上篇文章回顾 简介 现实生活中的设计模式? 外观系统思维 一个真实的例子 高效的厨师不需要大厨🤔 知识带来强大的力量 更多深度探索 更多资源 这对你有帮助吗? 保持联系 规划你的软件开发职业生涯 时事通讯