最近读到一位 20 年“老程序员”的经验分享,对其中的很多点都非常赞同,翻译在这里,权当做笔记了。
原文链接: 20 Things I’ve Learned in my 20 Years as a Software Engineer
- 我仍然有很多东西都不懂
正常现象,早点习惯 - 开发软件最难的是做的东西得有用
老有人花费大把时间写一款超吊的软件,但是没一个人愿意用 - 最厉害的程序员会像设计师一样思考
谁会用我的软件?为什么会用?他会怎么用? - 最好的代码就是不用自己写代码,或者不用自己去维护
拒绝重复造轮子 - 说到底,软件只是一个工具
达成目的才是最重要的,有时候最合适的工具可能不是软件 - “磨刀不误砍柴工”不一定对,有时候就是得快点开始
先上手,小步迭代,老是想着准备好了再开始结局可能就是🐦 - 基础不扎实的人设计不出好的软件
如果长期不在一线写代码,做出的架构设计可能是有问题的 - 没有完美的软件,不要吹毛求疵
所以才要不断迭代,不要以此为借口甩锅 - 人人都该多问一句 Why
多点打破砂锅问到底 - 与其寻找“10 倍程序员”,不如尽量避免“0.1 倍程序员”
字面意思,很实际 - 资深工程师会有自己的观点和标准
初级工程师的经验不够多,没有形成自己的观点和评价标准,这一过程也是初级到资深的过程 - 人们要的可能不是真正的“创新”
嘴上天天喊要创新的可能只是图个新奇/便宜,真正的创新往往收到的是负面反馈 - 数据才是最重要的
数据往往比软件的寿命要长,处理数据的时候谨慎一点 - 多留意“技术鲨鱼”
有些技术虽然老,但是贼好用 - 主动寻求周围人的反馈
大佬们有时候不是没建议,只是不主动 - 保持书写习惯
书面表达能力非常重要 - 保持精简的开发流程
别拿敏捷开发那一套整天折腾团队 - 工程师需要“拥有”的感觉
流水线工人对自己的产出是没有感情的,但是手工师傅对自己的每一件作品都有,软件工程师也一样 - 面试时候吹的牛不要信
候选人拍着胸脯说自己入职以后会怎样怎样,卵用没有,论迹不论心 - 努力构建一个小的系统
最终会随着迭代越来越大越来越完善,自己也能学到很多
作者的同事受此启发也写了一篇10 Things I (Still) Love About Programming,可以一起看看 😃