【译文】程序员,你的工作不是编写代码
我一直给想要成长的开发人员的建议可能看起来有悖常理,但对我来说却始终正确–成为一名优秀开发人员的第一步就是认识到你的工作不是写代码。
我怎么知道这是真的呢?我从来没有花过一分钟时间与开发人员一对一讨论他们编写的代码!这不是我在指导别人时所花费的精力。要想变得更资深,并不是通过更好的编码。
此外,你的利益相关者–请振作起来!–根本不在乎你的代码是否简洁、开发人员的体验、工具或你可能做的任何其他修补。他们会对一个庞大、复杂的功能或配置文件中的一行改动感到满意。重要的是,你已经交付了价值。
软件开发人员对代码如此痴迷,以至于忘记了他们是受雇为用户提供服务的
同样,在团队中工作时,你可以是世界上最伟大的开发人员,但如果没有人喜欢和你一起工作,或者不理解你每天在做什么,那么你基本上就是一个人肉纸团。
因此,除了在你最喜欢的集成开发环境中键入代码之外,你还需要掌握更多的技能。认为 “开发人员写代码 “就像认为 “木匠锤钉子 “一样简单、幼稚,而且是个陷阱。
在我 20 多年的软件生涯中,如果我能提出一点看法的话:
从长远来看,你的善良和乐于助人远比你的技术能力更有影响力。
人们会记住你给他们带来的感受。他们不太可能记住你写的那个很棒的函数。
隐藏在众目睽睽之下的陷阱
有一些明显的迹象表明,你可能陷入了 “开发人员编写代码 “的陷阱。其中一些可能会在某个时间或某个地点出现,只要你有自知之明,就不会有问题。但是,你经常表现出的这种情况越多,你就需要付出更多的努力才能摆脱困境。这些迹象包括
- 对会议表现出蔑视或不屑。
- 不检查、不确认或不回复信息。
- 不参加 “非必要 “谈话或社交活动。
- 不容忍中断或上下文切换。
- 为计划编码任务的延误道歉。
- 仅通过计算拉取请求来衡量自己的产出。
- 不对工作提出问题或进行批判性思考。
- 不提出建议、想法或解决方案。
- 对问题领域缺乏好奇心。
- 担心自己的工作而忽略了队友的工作。
这些可能是相当常见的开发人员刻板印象。其他人认为 “开发人员写代码 “也是陷阱的一部分。希望你不会为某位 “天才 “首席执行官工作,这位首席执行官会要求你将代码打印出来供他个人审阅!
要想真正取得成功,你就必须发现这些反常规,并为自己和他人纠正这些假设。你必须真正拥有自己的叙述,否则别人就会替你叙述。
为什么这是一个陷阱
“开发人员编写代码 “的陷阱对公司、团队,尤其是对你自己都是有害的。它会限制你的发展,并使你成为一个更糟糕的开发人员。
- 短期思维(例如,”我的下一个编码任务是什么?”)意味着你在原地打转。
- 你更有可能对自己的代码投入感情,这就限制了你的学习机会或下次需要接触代码时的潜在解决方案。
- 你会被视为专业开发人员(或被淘汰)–还记得我们的 Flash 开发人员吗?
- 倦怠更有可能发生,因为你只是一个过客,而不是工作或其命运的积极参与者。
- 在你的团队中,无论技术还是其他方面,你都不会遇到新奇有趣的挑战。
- 可供你选择的职业道路会越来越少,因为你只想把手指放在键盘上。
那么,你的工作是什么?
如果你的工作不是写代码,那你的工作是什么?这个问题很公平,答案也很简单…
你的工作就是解决问题。
没错,就是这样。
显然,我们确实通过编写代码来解决一些问题。但我们也可以通过阅读代码、测试代码、调试代码或删除代码(我个人的最爱)来解决问题。
等等,还有更多!所有这些都是你作为开发人员的工作,都是为了解决问题。请继续阅读。我等着
- 组织和参加社交活动
- 志愿服务
- 建议或颁布流程变更
- 面试候选人和审核简历
- 参加会议
- 做别人的橡皮鸭
- 向别人展示你找到的很酷的东西
- 吃自己的狗粮
- 撰写文档
- 指导和辅导他人
- 参加会议
- 调试或跟踪代码
- 在厨房/走廊等地方聊天
- 测试代码
- 在生产中测试
- 原型设计
- 演示和介绍
- 谷歌搜索
- 估算工作量
- 闪电演讲
- 阅读代码(PR)
- 参加培训
- 删除代码
- 设计系统和解决方案
- 查找或报告错误
- 排除故障
- 头脑风暴
- 阅读 Stack Overflow
- 提出问题
- 研究
- 成为主题专家
- 及时更新 Slack/电子邮件
- 疏通队友
- 与利益相关者交谈
- 关心用户
- 编写代码
其中大部分通常被认为是 “软技能”,我对这个词嗤之以鼻。它们都是平等的技能。我不会把写作、沟通、换位思考、帮助或思考排在所谓的 “硬 “技能之后。
要想在工作中取得成效并不断晋升,你需要具备所有这些能力。正如蒂姆-奥廷格(Tim Ottinger)所说,编程 “主要是思考”,而你的代码 “只是工作的残余”。卡尔-萨特(Karl Sutt)也提出了很好的沟通建议,说明换位思考本身就是一项需要付出真诚努力的有用技能:
无可否认,高效写作是一种超能力。作为一名软件工程师,你要写很多东西。你所做的大部分写作都是为了计算机。然而,企业是由人组成的。
去做你的工作
我们都知道,在默认状态下,开发人员更愿意一个人写代码。我也经历过这种情况。写代码很有趣!很舒服!但我敢说这太舒服了。坦率地说,如果你不挑战自己,你就只是在做别人可以代替你做的事情。
当我面试高级 SW 工程师和 EM 时:
我要求他们将在当前工作中花费的时间分解为实际百分比。
如果应聘者声称他们 100% 的时间都花在编码上,我就会认为他们资历较浅。
他们错过了很多我期望他们完成的重要任务。
我鼓励你们拓宽对 “优秀开发人员 “的理解,然后满足这一定义。
请记住,衡量你的工作效率和贡献的标准不仅仅是代码输出。认识到有一长串技能是同样有价值和必要的,然后选择下一个技能来提高自己。初学者和高年级学生都能做到这一点。总会有另一项技能需要打磨。
一旦你意识到自己不仅仅是代码,你就会在成为更好的开发人员的道路上越走越远。
本文文字及图片出自 Developers, Your Job Is Not To Write Code
你也许感兴趣的:
- 具有魔法的 H.264
- 多用户环境中的 rootless Docker
- 【外评】微软的人工智能聊天机器人将 “回忆 “您在其新 PC 上所做的一切
- 【外评】苹果需要解释重新出现已删除照片的错误
- 你需要知道的现代 CSS 技巧(2024 年春季版)
- 使用 :has() 作为 CSS 父选择器及其他更多内容
- 【外评】大科技公司致欧盟:“去死”
- npm又被滥用,灰产用《庆余年2》盗版资源——把开源公共基础设施的羊毛薅秃了
- 【外评】如果您没有在 Edge 中使用必应,微软现在会说您的电脑需要 “修复”
- Chrome 浏览器开发工具(DevTools)现在使用双子座(Gemini )来帮助处理控制台中的 JavaScript 错误
你对本文的反应是: