软件编译过程中的每一个步骤都应该是有理有据、精确无误的。达到最终的编译成功不存在任何运气的成份,亦不应持有一丝侥幸心理。其间出现的每一个警告与错误都有其必然的、确凿的原因——或是对编程语言的语法细节掌握不牢固,或是粗心大意导致的低级错误,或是数学理论推导本身就存在瑕疵——而所有这些因素都是可以通过个人的努力与严谨加以克服的。因此,对于我们自己编写的软件,完全能够且必须做到零警告、零错误的编译。

关于 bug 的种种揣测不过是我们在证据与数据不充分、细节展现不够多情况下的一种主观臆测。所以,在初遇各种错误时,我们所感受到的“诡异”与“莫名其妙”也只是毫无根据的虚幻。大多数时候(超过90%)都能最终将这些“妄想”推翻。它们唯一的价值在于促使我们不断地编写测试与输出代码,以便从中获取更多相关与无关的信息,从不同的角度展现软件的特性与行为,直至我们坚持到关键(linchpin)信息的浮现。表面上看,debug 程序需要某种运气与灵光一现,但实质上它需要的是我们持续倾注心血与花足够功夫。