你确定你是一名专业开发人员吗?

2025-06-07

你确定你是一名专业开发人员吗?

如果您有兴趣阅读西班牙语版的这篇文章🇪🇸,请查看我的博客:
The Developer's Dungeon

多年来,我一直认为,成为一名职业拳手的唯一条件就是能通过做事获得报酬。我练了多年的泰拳,所以成为一名职业拳手意味着能通过比赛获得报酬(当然,比赛时使用的护具更少,而且有时回合数更长)。

在我之前的人生,在之前的职业生涯中,一位教授告诉我,专业人士不会谈论自己不了解的事情,不会撒谎。我觉得这个想法很酷,就把它加到了我的定义里。奇怪的是,前几天一位朋友告诉我,我话不多,但说话的时候总是能说些很精辟的话,所以那位教授对我的影响可能比我当时意识到的还要大。

直到几年前,我还以为自己是一名专业的开发人员,直到我读了罗伯特·C·马丁(又名“鲍勃叔叔”)的《代码整洁之道》后,我才开始分析自己的过程、行为、错误,并意识到也许我没有按照正确的标准要求自己。

在本文中,我将指出我过去的错误以及我认为真正的专业人士应该如何表现。


假专业人士

作为一名“专业”软件开发人员,我最初两年在多家咨询公司工作过。所有事情都必须快速完成,有时没有QA团队,有时没有设计师,一切都仓促进行,压力很大,但这些都不是借口。由于缺乏自信,我被迫完成一些质量不达标的工作,但这一切都是我自己造成的。

  • 出于懒惰,我确实故意交付了有缺陷的软件。
  • 我两年内没有写过一个单元测试。
  • 我没有编写出最好的代码,我多次寻求快速简单的解决方案,但却带来了未来的错误和问题。
  • 我已经接受了“尝试”在特定的期限内完成任务,即使我知道在那个期限内完成任务是不可能的,甚至多次加班到整个周末。
  • 我被迫接受某些解决方案,但这些解决方案的技术人员没有足够的技术能力去理解其真正含义。
  • 从我自己的行为来看,我看到代码已经腐烂到应用程序开发变得非常缓慢的地步。
  • 我在工作时间浪费了时间。
  • 我认为雇主有义务教我适合我工作的工具和做法。

那些年,我以为开发人员的工作就是这样的,我的意思是,我周围的每个人都在做同样的事情,项目没有测试,管理层对项目应该如何实施以及何时实施全权负责。我作为一名开发人员的诺言一点儿也不被尊重,现在我终于明白为什么了。

我很确定我不是社区中唯一一个这样做的人,多年来我与许多开发人员交谈过,知道这并不奇怪。

不幸的是,我开始觉得我们并没有一个职业。我们没有一套规则、一套通用的实践和道德规范,让每个开发者都遵循这些规范才能被视为专业开发者。我们也没有一个通用的组织,当开发者的行为违反我们的通用标准时,能够采取必要的行动。

目标

我并非完全同意“鲍勃大叔”说的,但我同意,在这种情况发生之前,我们至少应该开始表现得像个专业人士。以下是他指出的几条规则:

  • 我编写的代码永远是我最好的作品。我不会故意让任何在行为或结构上存在缺陷的代码堆积起来。
  • 每次发布时,我都会提供快速、可靠且可重复的证明,以证明代码的每个元素都能正常运行。
  • 我会经常发布小版本,以免妨碍其他人的进步。
  • 我将无畏地、坚持不懈地利用一切机会改进我的创作。我绝不会降低它们的质量。
  • 我会尽我所能,尽可能保持自己和他人的高效工作。我不会做任何降低效率的事情。
  • 我将不断确保其他人能够为我掩护,并且我也可以为他们掩护。
  • 我将提供在规模和精度上都诚实的估算。我不会在没有确定性的情况下做出承诺。
  • 我将永远不会停止学习和提高我的技艺。

真正的专业人士

自从这些问题对我来说变得清晰以来,我一直按照更高的标准行事,我已经进入了“软件工艺”社区。

我编写的每段代码都附带一组测试。由于项目没有测试,我开始自己做测试并改进代码。最终,团队加入进来,并知道我们的代码覆盖率相当高。

当我编写错误修复程序时,我不会选择简单的修复,我首先会提出最佳的实现方式,有时由于外部约束,最佳实现方式并不可行,但这个决定是通过有意识的分析做出的,而不是出于懒惰。

如果不属于开发团队的人试图给我设定一个最后期限,我会分析这个最后期限是否可行,如果不可行,我会坚持自己的立场,说在这些要求下,这个最后期限根本不可能实现,然后我会尝试找到一个对双方都有利的妥协方案。

上班时间我都会工作。这是我的职责所在,我拿工资来做这件事。没什么好争论的。

虽然在某些情况下,你的雇主有责任支付你提升自我的费用(例如,如果你需要学习某项技术以便在公司应用它),但我不会把我的总体提升交给雇主,我的职业生涯完全由我掌控。
回家后,我会读书、听播客、用其他范式和语言编写代码,这是我的责任,而且也非常有趣😄


不得不说,自从我转变心态以来,我的职业生涯取得了长足的进步,得到了同行和同事的认可,我不仅为自己的成功承担了责任,也为自己的失误承担了责任。成为一名专业人士并不容易,不为自己设定任何标准要容易得多,但错误的做法也没有任何回报。

我希望你喜欢这篇文章,如果你以前见过其他人,甚至你自己有这样的行为,请在评论中告诉我,你认为我遗漏了什么吗?也请在评论中告诉我。

如果您喜欢这篇文章请分享😄

文章来源:https://dev.to/patferraggi/are-you-sure-you-are-a-professional-developer-1mp1
PREV
SOLID 原则适用于函数式编程吗?
NEXT
申请所有工作,招聘信息无论如何都不现实。