提问的智慧

老邓 2013-01-02 05:43:28
加精
英文原文:http://www.catb.org/~esr/faqs/smart-questions.html
中文翻译:http://www.wapm.cn/smart-questions/smart-questions-zh.html

1.格式化你的源代码

方法:


效果:
#include <iostream>

int main()
{
std::cout << "Hello World" << std::endl
return 0;
}


2.粘贴编译错误信息

* 把编译错误信息粘贴到Google搜索引擎上搜索,看能否搜索到相应错误的答案。
* 把编译错误信息粘贴到这里,不但有助于你问题的解决,也方便了他人将来通过错误信息搜索到同一个问题的解决方案。

例如上面代码的错误信息:
D:\qpSOFT\Projects\untitled33\main.cpp:6: error: C2143: syntax error : missing ';' before 'return'

3.问题解决后请及时结帖

方法:

好的结帖率有助于你问题的解决:


[以下内容为部分摘录]

提问前

在通过电邮、新闻组或论坛提技术问题以前,做以下事情:

* 尝试在你准备提问论坛的历史文档中搜索答案

* 尝试搜索互联网以找到答案

* 尝试阅读手册以找到答案

* 尝试阅读“常见问题文档”(FAQ)以找到答案

* 尝试自己检查或试验以找到答案

* 尝试请教懂行的朋友以找到答案

* 如果你是程序员,尝试阅读源代码以找到答案

提问时,请先表明你已做了上述事情,这将有助于建立你不是寄生虫与浪费别人时间的印象。最好再表述你从中 学到的东西 ,我们喜欢回答那些表现出能从答案中学习的人。

运用某些策略,比如用谷歌(Google)搜索你遇到的各种错误提示(既搜索 谷歌论坛,也搜索网页), 这样很可能直接就找到了解决问题的文档或邮件列表线索。 即使没有结果,在邮件列表或新闻组寻求帮助时提一句“我在谷歌中搜过下列句子但没有找到什么有用的东西” 也是件好事,至少它表明了搜索引擎不能提供哪些帮助。将搜索关键词与你的问题及可能的解决方案联系起来,还有助于引导其他有类似问题的人。

别着急,不要指望几秒钟的谷歌搜索就能解决一个复杂的问题。读一下常见问题文档。在向专家提问之前,先向后靠靠放松一下,再思考一下问题。相信我们,他们能从你的提问看出你做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑抛出,只因你的第一次搜索没有结果(或者结果太多)。

认真地思考,准备好你的问题。轻率的提问只能得到轻率的回答,或者压根没有。在提问时,你越是表现出在此前做过思考与努力去解决自己的问题,你越有可能得到真正的帮助。

注意别提错问题。如果提问基于错误的假设,某黑客多半会一边想 “愚蠢的问题……”,一边按将错就错的答案回复你,并且希望这种只是得到你自己“问的问题”而非真正所需的解答,给你一个教训。

永远不要假设你 有资格 得到解答。你没有这种资格,毕竟你没有为此服务付费。如果你能够提出有内容、有趣和激励思考的问题──那种毫无疑问能够向社区贡献经验,而不仅仅是消极地要求从别人那获取知识的问题,你将“挣到”答案。

另一方面,表明你有能力也乐意参与问题的解决是个很好的开端。“有没有人能指个方向?”,我这还差点什么?”,“我应该查哪个网站?”,通常要比 “请给出我可以用的完整步骤”更容易得到回复,因为你表明了只要有人能指个方向,你就很乐意完成剩下的过程。

如果得不到回答

如果得不到回答,请不要认为我们不想帮你,有时只是因为被问到的小组成员的确不知道答案。没有回复不等于不被理睬,当然必须承认从外面很难看出两者的差别。

一般而言,直接将问题再张贴一次不好,这会被视为毫无意义的骚扰。耐心一点,知道你问题答案的人可能生活在不同的时区,有可能正在睡觉,也有可能你的问题一开始就没有组织好。

还有其它资源可以寻求帮助,通常是在一些面向新手的资源中。

有许多在线与本地的用户组织,虽然它们自己不编写任何软件,但是对软件很热心。这些用户组通常因互助和帮助新手而形成。

还有众多大小商业公司提供签约支持服务(红帽与 SpikeSource 是两家最出名的,还有许多其它的)。别因为要付点钱才有支持就感到沮丧!毕竟,如果你车子的汽缸垫烧了,你多半还得花钱找个修理店把它弄好。即使软件没花你一分钱,你总不能指望服务支持都是免费的。

象 Linux 这样流行的软件,每个开发者至少有一万个以上的用户,一个人不可能应付这么多用户的服务要求。记住,即使你必须付费才能得到支持,也比你还得额外花钱买软件要少得多(而且对封闭源代码软件的服务支持与开源软件相比通常还要贵一点,也要差一点)。

如何更好地回答

态度和善一点。问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。

对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找 FAQ 都不知道。

如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来象个专家好玩就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。

如果帮不了忙,别妨碍。 不要在具体步骤上开玩笑,那样也许会毁了用户的安装──有些可怜的呆瓜会把它当成真的指令。

探索性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西──你也可以。试试将很差的问题转变成好问题,别忘了我们都曾是新手。

尽管对那些懒虫报怨一声“读读该死的手册”(RTFM)是正当的,指出文档的位置(即使只是建议做个谷歌关键词搜索)会更好

如果你决意回答,给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计,应推荐更好的工具,重新组织问题。

帮助你的社区从中学习。当回复一个好问题时,问问自己 “如何修改相关文件或 FAQ 文档以免再次解答同样的问题?”,接着再向文档维护者发一份补丁。

如果你是在研究一番后才做出的回答,展现你的技巧而不是直接端出结果。毕竟“授人以鱼,不如授人以渔”。








...全文
7963 133 打赏 收藏 转发到动态 举报
写回复
用AI写文章
133 条回复
切换为时间正序
请发表友善的回复…
发表回复
Destiny201314 2014-05-10
  • 打赏
  • 举报
回复
前来膜拜经典~
u010616063 2013-12-23
  • 打赏
  • 举报
回复
学习了~
sysucx 2013-12-06
  • 打赏
  • 举报
回复
soga感谢
晓平同学 2013-11-30
  • 打赏
  • 举报
回复
有效率的学习和提问必定会事半功倍
soarfish 2013-11-27
  • 打赏
  • 举报
回复
按照这种过程,自己能够解决一部分问题的。这也是一种解决问题的方法。
Adol1111 2013-11-23
  • 打赏
  • 举报
回复
还是好多人不知道,应该发到大板块的置顶贴上面,而不是小版块上。
diao_y 2013-11-16
  • 打赏
  • 举报
回复
好帖,赞一个
Uron 2013-11-14
  • 打赏
  • 举报
回复
顶起。是这么回事。
Bahdisd 2013-11-12
  • 打赏
  • 举报
回复
会提问确实是一门智慧。。。
cjfdqchwhj 2013-10-28
  • 打赏
  • 举报
回复
LZ 所言,我表示赞同。
遇到些不懂的问题,我首先会根据自己手头上的资料或在google上做一个查阅,然后做一个初步分析判断,力求在这一步将问题解决。

如果这一步解决不了问题,或者意犹未尽,会到论坛上,比如CSDN上发表提问帖子,正如楼主所言,组织问题要有讲究,毕竟是请大家帮我解答,这是起码的尊重。

我非常感激为我解答疑惑的前辈和网友,通过结贴给分表示感谢。
七月的狮子 2013-10-24
  • 打赏
  • 举报
回复
解语者 2013-10-01
  • 打赏
  • 举报
回复
赞同
白玉盘 2013-09-27
  • 打赏
  • 举报
回复
好吧,前两次回答问题都不知道这些,受教了
凌乱的我 2013-09-21
  • 打赏
  • 举报
回复
顶一个
kelvin_wangning 2013-09-12
  • 打赏
  • 举报
回复
支持...认真虚心学习~
神无 2013-09-11
  • 打赏
  • 举报
回复
真心看不懂~~
_暮落_ 2013-08-22
  • 打赏
  • 举报
回复
顶一个!喜欢csdn
qtcreatorlinux 2013-08-20
  • 打赏
  • 举报
回复
team79 2013-08-17
  • 打赏
  • 举报
回复
怒顶
u010258183 2013-08-08
  • 打赏
  • 举报
回复
支持,
加载更多回复(113)

15,439

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧