附录 C:获取帮助
在学习编程的过程中,每个人都会有卡壳的时候。因此,作为程序员要学习的最重要的技能之一就是如何有效地摆脱困境。本附录概述了几种方法,帮助你在编程遇到困惑时重新开始。
第一步
当你遇到困难时,第一步应该是评估自己的处境。在向他人寻求帮助之前,请明确回答以下三个问题:
-
你想做什么?
-
迄今为止你尝试过哪些方法?
-
你得到了什么结果?
让您的答案尽可能具体。对于第一个问题,像 "我正试着在我的新 Windows 笔记本电脑上安装最新版本的 Python "这样的明确陈述已经足够详细,Python 社区的其他人可以帮助您。而像 "我正在尝试安装 Python "这样的陈述则没有提供足够的信息,其他人无法提供太多帮助。
你对第二个问题的回答应该提供足够的细节,这样你就不会被建议重复你已经尝试过的东西: "我访问了 https://python.org/download s 并点击了我的系统的下载按钮。然后我运行了安装程序 "比 "我去 Python 网站下载了一些东西 "更有用。
对于第三个问题,了解您收到的确切错误信息很有帮助,这样您就可以利用它们在网上搜索解决方案,或在寻求帮助时提供它们。
有时,在向他人求助之前,只要回答了这三个问题,就能让你发现自己遗漏了什么,从而帮助你摆脱困境,无需再继续前进。程序员甚至为此起了个名字:橡皮鸭调试。其原理是,如果你向一只橡皮鸭(或任何无生命的物体)清楚地解释你的情况,并向它提出一个具体的问题,你往往就能回答自己的问题。有些编程团队甚至会在身边放一只真正的橡皮鸭,鼓励人们 "与鸭子对话"。
再试一次
只要回到起点再试一次,就足以解决很多问题。比方说,你试图根据本书中的例子编写一个 for 循环。你可能只是漏掉了一些简单的地方,比如 for 行末尾的冒号。再次回顾这些步骤可能会帮你避免重蹈覆辙。
休息一下
如果你已经为同一个问题工作了一段时间,休息一下是你可以尝试的最佳策略之一。当我们长时间处理同一个任务时,我们的大脑就会开始将注意力集中在一个解决方案上。我们会忽略自己所做的假设,而休息可以帮助我们以全新的视角看待问题。休息的时间不需要太长,只要能让你摆脱当前的思维模式即可。如果你已经坐了很久,那就做些体力活:散散步、到户外走一走、喝杯水或吃点小点心。
如果你感到沮丧,不妨把工作放一放。睡个好觉几乎总能让问题变得更容易解决。
请参阅本书的资源
本书的在线资源位于 https://ehmatthes.github.io/pcc_3e ,其中包括许多关于设置系统和学习各章的有用章节。如果你还没有这样做,请看一看这些资源,看看是否有对你的情况有帮助的内容。
网上搜寻
很有可能有人遇到过与你相同的问题,并在网上发表过相关文章。良好的搜索技巧和具体的查询将帮助您找到现有的资源来解决您所面临的问题。例如,如果您正在努力将最新版本的 Python 安装到新的 Windows 系统上,搜索 install python windows 并将结果限制在去年的资源可能会帮您找到明确的答案。
搜索确切的错误信息也非常有用。例如,当您在新的 Windows 系统上尝试从终端运行 Python 程序时,会出现以下错误:
> python hello_world.py
Python was not found; run without arguments to install from the Microsoft
Store...
搜索完整短语 "Python 未找到;不带参数运行,从 Microsoft Store 安装 "可能会得到一些好建议。
当你开始搜索与编程相关的主题时,一些网站会反复出现。我将简要介绍其中的一些网站,以便您了解它们可能提供的帮助。
Stack Overflow
Stack Overflow (https://stackoverflow.com) 是最受程序员欢迎的问答网站之一,经常出现在 Python 相关搜索结果的第一页。会员在遇到困难时会发布问题,其他会员会尽力给予帮助。用户可以对他们认为最有帮助的回答进行投票,因此最好的回答通常是您最先找到的。
许多基本的 Python 问题在 Stack Overflow 上都有非常明确的答案,因为社区已经对它们进行了长期的改进。我们也鼓励用户发布更新,因此回复往往保持相对最新。在撰写本文时,Stack Overflow 上已经回答了近 200 万个与 Python 相关的问题。
在 Stack Overflow 上发布问题之前,您需要注意一个问题。问题应是您所面临问题的最简短示例。如果您发布了 5-20 行产生您所面临的错误的代码,并且回答了本附录前面第 477 页 "第一步 "中提到的问题,那么很可能会有人帮助您。如果你分享的是一个包含多个大文件的项目链接,别人就很难帮上忙了。http s://stackoverflow.com/help/how-to-ask.com上有一份撰写好问题的指南。本指南中的建议适用于在任何程序员社区中获取帮助。
Python 官方文档
对于初学者来说,Python 官方文档 (https://docs.python.org) 比较难懂,因为它的目的更多是记录语言,而不是提供解释。官方文档中的示例应该能用,但您可能无法理解所有示例。不过,当您在搜索中出现该文档时,它仍然是一个很好的资源,而且随着您对 Python 理解的加深,它也会变得越来越有用。
官方库文档
如果您使用的是特定的库,如 Pygame、Matplotlib 或 Django,搜索结果中通常会出现该库的官方文档链接。例如,在使用 Django 时, https://docs.djangoproject.com 就非常有用。如果您打算使用这些库,最好先熟悉一下它们的官方文档。
r/learnpython
Reddit 由许多称为子论坛的子论坛组成。r/learnpython子论坛( https://reddit.com/r/learnpython )非常活跃,支持性很强。您可以阅读他人的问题,也可以发布自己的问题。你提出的问题通常会得到多方面的解答,这对于深入理解你正在研究的主题很有帮助。
Discord
Discord 是一个 Python 社区的在线聊天环境,您可以在这里寻求帮助并关注与 Python 相关的讨论。
要查看它,请访问 https://pythondiscord.com 并单击右上角的 Discord 链接。如果您已经有一个 Discord 帐户,可以使用现有帐户登录。如果您还没有账户,请输入用户名并按照提示完成 Discord 注册。
如果这是您第一次访问 Python Discord,您需要在完全参与之前接受社区规则。完成注册后,您可以加入任何您感兴趣的频道。如果您正在寻求帮助,请务必在 Python 帮助频道中发帖。
Slack
Slack 是另一种在线聊天环境。它通常用于公司内部交流,但您也可以加入许多公共群组。如果您想查看 Python Slack 群组,请从 https://pyslackers.com 开始。单击页面顶部的 Slack 链接,然后输入您的电子邮件地址以获得邀请。
进入 Python Developers 工作区后,您会看到一个频道列表。点击频道,然后选择你感兴趣的主题。您可能想从 #help 和 #django 频道开始。