T型开发人员的神话
《T 型开发人员的神话》一文最先出现在Kill All Defects上。
探索开发者职业的泛化与专业化
最近,一位我尊敬的年轻开发者表达了一个颇为普遍的担忧。本质上,他们担心的是,自己什么都做一点,不够专业。他们尤其担心,如果没有关键的专业技能,没人会愿意雇佣他们。
他们还提到了“T”型开发人员的概念,这种开发人员不仅拥有广泛的经验,而且在某个特定领域拥有深厚的技能。
请记住,这是一位刚从训练营毕业的新开发人员,早期的专业化可能既困难又有限制。
这是新开发人员普遍关心的问题,因此,在本文中,我将探讨通用化、专业化、所谓的 T 型开发人员的利弊,并介绍“梳状”一词,我认为这更能准确地描述开发人员的职业生涯。
概括
通才意味着在广泛的领域拥有足够的技能。作为一名通才,你有足够的能力解决整个技术栈中的问题,参与各种各样的项目,并在需要时参与并提供帮助。这意味着你能够为团队提供很多帮助,并且更有可能从头到尾负责所有功能。
这种灵活性反过来又会给你带来更多机会。你可能会接到bug的指派,因为人们相信你能够识别问题所在,并且熟悉修复这些问题所需的知识。此外,你能够快速融入代码库,这使得当公司需要调动人员参与项目时,你成为首选。这提升了你对组织的价值,但也可能会让你感到沮丧和困扰。
概括的缺点是,您往往不知道特定技术层的最新实践和模式,并且更有可能编写次优代码,仅仅是因为您不知道做某事的最佳方法或没有足够的经验来避免常见的陷阱。
此外,专家可能会看不起你的技术能力,因为他们看到你在并非专家的技术栈中做出贡献,并会用专家的标准来评判你。这种对你能力的认知可能会导致整个组织对你缺乏应有的尊重,或者给你的薪水低于你的同行专家。
专业化
专业化提供了真正探索并成为特定技术和领域专家的机会。大型框架的子集、前端或后端代码、数据访问层、通信逻辑等等,都是人们可以专攻的技术领域。此外,人们还可以在大型组织中专注于特定项目或特定类型的项目,尽管这通常不被视为一种明确的专业化形式。
专家往往会处理更复杂的变更和更复杂的错误。他们更有可能被贴上“专家”的标签,因为他们的职位需要特定领域的专家级知识。这种专家级技能组合导致技能组合更加稀缺,并且可以获得更高的薪酬,因为就业市场上拥有高级职位所需专业知识的人越来越少。
这并不是说专家必须是高级开发人员。初级开发人员也可以专注于某些领域,并且经常因组织需求而被迫进入该领域。这可以帮助初级开发人员更快地获得技能和适应,但会限制他们在更大的组织或团队中的实用性。
然而,专业化也有其弊端。作为一名专家,你会更加依赖某项特定的技术。如果这项技术变得不再流行,或者突然不再受某个主流平台的支持,你很可能会被迫与该领域的其他专家竞争,而这些专家也正在努力调整自己的职业生涯以适应这一突然的变化。
或者,如果你在其他人离开时坚持下去,你可以赢得一些非常有利可图的职位,维护不再积极开发的旧技术,但请记住,随着时间的推移,找到需要你的技能的工作会变得越来越困难,而且你会在其他开发人员眼中失去尊重,因为你被视为与古老的技术联系在一起。
由于技能过于单一,专家在组织中也可能会错失一些机会。如果身边没有其他拥有类似技能的人可以接手你的工作,晋升或调动到其他项目可能会很困难。这意味着专家看不到太多的多样性,也无法接触到组织可能创造的一些更新、更“有趣”的项目。
话虽如此,但在特定领域拥有极其熟练的技能会很有趣,原因很简单:擅长某件事很有趣。
T 型开发人员
“T 型”开发人员是一个你经常听到的术语。它指的是那些既拥有通才的广度,又在特定领域拥有专家的深度的人。
T 型开发人员往往由通才组成,他们深入研究自己感兴趣的特定领域,或者由专家扩展并学习更多领域。
大多数开发人员在达到高级开发人员级别时都会成为 T 型人才,但我并不认为这是大多数开发人员的最终状态。T 型人才并不坏,但我认为这并不能真正反映现代开发职业的现状。
梳状职业生涯
相反,我认为,随着开发人员年龄的增长和对新兴技术经验的积累,他们会变得更接近“梳状”的形态。也就是说,他们既拥有通才的广度,又具备职业生涯中不断追求的多种专长。此外,梳子的“底部”比传统的通才深度更厚或更深。
所有这些都表明,随着开发人员不断发展和成长并遇到新的库和技术,他们积累了许多专业领域,并在他们仍然是通才的领域中获得了更大的舒适度。
他们拥有的多种专业化技术带来了一些有趣的好处。由于不同的学科和技术会采用不同的技术来解决各自的问题,因此你通常可以借鉴某一专业领域的一些特定工具和技术,并将其应用于其他专业领域。这并非完全是同一种技术的重复应用,而更像是认识到一个共同的原则,并将其应用于新的环境。
随着你变得越来越精通,你在使用新技术时会感觉更加熟悉,能够快速地应用新事物,并对软件开发有更深的普遍智慧。
重要提示: 谁也无法保证等你变成“梳子形状”的时候,你还会有头发。这就是人生的讽刺。
指引你自己的道路
所以,下次如果有人建议你应该更加专业化,或者你应该更像一个通才,或者更像一个“T 型”开发人员,请认真考虑,但不要担心这是一个不可逆转的决定。你的职业生涯是你自己的,如果你继续从事开发工作,你很可能会在专业化和通才化之间来回切换。
如果这对任何人都有帮助,以下是我迄今为止的旅程的起起伏伏:
- 从 Java 通才开始
- 转移到 .NET 通才,修复整个代码库中的错误
- 转向 WPF 专家编写非常复杂的高性能控件
- 利用 T 型思维成为一名高级开发人员
- 获得了网络服务方面的额外专业化
- 更广泛地应用于 ASP .NET Web 开发
- 专门从事 Silverlight 开发人员
- 随着 Silverlight 的迅速衰落,我作为一名真正的“全栈”开发人员涉足 Angular
- 由于我们需要弥补一些复杂的基础,因此更加专注于 Angular
- 换了工作,成为一名 .NET 通才和经理
- 专注于软件质量和技术债务管理,帮助我的组织满足其需求
人生是一场旅程,我们的事业也是其中的一部分。选择一条适合自己的路,并记住,这条路只是一条临时路,它总会与其他主路汇合。
文章来源:https://dev.to/integerman/the-myth-of-the-t-shape-developer-eki