在工作和生活中,总是会有很多人问题我很多技术方面的问题。有一些时候,问问题的和答问题的总是会有一些不爽的事情发生。如下面的几种情况:
所以,怎么去问问题,怎么问一个好的问题,是一个很重要的事。你提问的技术直接关系到了你是否能够很快得到你满意的答案。
这里有一篇文章推荐给大家《How To Ask Questions The Smart Way》,中文版在这里《提问的智慧》,我把其中的几个亮点总结如下:
提问前先自己尝试查找答案,读读文档、手册,看看有没有相似的问题,看看那些方法能不能帮你解决问题,自己去试一试。如果你是程序员,你应该先学会自己调查一下源代码。(不然,人家回答你的一定是——RTFM – Read The Fucking Manual)这样的问题很多。我有时候很不愿意回答这样的问题,因为我觉得问问题的人把我当成了他的小跟班了。
提问的时候,找正确的人或是正确的论坛发问。向陌生人或是不负责的人提问可能会是很危险的。不正确的人,会让你事倍功半。如果你问Linux的人Windows太慢怎么办?他们一定会让你把Windows删了装Linux去的。
问的问题一定要是很明确的,并且阐述你做了哪些尝试,你一定要简化你的问题,这样可以让你的问题更容易被回答。对于一些问题,最好提供最小化的重现问题的步骤。
你一定要让问题变得简单易读,这和写代码是一样的。只有简单易读的邮件,人们才会去读,试想看到一封巨大无比的邮件,读邮件的心情都没有了。而且,内容越多,可能越容易让人理解错了。
你问问题的态度应该是以一种讨论的态度,即不是低三下四,也不是没有底气。只有这样,你和你的问题才能真正被人看得起。要达到这个状态,不想让别人看不起你,你就一定需要自己去做好充足的调查。问题 问得好的话,其实会让人觉得你很有经验的,能想到别人想不到的地方。
不要过早下结论。比如:“我这边的程序不转了,我觉得是你那边的问题,你什么时候能fix?”,或是“太难调试了,gdb怎么这么烂?!”。当你这么做的时候,你一定要有足够的信息和证据,否则,你就显得很自大。好的问题应该是,“我和你的接口的程序有问题,我输入了这样的合法的参数,但是XX函数却总是返回失败,我们能一起看看吗?”,“我看了一下gdb的文档,发现我在用XXX命令调试YYY的时候,有这样ZZZ的问题,是不是我哪里做错了?”