一本20多年前的老书。但很多内容到今天也并不过时。书里首先强调了程序员的工作不仅仅是编程,更重要的是需要具备调试、性能优化、团队协作、时间管理、技术判断等多方面的技能。作者分为初级、中级和高级三个阶段,详细阐述了程序员应该如何学习和应用这些技能。
在初级阶段,程序员需要学会调试、理解性能问题、管理内存、处理间歇性错误,并且学习设计技能。在团队合作方面,程序员需要学会如何估计开发时间、寻找信息、利用人力资源、撰写文档、处理糟糕的代码、使用源代码控制、进行单元测试和压力测试,以及识别何时应该休息或离开工作。
在中级阶段,程序员需要保持动力、权衡时间与空间、平衡简洁与抽象、学习新技能,并且能够进行集成测试。在团队合作方面,需要学会管理开发时间、处理第三方软件风险、管理顾问、有效沟通以及诚实地表达不同意见。
在高级阶段,程序员需要具备技术判断,区分困难与不可能,合理利用嵌入式语言,明智地妥协。此外,还需要学会如何抵抗时间压力、理解用户需求、获得晋升,以及如何为团队的发展和成员的个人成长做出贡献。