教你正确的提问姿势
编程学习过程中以及工作中,常常会遇到困难,这时候除了自己想办法解决,更快的方法就是向身边的人提问寻求答案。
我收到过一些知乎私信询问的,更多的是在QQ群或者微信群里被提问。发现编程的新手往往也是提问的新手,有时候真的是被搞得很无语。虽然每天会回答很多问题,但是有些问题真的是一点都不想答。
所以编程小白同学不妨在提问之前看看下面几个条守则:
遇到问题首先要查一下谷歌前三页
大多数编程的问题都可以通过谷歌获得答案,比如官方的文档,或者某人的博客。如果搜中文找不到答案,可以试试英文。
如果英文不好,就用有道翻译在线翻译_有道,翻译之后再查找。
如果不会用谷歌,请用百度搜索一下怎么上谷歌
正确的提问内容
在Google Code社区提问的时候,会自动生成一个模板:
What steps will reproduce the problem?
该问题的重现步骤是什么?
1.
2.
3.
What is the expected output? What do you see instead?
你期待的结果是什么?实际看到的又是什么?
What version of the product are you using? On what operating system?
你正在使用产品的哪个版本?在什么操作系统上?
Please provide any additional information below.
如果有的话,请在下面提供更多信息。
如果通过第一种方式无法找到答案,这多半不是一个简单的概念问题,可能是一段代码没有按照预期的想法执行,也可能是用了不恰当的方法去实现需求。
所以提问的时候最好告诉对方,自己本来是要做什么,而不是说这段代码是要干嘛。比如你提问如何能够把数据保存在浏览器,其实你的目的是记录用户登录状态,那么前面的问题很可能得到的答案是localstorage,但是真正需要的答案是cookie和session。
玉伯在文章中描述说
实际情况却是,提问者选择的路本身就是一条崎岖之路,对于要解决的问题,实际上有更好的方式。这种情况下,描述清楚目标,讲清楚要干什么非常重要。
所以我们要尽量描述目标,而不是过程。
平和对等的心态
在QQ群里用“大神”,“大牛”这种词求回答其实是不太合适的。因为如果我回答了问题,就要对号入座,承认自己是“大神”,这显然是一件尴尬的事。
另外一种就是用一种理所当然的语气提问,尤其是询问自己工作的内容提问方式,也是感觉很不好的。毕竟是你在上班,如果是问知识点,或者编程技巧,大家可以交流一下。但如果赤裸裸的把工作内容拿出来,让别人帮忙做,那是不是也要把工资拿出来给解决的人呢?
所以提问的时候最好提炼出知识点,或者描述清楚需求和自己的尝试, 像“求实现这种效果”,然后贴个图,真的是有人回答才怪。
正确的代码提供方式
这就是一种特别不正确的提供代码的方式
而这是另一种不正确提问的姿势。
之所以有个企鹅屁股,是因为
\ht
会被转义,这就很尴尬了。
正确的代码提供方式可以使用jsbin,粘贴代码。前端的好处就是可以这样不依赖本机环境,直接在线上运行。我自己给朋友发示例代码,或者解答别人问题的时候,也基本都在使用jsbin。
利用好社区而不是IM工具
QQ群或者微信群并不是一个探讨技术的好的载体提问方式,一来是群聊环境可能经常被插话,二来也是问题和答案难以被二次利用。而知乎上的问题和答案可以被更多人阅读,这使得提问和回答的质量都更加有保障,答题者也更愿意组织好语言,使得答案可以重复被利用。
当然,有时候在知乎提问也会有挫败感,比如前几天遇到的:
顺手点了邀请,也不是非要你回答,老子也是奇怪了,知乎提问都还要说个请字么?
所以,请你们还是要珍惜愿意无偿且友善回答问题的网友
比如我...
【参考资料】
如何向开源社区提问题 · Issue #545 · seajs/seajs · GitHub