如何更好地提问

一个编程学习者,尤其是刚入门的初学者,在学习过程中必然会遇到各种问题,于是难免需要向人提问寻求解答。本编程教室开张以来,我也解答了非常多的提问。今天想就“提问”这件事情说说我的一点建议:

1.提问之前先尝试搜索

你的问题可能是千万人曾经遇到过的小问题,搜索引擎就可以回答你。谷歌是个好网站,实在不行百度一下你也可能知道。

2.尽可能清楚、准确、完整地描述你的问题

不要只把你不懂的地方拿出来问而不提及问题的前因后果,否则回答者可能无法明白你的问题。尽量客观描述问题,而不是只说自己的理解和假设。在客观描述的基础上,你可以再加上自己的判断和尝试解决的结果。

3.附上必要的信息

如果你的代码出了问题,请提供你的代码、运行结果、报错信息,如果有必要,最好截图(判断是否格式、书写、运行方式上有问题)和代码文本(方便别人复制并运行你的代码)都附上。不要只说“我执行了xxx语句为什么结果不对”,这样别人只能回复你“……”。

4.最好选择QQ群和论坛提问

这一点是我个人针对本教室的听众的建议。QQ群的好处是,有很多人会看到你的问题,这里面很可能有人解决过类似的问题。即使没有现成的答案,一起讨论也有利于找到解决方案。

论坛的好处是,你的问题会记录下来,可以被更多人看到,它被解答的可能性也就更高。同时,它也会为后来的人提供参考。论坛发帖的不足之处在于可能不会立刻得到解答。

当然你也可以直接问我,但有时可能我不在,或者没看到,有些问题我也未必知道答案。而且单独提问,大家互相之间看不到,很可能是在重复问同样的问题。另外还有一点就是,微信的后台回复是有时间限制的,如果48小时内没有回复,就无法再回了。

综上所述,我认为一个比较好的提问方式是:在你尝试自己搜索后依然不能解决问题时,在QQ群里或者论坛上描述清楚你的问题,包括你要做什么,遇到了什么状况,你的代码、输出、报错信息,足够信息量的截图和代码片段,你尝试过的方案和结果。这样,会让你的问题更有效地得到解决。

附上一篇文章:《提问的智慧(How To Ask Questions The Smart Way)》,由知名黑客 Eric S. Raymond 所写,并被广泛转载。你很容易在网上搜到它。

这篇文章主要是面向“黑客”所说。对于一般的编程初学者,有些要求可能略苛刻。不过参考阅读,对于你应当会有帮助。

在这里,摘录其中的一些条目:

提问前

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

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

尝试阅读手册以找到答案

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

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

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

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

提问时

仔细挑选论坛

面向新手的论坛和互联网中继聊天(IRC)通常响应最快

第二步,使用项目的邮件列表

使用有意义且明确的主题

使问题容易回复

用清晰、语法、拼写正确的语句书写

使用易于读取且标准的文件格式发送问题

描述问题应准确且有内容

量不在多,精炼则灵

别急于宣称找到bug

低声下气代替不了做自己的家庭作业

描述问题症状而不是猜测

按时间先后罗列问题症状

描述目标而不是过程

别要求私下回复电邮

提问应明确

关于代码的问题

别张贴家庭作业式问题

删除无意义的要求

不要把问题标记为“紧急”, 即使对你而言的确如此

礼貌总是有益的

问题解决后追加一条简要说明

提问禁忌

我到哪可以找到某程序或 X 资源?

我怎样用 X 做 Y?

如何配置我的 shell 提示?

我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文档转为 TeX 格式吗?

我的{程序、配置、SQL 语句}不运行了

我的视窗电脑出问题了,你能帮忙吗?

我的程序不运行了,我认为系统工具X有问题

我安装 Linux 或 X 遇到困难,你能帮忙吗?

我如何才能破解超级用户口令/盗取通道操作员的特权/查看某人的电子邮件?

详细内容可以点击最下方的“阅读原文”可以查看,文章有些长,不过还是挺有意思的。

http://www.beiww.com/doc/oss/smart-questions.html

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2015-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术翻译

Kubernetes,Kafka事件采购架构模式和用例示例

随着当今业务和技术的快速变化,开发人员,数据科学家和IT运营部门正在共同构建具有新技术和动态架构的智能应用程序,因为它们具有灵活性,交付速度和可维护性。这篇文章...

23020
来自专栏小怪聊职场

架构|当你在浏览器访问www.taobao.com之后...

39550
来自专栏美团技术团队

【技术博客】使用模板快速编写测试用例

在高速发展的互联网公司,由于产品的开发迭代太快,产品测试经常遇到以下几个问题: 如何在快速的产品开发迭代中迅速地完成对产品功能的测试? 面对用户众多、环境多样,...

66290
来自专栏ThoughtWorks

系统级集成测试的断舍离|洞见

食之无味,弃之可惜 在企业级应用的“季度或月度发布”被认为是领域最佳实践的时候,在应用部署到生产环境之前维护一个完整的环境来进行集成测试是非常必要的。但是,集成...

31090
来自专栏Java架构师历程

微服务在微信的架构实践

微服务的理念与腾讯一直倡导的“大系统小做”有很多相通之处,本文将分享微信后台架构的服务发现、通信机制、集群管理等基础能力与其上层服务划分原则、代码管理规则等。

1.1K30
来自专栏Java学习网

程序员既要写好代码,又要写好文档

程序员既要写好代码,又要写好文档 作为一个长期混迹于CSDN社区的人,我对很多拥有高访问量的博主钦佩不已,特别是在参加了CSDN在举办“2014 CSDN博文大...

47770
来自专栏罗超频道

Chrome支持Android应用,浏览器正在成为操作系统?

Google 日前已决定将ARC开放给所有开发者,并且ARC在Chrome OS和Chrome浏览器中均可以运行。ARC全称是App Runtime for C...

34440
来自专栏Debian社区

Debian 成为主流 Linux 操作系统的七个原因

Debian也许是历史最悠久的发行版之一,但很显然,它仍可以教其他发行版好几招。要是没有Debian,Linux领域的境况会大不一样,会黯然失色好多。Debia...

11620
来自专栏微信小开发

微信又出新功能了:以前没发挥好的,咱再来一次

想必大家伙都知道 微信又更新了吧~ 微信更新可谓是家常便饭 除了上次更新朋友圈设置“允许朋友查看朋友圈范围” ? 以及在6姐微信里消失的无影无踪的 “不常联系朋...

290100
来自专栏程序员互动联盟

为什么黑客那么挣钱,原因就在此

有朋友在群里问黑客编程如何学习?这个题目也是一个可大可小的问题,因为黑客编程没有一个死的界限。不是说到什么级别就算或者不算,同样是属于黑客技术,也有简单和复杂之...

387150

扫码关注云+社区

领取腾讯云代金券