【译文】程序员,你的工作不是编写代码

我一直给想要成长的开发人员的建议可能看起来有悖常理,但对我来说却始终正确–成为一名优秀开发人员的第一步就是认识到你的工作不是写代码。

我怎么知道这是真的呢?我从来没有花过一分钟时间与开发人员一对一讨论他们编写的代码!这不是我在指导别人时所花费的精力。要想变得更资深,并不是通过更好的编码。

此外,你的利益相关者–请振作起来!–根本不在乎你的代码是否简洁、开发人员的体验、工具或你可能做的任何其他修补。他们会对一个庞大、复杂的功能或配置文件中的一行改动感到满意。重要的是,你已经交付了价值。

软件开发人员对代码如此痴迷,以至于忘记了他们是受雇为用户提供服务的

同样,在团队中工作时,你可以是世界上最伟大的开发人员,但如果没有人喜欢和你一起工作,或者不理解你每天在做什么,那么你基本上就是一个人肉纸团。

因此,除了在你最喜欢的集成开发环境中键入代码之外,你还需要掌握更多的技能。认为 “开发人员写代码 “就像认为 “木匠锤钉子 “一样简单、幼稚,而且是个陷阱。

在我 20 多年的软件生涯中,如果我能提出一点看法的话:

从长远来看,你的善良和乐于助人远比你的技术能力更有影响力。

人们会记住你给他们带来的感受。他们不太可能记住你写的那个很棒的函数。

 

隐藏在众目睽睽之下的陷阱

有一些明显的迹象表明,你可能陷入了 “开发人员编写代码 “的陷阱。其中一些可能会在某个时间或某个地点出现,只要你有自知之明,就不会有问题。但是,你经常表现出的这种情况越多,你就需要付出更多的努力才能摆脱困境。这些迹象包括

  • 对会议表现出蔑视或不屑。
  • 不检查、不确认或不回复信息。
  • 不参加 “非必要 “谈话或社交活动。
  • 不容忍中断或上下文切换。
  • 为计划编码任务的延误道歉。
  • 仅通过计算拉取请求来衡量自己的产出。
  • 不对工作提出问题或进行批判性思考。
  • 不提出建议、想法或解决方案。
  • 对问题领域缺乏好奇心。
  • 担心自己的工作而忽略了队友的工作。

这些可能是相当常见的开发人员刻板印象。其他人认为 “开发人员写代码 “也是陷阱的一部分。希望你不会为某位 “天才 “首席执行官工作,这位首席执行官会要求你将代码打印出来供他个人审阅!

要想真正取得成功,你就必须发现这些反常规,并为自己和他人纠正这些假设。你必须真正拥有自己的叙述,否则别人就会替你叙述。

为什么这是一个陷阱

“开发人员编写代码 “的陷阱对公司、团队,尤其是对你自己都是有害的。它会限制你的发展,并使你成为一个更糟糕的开发人员。

  • 短期思维(例如,”我的下一个编码任务是什么?”)意味着你在原地打转。
  • 你更有可能对自己的代码投入感情,这就限制了你的学习机会或下次需要接触代码时的潜在解决方案。
  • 你会被视为专业开发人员(或被淘汰)–还记得我们的 Flash 开发人员吗?
  • 倦怠更有可能发生,因为你只是一个过客,而不是工作或其命运的积极参与者。
  • 在你的团队中,无论技术还是其他方面,你都不会遇到新奇有趣的挑战。
  • 可供你选择的职业道路会越来越少,因为你只想把手指放在键盘上。

那么,你的工作是什么?

如果你的工作不是写代码,那你的工作是什么?这个问题很公平,答案也很简单…

你的工作就是解决问题。

没错,就是这样。

显然,我们确实通过编写代码来解决一些问题。但我们也可以通过阅读代码、测试代码、调试代码或删除代码(我个人的最爱)来解决问题。

等等,还有更多!所有这些都是你作为开发人员的工作,都是为了解决问题。请继续阅读。我等着

  • 组织和参加社交活动
  • 志愿服务
  • 建议或颁布流程变更
  • 面试候选人和审核简历
  • 参加会议
  • 做别人的橡皮鸭
  • 向别人展示你找到的很酷的东西
  • 吃自己的狗粮
  • 撰写文档
  • 指导和辅导他人
  • 参加会议
  • 调试或跟踪代码
  • 在厨房/走廊等地方聊天
  • 测试代码
  • 在生产中测试
  • 原型设计
  • 演示和介绍
  • 谷歌搜索
  • 估算工作量
  • 闪电演讲
  • 阅读代码(PR)
  • 参加培训
  • 删除代码
  • 设计系统和解决方案
  • 查找或报告错误
  • 排除故障
  • 头脑风暴
  • 阅读 Stack Overflow
  • 提出问题
  • 研究
  • 成为主题专家
  • 及时更新 Slack/电子邮件
  • 疏通队友
  • 与利益相关者交谈
  • 关心用户
  • 编写代码

其中大部分通常被认为是 “软技能”,我对这个词嗤之以鼻。它们都是平等的技能。我不会把写作、沟通、换位思考、帮助或思考排在所谓的 “硬 “技能之后。

要想在工作中取得成效并不断晋升,你需要具备所有这些能力。正如蒂姆-奥廷格(Tim Ottinger)所说,编程 “主要是思考”,而你的代码 “只是工作的残余”。卡尔-萨特(Karl Sutt)也提出了很好的沟通建议,说明换位思考本身就是一项需要付出真诚努力的有用技能:

无可否认,高效写作是一种超能力。作为一名软件工程师,你要写很多东西。你所做的大部分写作都是为了计算机。然而,企业是由人组成的。

去做你的工作

我们都知道,在默认状态下,开发人员更愿意一个人写代码。我也经历过这种情况。写代码很有趣!很舒服!但我敢说这太舒服了。坦率地说,如果你不挑战自己,你就只是在做别人可以代替你做的事情。

当我面试高级 SW 工程师和 EM 时:

我要求他们将在当前工作中花费的时间分解为实际百分比。

如果应聘者声称他们 100% 的时间都花在编码上,我就会认为他们资历较浅。

他们错过了很多我期望他们完成的重要任务。

我鼓励你们拓宽对 “优秀开发人员 “的理解,然后满足这一定义。

请记住,衡量你的工作效率和贡献的标准不仅仅是代码输出。认识到有一长串技能是同样有价值和必要的,然后选择下一个技能来提高自己。初学者和高年级学生都能做到这一点。总会有另一项技能需要打磨。

一旦你意识到自己不仅仅是代码,你就会在成为更好的开发人员的道路上越走越远。

本文文字及图片出自 Developers, Your Job Is Not To Write Code

余下全文(1/3)
分享这篇文章:

请关注我们:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注