如何提出有效的问题

有效提问是最重要的技能之一,尤其是在机器人学习以外的生活中。因此,你应该能够提出好问题,帮助那些想帮助你的人,并充分利用所学知识。

研究优先

在你提出问题之前,你应该自己研究,找到答案。这需要花费更多的时间和精力,但关键是要学会自己寻找解决方案,学会如何有效地进行研究,找到解决问题的办法。从长远来看,这种研究最终会给你带来回报,帮助你了解与你的问题相关的主题,并经常帮助你了解你所遇到的问题的根源。

以下是您可以采取的一些研究问题的步骤:

  • 检查官方文档 - 如果有文档或说明,请务必仔细检查其中的相关部分。您的问题可能已经得到解决,也可能是您误读了某些内容。

  • Google - Simply search your problem. You will be surprised by how often this solves the issue. Try to word the question in many different ways to find similar questions that may have already been asked. Focus on including keywords about your problem and if it is about programming, include relevant error messages and codes.

小技巧

在查找过去的文件或教科书章节时,请在搜索开头添加 “filetype:pdf”,以便将搜索结果过滤为仅 .pdf 文件。

  • 视频网站 - YouTube 或者 Bilibili 上有许多很好的资源,甚至可以帮助解决一些晦涩难懂的问题。

  • Reddit 和 Discord - FTC Subreddit 和 Discord 服务器 (有用的资源) 也是查找以前的答案或提出自己的问题的好地方。请尝试用合适的关键字搜索过去的问题。

  • Past Examples - Try to find past implementations of whatever problem you are trying to solve. This step may take more time, as it requires finding the example, and then deciphering how someone else figured out the solution, but this process can be super valuable. For programming, digging through another person’s repository can be very insightful. Likewise, for mechanical design, taking a look at a team’s technical binder or CAD release.

小技巧

对于编程问题,通过 GitHub 代码搜索 查找过去的实现有时会有所帮助。请注意,这目前需要一个 GitHub 账户。即使找不到解决方案,研究其他代码库也能让你学到很多以前可能没见过的一般策略和功能。

问题要具体

要让其他人能够为您的问题提供好的解决方案,他们需要了解具体情况。这意味着要做到以下几点:

  1. 分解问题。

    您应尽可能找出问题所在。例如,在遇到机器人崩溃时,应尽量收集机器人崩溃前后的数据。您自己可能不了解这些信息,但这些信息可能会让其他人解决您的问题。解释您提出问题的原因也很有用。您可能很容易被某个问题的具体解决方案所困扰,而这个问题最好用完全不同的方法来解决;这就是所谓的 XY 问题。

  2. 提供一些背景情况。

    提供背景信息通常很有帮助,例如,你刚掌握哪些技能,因此可能是问题的根源。此外,有关您的资源的信息可以帮助他人确定在您自身限制条件下可行且有效的解决方案。例如,您可能要在一周内参加比赛,并寻求快速解决方案;如果是这样,请确保在问题中提及这一点。

  3. 分享你的进展。

    Explain the steps you have already taken to address the problem. This may include specific troubleshooting methods, or examples of what you have been changing to try to solve the issue. This helps others to gain a better understanding of the problem and avoid suggesting solutions that you have already tried.

  4. 不要只用语言。

    您应尽量提供与问题相关的其他媒体。这可以是相关的代码段、CAD 文件、图片或视频。所有这些都能让他人更好地了解您的问题。

了解解决方案

提出问题的最后一步是了解解决方案。这是你自己的责任。无论老师有多好,如果你不提出明确的问题,就会限制自己的学习。要真正理解解题思路,你应该做到以下几点。

  • 了解问题解决的原因。 你的问题是如何解决的?为什么这种修复方法有效?

  • 找出问题发生的原因 问题的根本原因是什么?如何防止问题再次发生?

  • 询问别人解决问题的过程大纲。 别人是如何解决问题的?今后如何利用这一过程来解决自己的更多问题?

  • 找出你的知识空白 你缺少哪些信息导致了问题的出现?如何发展这方面的知识?

小技巧

如果其中一个问题的答案不明显,请询问帮助过您的人,让他们提供更多的见解。如果他们愿意帮你找出最初的问题,那么他们很可能也会帮助你了解解决方案。

重要

如果您自行解决了问题,但已经发布了问题,请在回复中说明您是如何解决问题的。这样的说明可以帮助其他人在更短的时间内解决问题。