查看原文
其他

这五个理由,让我坚信:全栈开发 yyds!

CSDN 2023-01-10

摘要:尽管付出大量时间学习,专业深度可能也比不上专家,但这五个理由,让我坚信——全栈开发 yyds!

接:https://betterprogramming.pub/5-reasons-why-being-full-stack-was-my-best-career-choice-5606ce1a74b1

声明:本文为 CSDN 翻译,未经允许禁止转载。

者 | Syed Mohsin
译者 | 弯月   责编 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

作为一名全栈工程师,我每天的工作就是盯着代码编辑器里面各种的 React、Ruby on Rails 以及 AngularJS 等大量的遗留代码——从构建新 API,到数据模型,再到丰富的用户界面,我把构建端到端功能所需的所有技术都学了个遍。

不过,技术只是工作的一部分,我还需要与其他团队搞好关系,确保我编写的代码符合他们的系统标准。好在对我来说,这种类型的工作虽然压力很大,但也令人兴奋。广泛的责任范围为我带来了大量的学习机会,我也因此迅速成长。

我认为全栈是一份值得付出大量努力的工作,对我的个人和职业发展来说更是一份宝贵的经历,原因主要有以下五个。


更快速


如果工程团队对组织内的系统和工具缺乏大致了解,那么即便人数占优,速度也比不上一位全栈工程师:

  • 知识碎片化:发现和编写技术规范需要更长的时间,因为需要多名工程师共同参与。

  • 频繁的会议:在动手开发之前,经理可能需要召开很多会议来协调工程师。

  • 工程师之间彼此“束缚”:为了等待其他人的进度,工程师经常很闲或者去干其他工作。

而我,由于拥有全栈开发能力,可以避开上述导致效率降低的大部分问题并快速行动。例如,我在一家中型创业公司学习了全栈技术,并构建一个端到端的功能,前端 + 后端使用了两种不同的编程语言,接触了五个不同的代码库,最后在几个月内就开始创收。

这引起了高管们的注意,看到我可以独自开发这款产品,他们表示十分惊讶。因为根据他们的经验,构建类似的产品需要投入一个完整的团队,期间涉及各种协调,花费的时间也更长。


找到更多解决问题的方法


全栈意味着,对各种系统如何协同工作有着整体的把握,这种视角常常让我发现别人都看不到的答案和机会。

我个人对一些项目的贡献包括:

  • 帮助停滞的项目重新启动。我通过各种角度调查一些失败项目,并帮助他们重新启动。例如,是否可以通过前端更轻松地实现后端的一些功能?使用 React 还是 Rails,哪个更快?我们可以在不同的代码库中实现这些功能吗?

  • 团队之间的横向交流。在开发代码库 A 时,我发现了一些可能对代码库 B 有帮助的模式,于是我充当起了两个团队之间的桥梁,帮助推动他们采用可扩展的实践。


提高沟通能力


根据我的经验,寻找领域专家并与他们建立关系,是快速学习以及为技术栈的各个部分做出贡献的关键。为此,我学会了与不同的团队通,并与他们建立友好关系——这意味着,向其他团队自我介绍,寻求有关如何做出最大贡献的指导。

通常,我会提出以下问题:

  • 介绍一下你们的代码审查流程?

  • 代码库的长期目标是什么?

  • 你们有哪些没时间解决的技术债务?

我个人最喜欢最后一个问题,这样我就可以帮助他们解决技术债务问题,从而与他们建立友好关系。等以后我需要帮忙合并 PR 时,他们也会愿意提供积极的帮助。


更好地了解业务


产品和营销团队可以描绘出用户行为,而全栈工程师也可以通过技术追踪用户行为。举个例子,将从注册到付款的完整体验映射技术:

  • 用户打开营销网页:Gatsby 静态站点应用程序。

  • 用户登录/注册:NextJS 应用程序和移动应用。

  • 创建新用户:在 Ruby on Rails 中构建的 GraphQL API。

  • 用户提交订单:移动应用。

  • 用户的付款流程:React 收费应用。

将用户体验映射成技术栈是一种超能力,这种能力可以帮助我清楚地了解为了改善用户流失率,我需要深入研究技术栈的哪些组件。例如,如何提高注册转化率,通常我会建议营销应用使用更好的交互按钮,将用户引到注册页面,改进 GraphQL API 的注册请求响应时间,或者简化 NextJS 应用中的注册表

总之,了解整个技术栈可以有效地将业务问题转化为技术解决方案,并带来独特的构思视角。


培养领导能力


由于有效地解决了一系列问题,我经常为技术提案提供意见,指导工程师,并协助管理项目。

此外,我也承担起了一些有趣的工作:

  • 充当“粘合剂”:将工程师与正确的资源联系起来,加速他们的发展。

  • 改善团队间的文化:在我看来,全栈意味着担负起整个系统所有的工作。我经常在各种会议中充当管理的角色,并创建了很多文档来促进团队之间的统一性。


最后的想法


代码库有边界,但业务无边界,很多业务问题都需要跨越多个代码库——这就是为什么我认为,开发人员应该培养能够承担起系统所有工作的技术和心态。

总的来说,我认为全栈开发人员的主要优势如下:

  • 更快速;

  • 找到更多解决问题的方法;

  • 提高沟通能力;

  • 更好地了解业务;

  • 培养领导能力。

当然,全栈开发也有很多缺点。首先,你需要付出大量的时间和精力;其次,专业领域的深度也比不上专家;最后,经常需要独自工作,缺乏指导。

不过,无论你在小型创业公司工作,还是在大型企业就职,我相信每个人都可以在全栈开发中受益。

从云原生实战峰会,透视2023年云原生发展趋势
阿里宣布组织大变动:集团迎来首位 80 后 CTO、张勇亲自挂帅阿里云!
放弃笨重的 IDE,转而尝试 Emacs

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

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