【51CTO精选译文】无论你做什么事,你都会遇到需要提问的时候。对于技术人员来说尤其如此。网络上曾流传一文《提问的智慧》(如果你还没看过,请自行搜索),虽然讲的是黑客社区中的事情,但其智慧性令其成为了很多技术与非技术论坛的法典。
下面这篇文章和那篇经典的《提问的智慧》一样,内容都是开发人员在社区中所能够看见的真实的问题(唯一的不同可能是没有那篇长吧)。总之,如果你是一个程序员,遇到问题要在社区里发问,那么请一定不要忽略这位作者提出的建议——它们会帮你更好的得到你想要的答案。
我在stackoverflow.com(51CTO编者注:stackoverflow是英文界一个相当不错的开发问答站,在这里推荐一下)上花费很多时间来回答各种各样的问题,有些问题问得好,但有些问题简直无法回答,优秀的开发人员应该知道如何提问才能最快获得***的答案。
首先,我想说的是,如果你认为你还是一名程序员,如果你每天都没有一点问题要问,那你一定正在错误中前行。问问题不要害羞,这没什么丢人的,大师也会有不懂的地方。
由于我在各种各样的问答网站上混了很长时间,看到过无数怪异的提问方法,根据我遇到的问题,提炼出几点建议:
不要害怕过度描述你的问题
有些人似乎害怕在问题中泄露什么天机,不愿意帖出代码片段,可能无关的详细信息等,其实很多时候这些信息可能是解决问题至关重要的东西,当然也有一个限度,我不鼓励你将整个类库都贴出来,除非确有必要。
包括错误消息
如果我看到类似“它不工作了”,“它失效了”等问题,我一般会直接跳过。你不说清楚一点,叫人家怎么回答你呢?难道要让人家来猜测你想问的是什么?你可能觉得有些信息没必要帖出来,对于你而言,你可能是这么认为的,但对于想帮助你的人,他们肯定不太清楚这些,因此你一定要清楚到底发生了什么,即使是些微不足道的信息也要贴出来,当然包括错误信息。
简要列出你的环境信息
我的另一篇文章“我痛恨那些还不知道如何报告BUG的人”也提到了这个问题,环境变量常常被忽略,多花几秒钟列出象软件的详细信息,版本号等对回答问题是很有帮助的。
你自己的推测
如果在你的问题中将你对问题的看法,以及自己所想到一些思路等帖出来,或许其它人看了就会受到启发,或者发现你的错误之处,这样即使没人能准确回答你的问题,至少也可以获得不少建议。
例子
虽然不是所有问题都可以举一个例子,但如果有一个例子进行表达,那效果会相当好。如你的代码片段,如果可以截图也可以张贴关键的图片,对于CSS这样的问题,可能只有将你的代码贴出来人家才有法回答。
提问前先自己尝试找解决办法
Stackoverflow上每天都有无数的问题通过Google简单搜索一下就可以得到答案,但有些人偏偏要提出来,在张贴问题之前自我探索和研究应该是必需的,不要做一个懒人,那样你会一直提不高;反之,即使你通过自我探索和研究最终也没有找到解决办法,但你会发现你又多学到了好多东西。
不要得罪回答你问题的人
大多数时候回答问题的人都是利用业务时间在帮助人,如果有人对你的提问做了响应,但没有正面回答你的问题,而是进一步询问你一些相关的内容,此时你应该耐心回答他们的询问,可能还有一些人会直言不讳地说你“这个都不懂”或“这个太简单了,搜索一下便知”,你也不要以为自己就很笨了,更不要回复一些不敬的话语。
这几点还是很好做到吧!没有人知道所有问题的答案,因此不要害羞提问,在遇到你能解决的问题时,也不要吝啬你的回答。
提问的智慧,也是程序员的必修课。
原文:How Do GOOD Developers Ask Questions?
作者:Mike Bernat
【编辑推荐】