写代码遇到问题,如何高效提出,让别人能够帮到你

机器翻译自:https://medium.com/@gordon_zhu/how-to-be-great-at-asking-questions-e37be04d0603

打印出来并立即阅读。然后把它贴在你的墙上。每次你有问题时,再读一遍,直到它成为本能。

现状

大多数人在提问时绝对是糟糕的,读者看的云里雾里,无法给出帮助,同样,提问者也无法获得有效的解决方案,但是你可以按照几个简单的步骤来改善提问质量。

无论您是团队成员,StackOverFlow还是Watch and Code的学生,提出良好的问题至关重要。提出好问题的人更有效率,因为他们可以更快,更经常地获得更好的答案。他们也受到更严肃的对待,并得到更多的尊重,如果你关心你的职业生涯,这很重要。

好问题可以节省时间。糟糕的问题非常浪费时间。不好的问题会产生不必要的来回对话,这会造成挫折和冲突。提出坏问题的人会因为无法获得帮助而感到沮丧,而那些试图帮助因为回答糟糕问题而感到沮丧的人是如此令人沮丧。

问题不好的人通常在职业生涯中并没有太多的问题。那是因为和他们一起工作真是令人沮丧。如果你是一名经理并且不得不解雇某人,你会立即想到那些提出坏问题的人。唯一可以挽救最不好的问题的是,他们身边的每个人都不好,所以相对而言,他们看起来没什么问题。

过程

1.尽可能了解代码。

是的,切实做这一步,不要省略。
逐行进行并找出每条线的功能。做笔记,想想可能会令人困惑的事情,深入进去。
Google搜索不熟悉的概念。你一定要避免问这种问题,这种你可以通过快速的Google搜索自行找出答案的问题。
使用调试器来帮助你。如果您不知道如何使用调试器或不知道它是什么,请观看下面的视频。

2.清楚地描述问题。

解释上下文。例如,如果您是Watch and Code的学生,请提供相关课程的网址并说明您要做什么。如果您有关于视频的问题,请提供时间戳,以便有人试图帮助可以参考您卡住的确切位置。
解释您为解决问题所采取的确切步骤。例如,您是否按特定顺序点击三个按钮? Chrome在Chrome中运行良好,但在Safari中无法运行?解释每一个小小的步骤。
解释你期望看到的。
解释你实际看到的。例如,如果有错误消息,请分享整个错误和导致它的代码行。如果有一个奇怪的用户界面问题,请截图。

3.提供说明问题的代码。

如果您正在制作一个大型项目,只需隔离已损坏的部分并共享即可。
当你分享代码时,确保代码在人们看到代码时不会改变。这意味着你应该为你的问题创建一个单独的代码副本。如果在某个人看着它的时候改变了代码,你的问题不仅仅是一个坏问题,而是不准确的,这比坏的更糟。那是因为一切都可能发生了变化,但回答的人无法知道这件事。不要惩罚那些想帮助你的人。

4.确保你分享的代码能够重现问题。

记下你分享的代码,并确保它的行为与你所描述的完全相同。如果您共享不能复制问题的破解代码,则无法为您提供帮助。

5.除非不可能(可能不是),否则您必须提供实时演示演示。

例如,如果您有前端问题,请使用Plunker等工具创建实时演示并共享链接。
如果现场演示是不可能的,请解释原因。然后,将您的代码上传到代码共享网站(如Github),并提供有关如何让代码运行的详细指导。

6.一致地格式化您的代码。

不管你使用什么风格,只要确保你是一致的。这使您的代码更易于阅读。它也将帮助你进行下一步。

7.检查自己是否有错别字。

没人想找你的错别字。如果你找不到自己的拼写错误,你需要学习如何(只要继续阅读)。
例如,如果您在教程中停留在课程中,请返回代码工作的位置,并从中重做教程,确保您的代码在每一步都能继续工作。如果您的代码无法正常工作,请重做课程并仔细检查拼写错误。
如果您参加了特定课程并提供了代码,请检查提供的代码并查看它是否有效。如果提供的代码有效,但您的代码没有,那么您就有一个错字。现在你确定你有一个错字,找到它是你的工作。有条理地回去,找出你搞砸的地方。不要浪费别人的时间,并要求他们做一些你应该做的事情。

8.解释你做了什么来解决问题。

拿出一份关于问题可能出现的假设清单,然后有条不紊地进行测试。对于每个假设,解释你做了什么来测试每个假设。
在这个过程中,你可以自己找出问题所在。这很常见。

9.解释你认为问题可能是什么。

根据您在上一步中的测试,对您认为问题的可能性提供最佳猜测。

10.校对你的问题。

通读你的问题,并确保你提供了一些人需要回答的问题。
编辑清晰。如果您认为可能会造成混淆,请修复它。如果有错别字,请修复它。如果您的问题中存在拼写错误,人们会认为您的代码中存在拼写错误。就像我之前说过的,其他人不是你的个人打字员。

11.发送更新并记住这不会是你最后的问题。

如果你在任何人做出回应之前就已经找出了答案,那就告诉别人,这样他们就不会浪费时间寻找你已经找到的答案。
当你得到答案时,花点时间仔细消化,并充分理解这个人在说些什么。请记住,他们可能并不正确。所以你需要验证他们的解决方案是否有效。
感谢帮助你的每个人,并记住他们不必回答你的问题,但出于某种原因他们想要。

溪盟宫注:

本文的作者是一名主要做JavaScript的程序员,但他提出的提问题的方法,我认为对任何语言都有借鉴作用,故而在此分享出来。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据