跳转至

寻求帮助

遇到问题的时候应该怎么办

简单版:

  1. 尝试阅读并理解错误信息,不要因为全是英文就觉得一定看不懂
  2. 用错误信息上网搜索解决方法,并且进行尝试
  3. 查询错误所涉及的函数的相关文档,和样例代码进行比对
  4. 用调试器,单步查看每一步变量的变化
  5. 如果实在自己解决不了,在找别人求助之前,先用电脑截图关键部分和错误信息;如果代码多的话,把关键的代码放到 pastebin 服务上生成一个链接
  6. 如果可以的话,尽量缩减代码,得到一个 MWE(最小错误样例),这样可以方便他人复现问题
  7. 向别人阐述你的问题,谈你都做了哪些尝试,并且把代码和错误信息截图(或者链接)发给对方

完整版:见 《提问的智慧》,也可阅读一生一芯项目书写的《如何科学地提问》

寻求帮助的途径

如果在学习过程中遇到了困难,想要寻求帮助,你可以:

  1. 使用搜索引擎,查询相关文档
  2. GitLab 仓库 新建 Issue
  3. 在课程微信群中提问
  4. 通过邮件或者网络学堂的课程答疑功能向助教和老师提问
  5. 在答疑时间线下询问助教

提问模板

当你在通过各种渠道提问的时候,应当按照下面的格式来填写提问内容:

上下文:

我在完成 AAA 的时候,遇到了 BBB 问题。

问题描述:

我在执行 CCC 命令的时候,遇到的报错:

DDDDDD 的核心报错信息,不要贴完整日志

再贴一个完整日志的链接:pastebin.com/xxx

相关代码:

贴出报错附近的代码,或者提供一个可以复现问题的最小代码

复现流程:

1. 运行 EEEE
2. 编辑 FFFF
3. 出现报错

做过的尝试:

1. 修改 GGGG
2. 删除 HHHH

如果内容比较多,建议发 GitLab/GitHub Issue。

求助的礼仪

寻求帮助时,也要遵守一定的礼仪:

  1. 除非对方乐意,不要以“大佬求助”作为开头,这会让那些谦虚的人不愿意回复你,因为好像回复你就等于承认了自己是大佬。
  2. 不建议在求助的时候就说谢谢,而是等到对方给予了你帮助以后再感谢对方。不然会显得自己的感谢很廉价,也有一些道德绑架的元素在里面:我都感谢你了,你咋还不帮我?
  3. 寻求帮助后,如果自己解决了问题,不要忘记反馈给对方。因为对方其实也会关注你后续是否真的解决了问题:是采用了对方提供的解决方案,或者是采用了新的解决方案。用已有的解决方案解决了问题,或者用新的解决方案解决了问题,告诉对方,就是答谢对方给自己提供的帮助。
  4. 不要忘记邮件礼仪。

避免 X-Y 问题

提问时需要避免 X-Y 问题:即你实际遇到了 X 问题,你认为 X 问题要用 Y 方法解决,在实现 Y 方法时遇到困难,然后向他人提问如何实现 Y 方法。但很多时候 Y 方法并不是 X 问题的正确解法,此时可能会得到错误的答案。引用 X-Y Problem 的一个例子:

  • X 问题:想要截取文件名的后缀名
  • Y 方法:截取文件名的后三位字符
  • 此时的 Y 方法并不是解决 X 问题的正确方法,因为后缀名不一定是三个字符
  • 正确的 X 问题的解法是找到最后一个 .,然后提取它之后的字符
  • 如果提问的时候只提及了 Y 方法,而没有 X 问题,就会出现这样的问题

因此在提问时,为了避免 X-Y 问题,建议按照下面的模板来描述完整的问题:

  1. 我正在做 X 问题
  2. 我认为为了解决 X 问题,可以用 Y 方法
  3. 实现 Y 方法的时候,遇到了 Z 问题,尝试用 A 方法解决,但是没有效果

而不是:

  1. 我正在做 Y 方法,遇到了 Z 问题,求救 T_T

最后更新: 2023年11月20日
作者:Jiajie Chen

评论