《提问的智慧》读书小笔记

学习是一种既需要自己闷头稳扎稳打、也需要与外界交流的活动。在众多“外界交流”当中,“提问”又是最常见和常用的那一个;而“提问”这一行为,又可以按照发生的场合分为“线下向老师/同学/技术大佬提问”与“线上通过论坛/电子邮箱向大佬提问”两种。本文作为《提问的智慧》的读书小笔记,介绍一些关于提问——尤其是线上提问——的Tips。


image

[TOC]



心理建设

对我来说,我的很多学习上的问题,追根揭底都是一些粗制滥造的心理建设导致的.所以在读书笔记开头,我认为有必要写写这种“鸡汤”似的东西。
在我看来,所谓“提问的智慧”就是把自己当作一个有学习和探索能力的完整的人which只是遇到了一些问题,而不是一个被各种学习途中的困难定义出来的loser,并且并不将提问看作是特殊的行为,继而在行为上不卑不亢、准确简练地问出问题。


image

提问前的准备

为什么要在提问前作准备

首先,从学知识这个目的来说,你在做提问前的准备,就是在熟悉解决这个问题所需的“基础知识”,这有利于你理清思路、更有效率地解读回答、甚至帮助你参与你的好问题引起的讨论;也没准你在准备的过程中就解决了这个问题,不必再问别人了,也能增加你学习和探索的信心。
另外,从最现实的角度来说,由于你并没有付费,所以不要指望别人义务地给你提供优秀的答案;那么好答案必须是由自己用优质的提问挣来的

image

预先准备清单

  1. 尝试在你准备提问的论坛的旧文章中搜索答案。
  2. 尝试上网搜索以找到答案。
  3. 尝试阅读手册以找到答案。
  4. 尝试阅读常见问题文件(FAQ)以找到答案。
  5. 尝试自己检查或试验以找到答案。
  6. 向你身边的强者朋友打听以找到答案。
  7. 如果你是程序开发者,请尝试阅读源代码以找到答案。

提问时的注意事项

关于场地与形式

在正确的场合做正确的事

先用Google等搜索引擎找一找,排名靠上的是一些论坛里关于这些问题的讨论帖子;如果实在是找不到,再到相关的技术网站和论坛里,用tag搜索再找找。
在此附上两个技术社区:
Stackoverflow(国外)
segmentfault(国内)

来到论坛后,要小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者:

  • 在与主题不合的论坛上贴出你的问题。
  • 在探讨进阶技术问题的论坛张贴非常初级的问题;反之亦然。
  • 在太多的不同新闻群组上重复转贴同样的问题。
  • 向既非熟人也没有义务解决你问题的人发送私人电子邮箱。

另外,要注意使用项目开发者提供的邮件列表。当某个项目提供开发者邮件列表时,要向列表而不是其中的个别成员提问,即使你确信他能最好地回答你的问题。查一查项目的文件和首页,找到项目的邮件列表并使用它。

关于描述问题

标题

要使用有意义且描述明确的标题。描述痛苦程度会挤占你陈述自己真正问题的空间。
一个好标题范例是目标 ——差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。

内容

提问贴的内容最重要的在于需要言之有物、提供精确有效的信息。以下是一个帮助你的提问贴向这个标准靠拢的参考清单:

  • 仔细、清楚地描述你的问题或 Bug 的症状。
  • 描述问题发生的环境(机器配置、操作系统、应用程序、以及相关的信息),提供经销商的发行版和版本号(如:Fedora Core 4、Slackware 9.1等)。
  • 描述在提问前你是怎样去研究和理解这个问题的。
  • 描述在提问前为确定问题而采取的诊断步骤。
  • 描述最近做过什么可能相关的硬件或软件变更。
  • 尽可能的提供一个可以重现这个问题的可控环境的方法。
    这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。
    在语言的使用上,用清晰、正确、精准和语法正确的语句。这样做一方面给浏览你问题的大佬们展示清晰、正确的信息,也能让大佬们知道你是个用心和仔细的人。如果在非母语论坛上提问,记得明确标注,但也不要省略自己的思考。
    最后,不要要求别人把回答发送到你的电子邮箱中,除非回答会涉及一些敏感问题。

BE POLITE

多说“请”“谢谢”之类的礼貌用语自不必说,这种事老师和家长早就交过无数遍了,咱们网上冲浪也经常被粗鲁无礼的家伙教做人。所以在此处我想说新一点的东西:提问时的态度尽量做到不卑不亢;需要对别人有礼貌,也要对自己的智力和尊严有礼貌。


image

解读答案

说明你没有做好准备的回答

RTFM (Read The Fucking Manual)

回答者认为你应该去读他妈的手册。你应该去读一读。

STFW(Search The Fucking Web)

回答者认为你应该到他妈的网上搜索。去搜索一下吧。

在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。


image

如果还是看不懂

image

别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。
比方说,如果大佬回答你:

看来似乎是 zentry 卡住了,你应该先清除它。

然后,这是一个很糟的后续问题回应:

zentry 是什么?

好的问法应该是这样:

哦~我看过说明了但是只有 -z 和 -p 两个参数中提到了 zentries,而且还都没有清楚的解释如何清除它。你是指这两个中的哪一个吗?还是我看漏了什么?

如果真的是大佬血口喷人

image

很多黑客圈子中看似无礼的行为并不是存心冒犯。相反,它是直接了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。
如果你觉得被冒犯了,试着平静地反应。
谨记不要卷入口水战。你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。

具体事例——好问题与蠢问题

前文一直在说一些抽象过、总结过的东西,现在让我们在具体情境中感受一下“好问题”与“蠢问题”的区别。

蠢问题:
我可以在哪儿找到关于 Foonly Flurbamatic 的资料?

这种问法表现出你没有做好提问的准备,去做好准备再来吧~

聪明问题:
我用 Google 搜索过 "Foonly Flurbamatic 2600",但是没找到有用的结果。谁知道上哪儿去找对这种设备编程的资料?

这个问题说明提问者已经做过了准备,确实遇到了问题。

蠢问题:
我从 foo 项目找来的源码没法编译。它怎么这么烂?

这样提问会被回答者解读为“这人觉得都是别人的错,这个傲慢自大的提问者”。

聪明问题:
foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗?

提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。

蠢问题:
我的主机板有问题了,谁来帮我?

某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。


image

聪明问题:
我在 S2464 主机板上试过了 X 、 Y 和 Z ,但没什么作用,我又试了 A 、 B 和 C 。请注意当我尝试 C 时的奇怪现象。显然 florbish 正在 grommicking,但结果出人意料。通常在 Athlon MP 主机板上引起 grommicking 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题?

这个问题给了别人可以咀嚼玩味的东西;提问者设法让人们很容易参与并且被吸引进来。提问者显示了自己具备和他们同等的能力,并邀请他们与其共同探讨。通过告诉他们自己所走过的弯路,以避免他们再浪费时间,提问者也表明了对他们宝贵时间的尊重。

简单总结

  1. 不卑不亢,尊重他人,也尊重自己。
  2. 网上提问前要做预先准备。
  3. 善用手册、搜索。
  4. 提问时话不再多而在精,重点在于描述有关参数、“实在”的东西。

reference

《提问的智慧》简体中文版在线阅读地址:
《提问的智慧》

你可能感兴趣的:(《提问的智慧》读书小笔记)