职业的苦恼

原创 2007年09月22日 13:33:00
然而这个过程并不全都是快乐。我们只有事先了解一些编程固有的苦恼,这样,当它们真的出现时,才能更加坦然地面对。
首先,苦恼来自追求完美。因为计算机是以这样的方式来变戏法的:如果咒语中的一个字符、一个停顿,没有与正确 的形式一致,魔术就不会出现(现实中,很少的人类活动要求完美,所以人类对它本来就不习惯)。实际上,我认为,学习编程最困难的部分,是将做事的方式向追 求完美的方向调整[1]
其次,苦恼来自由他人来设定目标、供给资源和提供信息。编程人员很少能控制工作环境和工作目标。用管理的术语 来说,个人的权威和他所承担的责任是不相配的。不过,似乎在所有的领域中,对要完成的工作,很少能提供与责任相一致的正式权威。而现实情况中,实际(相对 于形式)的权威来自于每次任务的完成。
对于系统编程人员而言,对其他人的依赖是一件非常痛苦的事情。他依靠其他人的程序,而往往这些程序设计得并不 合理、实现拙劣、发布不完整(没有源代码或测试用例)、或者文档记录得很糟。所以,系统编程人员不得不花费时间去研究和修改,而它们在理想情况下本应该是 可靠完整的。
下一个苦恼—— 概念性设计是有趣的,但寻找琐碎的bug却只是一项重复性的活动。伴随着创造性活动的,往往是枯燥沉闷的时间和艰苦的劳动。程序编制工作也不例外。
另外,人们发现调试和查错往往是线性收敛的,或者更糟糕的是,具有二次方的复杂度。结果,测试一拖再拖,寻找最后一个错误比第一个错误将花费更多的时间。
最后一个苦恼,有时也是一种无奈—— 当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时。可能是同事和竞争对手已在追逐新的、更好的构思;也许替代方案不仅仅是在构思,而且已经在安排了。
现实情况比上面所说的通常要好一些。当产品开发完成时,更优秀的新产品通常还不能投入使用,而仅仅是为大家谈论而已。另外,它同样需要数月的开发时间。事实上,只有实际需要时,才会用到最新的设想,因为所实现的系统已经能满足要求,并体现了回报。
诚然,产品开发所基于的技术在不断地进步。一旦设计被冻结,在概念上就已经开始陈旧了。不过,实际产品需要一 步一步按阶段实现。实现落后与否的判断应根据其他已有的系统,而不是未实现的概念。因此,我们所面临的挑战和任务是在实际的进度和有效的资源范围内,寻找 解决实际问题的切实可行方案。
这,就是编程,一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。对于许多人而言,其中的快乐远远大于苦恼。本书的以下章节将试图搭建一些桥梁,为通过这样的焦油坑提供一些指导。
 

相关文章推荐

程序员职业的乐趣与苦恼(摘自人月神话)

职业的乐趣编程为什么有趣?作为回报,它的从业者期望得到什么样的快乐? 首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事>物,特别是自己进行设计。我想这种快乐是上帝创造世界...

微博文摘:从事ITIL的童鞋职业发展的苦恼,看看是否也代表你的心声?

从事ITIL的童鞋职业发展的苦恼,看看是否也代表你的心声? 迪迪迪大人didir: 又要开始做ITIL培训了,V3都快被我讲的发白了...Foundation认证越来越不值钱,那我还要不要继续...
  • HongNim
  • HongNim
  • 2012年05月16日 17:27
  • 804

对于泥球型状态机,估计你也苦恼!

对于电商类的系统、游戏和公司内部流程系统来说,最复杂的莫过于处理其中的状态扭转。如我公司的订单购买系统: 预约=>审核=>打款=>上传凭条=>凭条审核=>打款核验=>返佣对账=>返佣凭条审核=>返佣...
  • yzzst
  • yzzst
  • 2016年12月18日 18:45
  • 1035

初写简历的苦恼

谈到简历,我想大部分将要毕业的大学生对此都是头疼,不错,博主也是将要毕业,踏入找工作大流,前段时间写了一份简历,然后结果就是被小伙伴大肆嘲笑了一番简历如下:              小伙伴说博主这简...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:职业的苦恼
举报原因:
原因补充:

(最多只允许输入30个字)