# 【转】我在 20 年的软件工程师生涯中学到的事情

原文 (opens new window)
阮一峰翻译 (opens new window)

我一般不太喜欢看这种经验之谈,在阮一峰周刊中看到,感觉总结得非常精炼有理,很多内容能诱发个人回忆,所以就转载过来了

(1)优秀的软件工程师不仅编写代码,还会考虑谁将使用它、为什么使用它、如何使用它。牢记用户需求才能创造良好的用户体验。

(2)水平再高的程序员,也会在自己擅长的领域犯错,如果遇到复杂的问题,就更是如此了。始终牢记,最好的代码是没有代码,或者不需要维护的代码。

(3)任何软件工程师的主要工作都是交付价值。软件只是达到目的的手段。

(4)警惕那些很长时间没有编写任何代码、却在设计系统的人。

(5)Bjarne Stroustrup 有一句名言:"只有两种计算机语言:人们抱怨的语言和没人使用的语言"。大型系统也是如此,每个系统最终都很糟糕。

因此,不要太在意代码的优雅和完美,而要持续改进,创建一个可用的系统,让开发者喜欢在其中工作并可以提供价值。

(6)10倍程序员是一个愚蠢的神话。我只见过程序员将代码规模增加了10倍,最终结果是你必须修复10倍的bug。

真正要做的不是找到神话中的10倍程序员,而是要避免出现0.1倍程序员。那些浪费时间、不寻求反馈、不测试代码、不考虑边缘情况等的程序员,必须保证让这样的人远离我们的团队。

(7)人们说他们想要创新,但实际上,他们想要通常的只是某种新颖性和业务成功。如果你的创新改变了人们做事的方式,大多数情况下会得到负面反馈。如果你相信你正在做的事情,并知道它真的会改善事情,那么就准备好迎接一场持久战吧。

(8)数据是系统中最重要的部分。数据可能会比你的代码寿命更长,保持数据的有序和清洁,避免脏数据,从长远来看,会得到很好的回报。

(9)一直存在的旧技术不是恐龙,而是鲨鱼。它们很好地解决了问题,所以一直活到了现在,没有被快速变化的技术浪潮淘汰。

不要轻易押注新技术,只有在充分理由的情况下才替换正在发挥作用的旧技术。那些老式的技术工具不花哨,也不令人兴奋,但它们可以完成工作,不会给你带来很多个不眠之夜。

(10)很多软件工程师除非被问到,否则不会发表意见。不要因为有人没当面发表意见,而认为他们没什么要补充的。有时,会议上嗓门最高的人是我最不想听的人。

(11)如果将人们与他们的工作成果分开,他们就会不太关心他们的工作。软件工程师和所有人一样,需要有主人翁的感觉,从头到尾拥有整个流程,直接负责交付价值。

让一群充满激情的人完全拥有设计、构建和交付软件的所有权,令人惊奇的事情就会发生。

(12)面试最好用于了解某人是谁,以及他们对特定专业领域的兴趣程度,对于试图弄清楚他们是否将成为一个优秀的团队成员,那是徒劳的。

(13)始终努力构建一个更小的系统。

有很多原因会推动你,去构建一个比原先设想的更大的系统,人类似乎有一种提供更多功能的欲望。你应该抵制这种欲望,在满足设计目标的前提下,始终努力构建一个更小的系统,这样你最终会得到一个比最初设计更好的系统。

💗 博主正处于裸辞待业状态,欢迎 商务合作 💗

相关文章

2025 裸辞计划

大家好,我是风痕,在我的博客首页可以看到我的一些个人信息。 去年初发了一篇文章2024,做个“前端网红”吧,回顾 2024 我的博客、公众号、开源项目热度有一点提升,但显然还不够“红”,可能大概也许是被这个 “B 班”给耽误了吧 [doge]。 "今天这 B 班就上到这" 不得不说阿 B 的文化生活 ...

AI 媒介将如何重塑人类社会(风痕、Claude 访谈记录)

alt text 图片也是 Claude 生成的 前言 多年前从《娱乐至死》这本书了解到媒介理论,作者的理论如先知的预言,警示即将到来的互联网时代。 也是从此书中了解到某些技术媒介(印刷机、电视机)竟有如此巨大的能量,能改变社会结构与人们的生活方式。 最近读完《理解媒介·论人的延伸》这本媒介理论的开山之作,再看当前如火如荼的 AI 技术, ...

从 React 看前端 UI 代码范式革命

alt text 前言 本来打算写的主题是“我为什么讨厌 React Hooks API”,展开聊聊“小甜甜”是如何变成“牛夫人”的,没想到越写越严肃:) React 是两次前端范式革命的引领者,至今仍有繁荣的社区和旺盛的创造力; React 多次天才又激进的创新,一些想法被借鉴改良、一些引发广泛质疑,大部分是被认同和接受的; ...

2024,做个“前端网红”吧

​ 写博客好多年了,以前是随缘更新,无所谓有没有人看。 23 年有些意外、有些机缘,写了不少代码和文章。 github contributions 收到了一些正向反馈,github 新增 500+ star,博客站点日 PV 300 左右。 所以想博客也许可以作为一个业余项目,正经运营起来。 作为 Web 开发者,自然不喜 ...

Web 音视频(七)中期回顾

Web 音视频目录 个人回顾 本系列更新至今,持续了一个月时间,内容可以总结为音频、视频数据的 解析 - 处理 - 合成,在浏览器中比较粗粒度地实现音视频编辑的主要环节,差不多是把 WebAV 项目的原理讲完了。 讲解的知识非常浅,目标读者是准备在 Web 平台进行音视频开发的新手; 这是我第一次进行高频率技术写作,将一 ...

Web Audio & Video (7) Mid-Series Review

Web Audio & Video Series Table of Contents Personal Reflection Over the past month since this series began, we've covered the parsing, processing, and composition of ...

善-恶

春节在家走亲戚,听说有人从事的行业实为“间接诈骗”,并且也看不出周围的人对此行为有什么鄙视之情,大家更关注的似乎是能赚多少。 我没想到“恶”,离我如此之近,不由得更深入地去理解思考————“善恶”。 为什么会存在“善恶”这样的抽象概念? 其本质是什么? “恶”是否可以消除? 消除“恶”会有什么影响呢? -- 虽然没人直接告诉我们“善-恶”这个概念的定义,但我们很小 ...

书评笔记

社会学 当代中国的中央地方关系 分税制改革断了地方政府的财路。 我记得96年左右我们那里的政府似乎特别困难,“人头税”涨得很快,农民都交不起了,甚至听说zf组织地痞流氓上门抢钱粮。我印象深刻是因为我家也被强行开仓放粮了,当时很小五六岁左右,比较害怕。不知道跟分税制改革有没有关系。 没想到呀,土地财政救了地方政府,也算是人口红利的一部分。这也理解了为啥中央一直喊要控制 ...

React Hooks 的思考

前言 听说 Hooks 有一段时间了,一直没去看文档。最近终于想起这事儿,浏览一遍文档后,立即燃起了一种“兴奋感”。 这种“兴奋感”犹如当初看见“箭头函数”、“async/await”一样。 所以,即使在有很多分析文章的情况下,仍想再写一些个人的思考和感受。 [react hooks官方文档](https://reactjs.org/docs/hooks-intro.html ...

生存空间

存在即合理。 —— 黑格尔 一 我很久前曾多次纳闷:苍蝇,存在的意义是什么? 不像蚊子,咬人痛痒,它飞来飞去让人厌烦,飞得还快打不着,打着了又让人恶心。 总之,它不那么坏,整天飞来飞去惹人厌烦外,不能理解其存在的意义。 现在看来,当时的思考内容略显幼稚。 但人总是受限于自己的主观经验,难以理解很多事物存在的“理”。 二 然,大道至简。 足够“简 ...