正如Brooks在职业的苦恼一节中所言,软件编程人员面临中职业的苦恼:
1.必须将做事的方式往追求完美的方向调整。计算机编程就像是在玩魔术,如果咒语中的字符没有与预期的完全一致,魔术所要达到的现象就不会出现。
2.工作目标大多情况是由他人设定,供给资源,提供信息。个人的权威与他所承担的责任是不相配的。就像我们编程时候遇到很多bug,常常我们认为不是bug,或者是work as design,或者我们从客户的角度分析风险太大,但是如果客户不care你的担心,那么你也只有按照客户的要求无可奈何继续昧着所要承担责任的埋下些许暗坑来fix这个bug。
3.对于系统编程人员而言,对其他人的依赖是一件非常痛苦的事情。他依靠其他人的程序,而往往这些程序设计得并不合理,实现拙劣,发布不完整(没有源代码或测试用例),或者文档记录得很糟。所以,系统编程人员不得不花费时间去研究和修改,而它们在理想情况下本应该是可靠完整的。
4.Fix bug 是一项繁琐且无益的重复性体力劳动。就好像一件衣服,在上面挖了很多洞,再修修补补,且不说难看得难以穿出去,就是穿出去也早已认不出原先的衣服了。
5.还有一种苦恼,有时也是一种无奈——当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时。
这,就是编程。一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。