如何提出有效的问题

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

研究优先

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

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

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

  • 搜索引擎 - 只需搜索您的问题。你会惊讶地发现,这样做往往能解决问题。尝试用多种不同的方式来表达问题,以找到可能已经有人问过的类似问题。重点包含与您的问题有关的关键词,如果问题与编程有关,则包含相关的错误信息和代码。

小技巧

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

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

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

  • 过去的例子 - 无论你想解决什么问题,都要尝试找到过去的实现方法。这一步可能需要花费更多时间,因为它需要找到示例,然后解读别人是如何找出解决方案的,但这个过程可能非常有价值。对于编程来说,从别人的资料库中挖掘出的东西会让你受益匪浅。同样,对于机械设计来说,看看团队的技术资料夹或 CAD 版本也是很有帮助的。

小技巧

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

问题要具体

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

  1. 分解问题。

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

  2. 提供一些背景情况。

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

  3. 分享你的进展。

    解释您为解决问题已经采取的步骤。这可能包括具体的故障排除方法,或举例说明您为尝试解决问题而做出的改变。这有助于他人更好地了解问题,避免提出您已经尝试过的解决方案。

  4. 不要只用语言。

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

了解解决方案

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

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

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

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

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

小技巧

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

重要

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