2

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

 4 months ago
source link: https://www.techug.com/post/developers-your-job-is-not-to-write-code/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

为什么这是一个陷阱

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

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

那么,你的工作是什么?

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

你的工作就是解决问题。

没错,就是这样。

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

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

  • 组织和参加社交活动
  • 建议或颁布流程变更
  • 面试候选人和审核简历
  • 做别人的橡皮鸭
  • 向别人展示你找到的很酷的东西
  • 吃自己的狗粮
  • 指导和辅导他人
  • 调试或跟踪代码
  • 在厨房/走廊等地方聊天
  • 在生产中测试
  • 演示和介绍
  • 估算工作量
  • 阅读代码(PR)
  • 设计系统和解决方案
  • 查找或报告错误
  • 阅读 Stack Overflow
  • 成为主题专家
  • 及时更新 Slack/电子邮件
  • 与利益相关者交谈

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

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

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

去做你的工作

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

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

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

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

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

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

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

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

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

TB2aCJ.lcbI8KJjy1zdXXbe1VXa_!!2768491700.jpg_640x640q80_.webp

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK