21.“20分钟前它还可以工作的……”
  在构建程序时,可能令人沮丧的部分是,它从能工作到不能工作——而你没有更新代码的任何部分!我发誓这是真的。而且这是没有任何意义的事情——也许是其他程序正在运行缓存版本?有很多次你更新了一丁点代码,却导致了整个程序崩溃出错,完全停止了工作。恢复到近可工作的复制文件,然后从那里开始一步步前进。
  22.“只是忘记了一个分号,然而整个程序却因此而轰然倒下。”
  几乎所有我使用的编程语言都需要结束符。虽然不是所有的语言都有,但在C/C ++中是很常见的。忘记添加结束符,不过是一个很显然的错误!但是解析器不知道这一点,它会抛出一个致命错误。于是,你不得不额外花20分钟去搜索技术故障,而原本只需要用1秒钟补上那个缺少的分号即可。嗯,这是调试软件的乐趣。
  23.“我不知道让别人来修复我的代码,得花多少钱?”
  聘请另一个开发人员的点子是挺诱人的,但从财政上看显然没有那么可行。而且如果你不亲身体验的话,又怎么能从这些错误中学到东西呢?当你在经历多次失败之后,终于理解了某个编程概念的时候,那感觉真是棒极了。尽管如此,我的脑海里依然时不时地有一种“让别人来修复代码”的冲头。
  24.“快速浏览Hackers News可以提高我的工作效率。”
  很多程序员喜欢阅读的,有关于软件和创业公司等社会新闻的选择是Hackers News头版。它有很多关于自由职业、时间管理、软件开发、以及创业发布和融资的大量信息。虽然HN可以通过自我教育让你感觉自己变得更有效率了,但同时它也会浪费你的时间。每隔几小时去快速浏览下Hackers News也不是那么糟糕。
  25.“这个API怎么没有文档?!”
  在使用带有坏文档的插件或框架时,令人沮丧的是,你必须靠自己去深入钻研源代码。我喜欢开发人员花时间去专门设计可用文档页面的项目。所有的参数和选项都解释得清清楚楚,甚至可能会被用在一些示例代码片段中。但可悲的是,事实并非总是如此。所以简单的方法是远离不良文档,不自找麻烦。
  26.“我真希望我保存了那个数据库的备份副本……”
  在编写和调试代码时,我不会想到要备份。然而,数据备份提供了允许我们回过头去修改的踏脚石。这在实时的服务器环境中尤为有用,因为有什么变化会立即执行。以防万一,我们应该记得保存网站文件和数据库的本地副本!虽然这会是一个恼人的任务,但其恼人程度远远比不上重建损坏的SQL数据库。
  27.“让它正常工作的快解决办法是什么?”
  在花费数个小时苦苦思考自定义的解决方案之后,很明显你需要一种新的方法。在设计漂亮的界面之前,程序员率先想到的是让功能正常工作。确定快、准确的解决方案,并实施这个解决方案让其工作才是利用了时间。然后,再转移到漂亮美观方面。
  28.“我敢打赌更新我的软件将解决这个问题。”
  管理编程语言依赖和插件的团队并不需要经常发布版本。有时,在你从计算机传输文件到实时服务器的时候,更新PHP /Ruby/ Python / SQL版本可以解决调试问题。本地更新很少能够帮助修复源代码中的bug,除非你的版本已经过时得无可救药。所以,值得一试!
  29.“我应该更有条理并且去学习Git……下周去研究它。”
  开源版本控制包Git在程序员中非常受欢迎。相对于其他的竞争对手,它提供了更容易的学习曲线,并且被许多在线代码仓库,如Github上和Bitbucket使用。开发人员很容易拖延去学习Git的行动,因为它对于初学者而言显然是有难度的。但是一旦你知道了基本命令,那么Git是小菜一碟。而且它还能使调试版本控制更加清晰。
  30.“算了,我还是从头再开始吧。”
  有时候,在你绞尽脑汁花费数个小时之后,可能要做的只是将你的工作文件移动到归档目录(或删除它们),再从头开始可以了。但是,考虑到先前已经耗费的时间,你很难下定这个决心。但是,当我一筹莫展时,我往往会选择从头开始,因为这样才有可能找到完成项目的正确道路。