# 【转】我在 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 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 ...

Web 音视频(七)中期回顾

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

善-恶

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

书评笔记

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

React Hooks 的思考

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

生存空间

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