正视问题

程序出现问题是正常的

当你开始学习编程的时候,你很快就会意识到,要写出一款好用的软件是非常困难的。当软件不能工作时,我们说它有一个bug (参见如何报告 Python 编辑器的bug)。

事实上,专业的软件开发人员和初学者一样会编写有bug的软件,唯一的区别在于它们所产品的bug的类型。

初学者程序员会犯初学者的错误,比如输入错误的指令,用错误的方式设置代码(导致语法错误),或者只是让计算机做一些不可能的事情。

专业的程序员知道那些有用的指令,知道如何正确地编写他们的代码,并欣赏计算机的能力。然而,他们经常有盲点,不考虑他们的代码的全部含义,并且会使他们编写软件的方式过于复杂(因此很难找出哪里出了问题)。

导致程序出错肯定是有原因的

计算机会非常认真地执行您的指令,而且很少会出现硬件错误。 如果您的程序无法按预期运行,那几乎可以肯定是你的错,因为计算机只能完全按照你的指令执行操作。

因此,最有可能导致该错误的原因是您在代码中做错了什么。

我们经常通过仔细的阅读代码,弄清楚写的内容不是我们真正要写的内容,然后通过更正来对其进行修复。

小黄鸭调试法

有一个常见的现象:你的朋友跑来问你一个问题,但是当他自己把问题说完,或者说到一半的时候就想出了答案走了,留下一脸茫然的你。

image.png

相传厉害的程序员经常随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码,通常说着说着自己就豁然开朗。

因此我们可以尝试向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。如果没有玩具小鸭子也可以考虑向其它东西倾诉,比如桌上的花花草草,键盘鼠标。


求助他人

当你发现了异常,检查了代码,来回倒腾了一个多小时,但该死的 BUG仍然无法解决,程序无法运行怎么办?

其实很简单,你只需要向其他人寻求帮助。

不要害怕提出问题-优秀的开发者总是会提出问题。 知道如何提出问题以及正确的问题是成为优秀的开发者必不可少的技能。 问问题并不表示您不知道自己在做什么,这表明您正在探索问题,并表明您对自己作品的浓烈感情。

因此,学习以正确的方式提出问题。

当我们程序出现问题的时候,不妨将错误信息在百度或者 Google 之类的搜索引擎上进行搜索,因为你所遇到的问题前人可能也遇到过相似的问题,遵循别人解决的思路和方案,我们自己的问题经常也能迎刃而解。

当问题实在无法解决时,不妨问问身边的同学或者老师。