《人月神话》一书中对软件工程师这一职业乐趣和苦恼的概括:
职业的乐趣:
创造的乐趣与成就感
- 创造的东西于他人有用,能对世界产生影响
- 将各种部件精密组合在一起,本身就有意思
持续学习:
职业的苦恼:
- 计算机语言的完美主义严格倾向
- 权力和责任不匹配: 目标由他人设定,信息由他人提供,执行靠自己
- 对其他程序员工作成果的依赖, 而他人的程序质量良莠不齐,思路千奇百怪
- 创造的乐趣伴随着大量枯燥艰苦的劳动:bug , 测试, 配置等
- 迭代快,竞争大,做好的产品,设计好的程序,很快就过时了
这么多年下来,以上这些职业的苦恼丝毫不减,但相比于以前手工小作坊单打独斗的时代,职业乐趣还存在多少?
以下是个人观点:
创造的乐趣:
- 软件业最近几十年的突飞猛进,维护占比相对新开发越来越高。在他人工作上修修补补,创造的乐趣显然比较低。
- 软件项目越来越大, 每个人负责的模块越来越细小,对个人来说越发抽象,难以直观理解对用户的意义,对现实世界的意义
- 虽然说现在的软件已经不是从 0 到 1 开始开发,而是建立在各种包、模块上,但是复杂程度不减。由于各种原因,大量存量软件成为事实上的 shi 山,而各种组件不能做到清晰的接口,简洁的说明,各种毛病不断,何来“将各种部件精密组合在一起”的乐趣
- 大量的代码规范,“best practices”,内部的 conventions ,编码工作越来越像流水线,每个动作精确规定,有何乐趣?
- 快速反馈感: 分支管理, 繁杂的配置项,自动测试,部署,权限...中间已经设置了重重阻碍
至于持续学习,感觉各种技术都是茴字的 100 中写法
各位怎么看?
1
qsnow6 202 天前 6
过早优化是原罪,学会与遗留代码共舞。
从业 2 年以上就会明白,丑陋的代码才是常态,作者不仅是以前的维护者、同事,还有可能是自己。 |
3
aw2350 201 天前
完美主义害死人
|