附录 C 寻求帮助

每个人学习编程时都会遇到困难,因此作为程序员,需要学习的
最重要的技能之一是如何高效地摆脱困境。这个附录简要地介绍
几种方法,以帮助你摆脱编程困境。
C.1 第一步
陷入困境后,首先需要判断形势。你必须能够明确地回答如下三个问
题,才能够从他人那里获得帮助。
你想要做什么?
你已尝试哪些方式?
结果如何?
答案应尽可能具体。对于第一个问题,像“我要在我的Windows 10计
算机上安装最新版本的Python 3”这样明确的陈述足够详细,让
Python社区的其他人员能够施以援手;而像“我要安装Python”这样
的陈述没有提供足够的信息,别人无法提供太多的帮助。
对于第二个问题,你的答案应提供足够多的细节,这样别人就不会建
议你去重复已经尝试过的方式:相比于“我访问Python网站,并下载
了一个安装程序”,“我访问http://python.org/downloads/,并单
击Python 3的Download按钮,再运行这个安装程序”提供的信息更详
细。
对于最后一个问题,知道准确的错误消息对在线搜索解决方案或寻求
帮助很有用。
有时候,通过回答这三个问题,你会发现遗漏了什么,从而无需再做
其他的事情就能摆脱困境。程序员甚至给这种情形提供了一个名称,
称之为橡皮鸭子调试法。如果你向一只橡皮鸭子(或任何无生命的东
西)清楚地阐述自己的处境,并向它提出具体的问题,你常常能够回
答这个问题。有些编程公司甚至在办公室放置一个橡皮鸭子,旨在鼓
励程序员“与这只鸭子交流”。
C.1.1 再试试
只需回过头去重新来一次,就足以解决很多问题。假设你正模仿本书
的示例编写一个for循环,你可能遗漏了某种简单的东西,如for语
句末尾的冒号。再试一次可能就会帮助你避免重复同样的错误。
C.1.2 歇一会儿
如果你很长时间内一直在试图解决同一个问题,那么休息一会儿实际
上是你可采取的最佳战术。长时间从事一个任务时,你可能变得一根
筋,脑子里想的都是一个解决方案。你对所做的假设往往会视而不
见,而休息一会儿有助于你从不同的角度看问题。不用休息很长时
间,只需让你能够摆脱当前的思维方式就行。如果你坐了很长时间,
起来做做运动。溜达溜达或去外面待一会儿,也可以喝杯水,或者吃
点清淡而健康的零食。
如果你心情沮丧,也许该将工作放到一边,整天都不考虑了。晚上睡
个好觉后,你常常会发现问题并不是那么难解决。
C.1.3 参考本书的在线资源
本书通过http://www.ituring.com.cn/book/1861提供了配套的在线资
源,其中包含大量有用的信息,比如如何设置系统以及如何解决每章
可能遇到的难题。如果你还没有查看这些资源,现在就去查看吧,看
看它们能否提供帮助。
C.2 在线搜索
很可能有人以前遇到过你面临的问题,并在网上发表了相关的文章。
良好的搜索技能和具体的关键字有助于你找到现有的资源,供你用来
解决当前面临的问题。例如,如果你无法在使用Windows 10的计算机
上安装Python 3,那么搜索“python 3 windows 10”可能会让你马上
找到解决问题的方案。
搜索计算机显示的错误消息也极有帮助。例如,假设你试图启动
Python终端会话时出现了如下错误消息:
> python
'python' is not recognized as an internal or external command
>
通过搜索完整的错误消息“python is not recognized as an
internal or external command ”,也许能得到不错的建议。
当你搜索与编程相关的主题时,有几个网站会反复出现。下面简要地
介绍一下这些网站,让你知道它们可能提供什么样的帮助。
C.2.1 Stack Overflow
Stack Overflow(http://stackoverflow.com/)是最受程序员欢迎的
问答网站之一,当你执行与Python相关的搜索时,它常常会出现在第
一个结果页中。其成员在陷入困境时提出问题,其他成员努力提供有
帮助的答案。用户可推荐他认为最有帮助的答案,因此前几个答案通
常就是最佳答案。
对于很多基本的Python问题,Stack Overflow都有非常明确的答案,
因为这个社区在不断改进。它鼓励用户发布更新的帖子,因此这里的
答案通常与时俱进。编写本书时,Stack Overflow回答的与Python相
关的问题超过了400 000个。
C.2.2 Python官方文档
对初学者来说,Python官方文档(http://docs.python.org/)显得有
点漫不经心,因为其主要目的是阐述这门语言,而不是进行解释。官
方文档中的示例应该很有用,但你也许不能完全弄懂。虽然如此,这
还是一个不错的资源,如果它出现在搜索结果中,就值得你去参考;
另外,随着你对Python的认识越来越深入,这个资源的用处将越来越
大。
C.2.3 官方库文档
如果你使用了库,如Pygame、matplotlib、Django等,搜索结果中通
常会包含到其官方文档的链接,例如,
http://docs.djangoproject.com/就很有用。如果你要使用这些库,
最好熟悉其官方文档。
C.2.4 r/learnpython
Reddit包含很多子论坛,这些子论坛被称为subreddit,其中的
r/learnpython(http://reddit.com/r/learnpython/)非常活跃,提
供的信息也很有帮助。你可以在这里阅读其他人提出的问题,也可提
出自己的问题。
C.2.5 博客
很多程序员都有博客,旨在与人分享针对其使用的语言部分撰写的帖
子。接受博客文章提供的建议前,你应大致浏览一下前几个评论,看
看其他人的反应。如果文章没有任何评论,请对其持保留态度——它
提供的建议可能还没有人验证过。
C.3 IRC
程序员通过IRC(Internet Relay Chat)实时地交流。如果你被问题
困住,那么在网上搜索也找不到答案,那么在相关的IRC频道
(channel)中寻求帮助可能是最佳选择。出没在这些频道中的人大多
彬彬有礼、乐于助人,在你能够详细地描述你想做什么、尝试了哪些
方法以及这些方法的结果时尤其如此。
C.3.1 创建IRC账户
要建立IRC账户,请访问http://webchat.freenode.net/,选择一个昵
称,输入验证码,再单击Connect。你将看到一条消息,欢迎你访问
freenode IRC服务器。在窗口底部的方框中,输入如下命令:
/msg nickserv register password email
请将其中的password和email替换为你的密码和电子邮件地址。请
选择一个不用于其他账户的简单密码,这个密码不会以安全的方式传
输,因此根本不要试图去创建安全的密码。你将收到一封邮件,其中
包含有关如何验证账户的说明。这封邮件将向你提供一个类似于下面
的命令:
/msg nickserv verify register nickname verification_code
将这一行粘贴到IRC网站,将其中的nickname替换为你在前面选择的
昵称,并将verification_code替换为你看到的验证码。现在,你
就可以加入频道了。
C.3.2 加入频道
要加入Python主频道,可在输入框中输入/join #python,你将看到一
条确认消息,指出你加入了该频道,还将看到有关该频道的简介。
频道##learnpython(两个井号)也非常活跃。这个频道与
http://reddit.com/r/learnpython/相关联,因此你在其中也将看到
有关r/learnpython上发表的帖子的消息。频道#pyladies专注于支持
学习Python的女性和女性程序员拥趸。如果你正在开发Web应用程序,
可能想加入频道#django。
加入频道后,就可看到其他人的交流,还可提出问题。
C.3.3 IRC文化
要获得有效的帮助,你需要知道一些有关IRC文化的细节。将重点放在
这个附录开头所说的三个问题,无疑有助于获得可行的解决方案。如
果你能准确地阐述你要做什么、尝试了哪些方法以及得到的结果,别
人就会乐意伸出援手。为分享代码或输出,IRC成员使用专门为此创建
的外部网站,如https://bpaste.net/+python/(#python通过它来分
享代码和输出)。这避免了频道充斥着代码,还让分享的代码阅读起
来容易得多。
一定要有耐心,这样别人才会更乐意帮助你。准确地提出问题,并等
待别人来回答。虽然大家都在忙于交流,但通常总会有人及时地回答
你的问题。如果频道的参与者较少,可能需要等一段时间才会有人回
答你的问题。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

___Y1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值