如何快速而优雅的解决问题(提问的智慧简略版)

Posted AirLongDian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速而优雅的解决问题(提问的智慧简略版)相关的知识,希望对你有一定的参考价值。

如何快速而优雅的解决问题(提问的智慧简略版)

提问的智慧原文链接

不要随便提问!!

不要随便提问!!

不要随便提问!!

在各种解决基本技术问题的方式里,在qq群或者私聊里提问,是你所能操作的方式里最慢,效率最低,成本最高,而且你能学到东西最少的解决方式!!!

请不要过高的估算自己的问题难度,截止2202年,这个世界上有38亿人在互联网上活跃,通常情况下,你们所遇到的问题中的绝大部分都已经有无数的前车之鉴将解决方案糊在了网上!

打开浏览器,然后打开谷歌或者百度或者搜狗或者雅虎或者360搜索或者任何其它的搜索引擎(你们有多么多的选择啊),然后搜索你所遇到的问题,(请务必精准简洁的概括你的问题,如果你搜索“救命啊,我的电脑坏了,有人能帮我吗?xxxx坏了!”纯属自己作死,请不要说自己是工程师,谢谢。),通常情况下使用搜索引擎是大部分问题最快捷的解决方式。

而且通常情况下,软件手册,技术文档,论坛文章作者会更加深切透彻的描述一个问题产生的原理,从而使你学到更多的东西,好比装GCC编译环境,如果你搜索 “GCC 编译环境配置 ”,你会得到很多篇教程并在自己动手的过程中学会GCC环境的配置,但如果你问我“喵,我不会配置GCC环境”,我会从你手里接过电脑然后顺利的配置好环境再递给你。

然后下次你还是不会装GCC。

在你准备要提出技术问题前,请你务必先做到以下事情:

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

草率的发问只能得到草率的回答,或者根本得不到任何答案。如果你什么都不做就去技术圈提问的话有很大的概率会收到以下两种答复

  1. RTFW
    • 有一个古老而神圣的传统:如果你收到RTFM (Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。
  2. STFW
    • RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。

通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为

  • 你需要的信息非常容易获得
  • 你自己去搜索这些信息比灌给你,能让你学到更多

你不应该因此不爽;依照技术圈的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。

而且即使他没有附文档给你,甚至完全没有回复你,你也不应感到气愤。

提问的本质上是在为了解决自己的问题而消耗别人的时间,别人没有牺牲自己时间,用自己多年知识储备帮你解决问题的义务,毕竟时间是很宝贵的而你又不给钱。

当然,大多数时间下你给钱也不行,能来混技术圈的谁差你那点钱,你是在侮辱谁吗?

(如果你给的钱多的话另当别论,比如假如你给我100万元教你装个系统,那我当场买机票飞到你那里准备好全套工具温声细气有问必答的手把手教你,包教包会教到你会为止)

---------------------------------------

解释:关于一些看起来很无礼的发言:

很多技术圈子中看似无礼的行为并不是存心冒犯。相反,它是直接了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。

如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,邮件列表、新闻群组或论坛中的前辈多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在社区中看起来是正常的,而将被视为有错的一方,这将伤害到你获取信息或帮助的机会。

夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。

当技术圈的某人说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心他的社区而行动。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。

当然,喵通常不会,喵怎么说也是个学长,而且还要尊重自己喵的设定,大部分时候喵会皮一下然后让你自己去搜索,但是在喵使用另一个身份的技术圈,我不确定你们是否看见过喵怼人的聊天记录

-----------------------------------------------

在你确认你尝试了以上各种方法,并花费了至少20分钟以上仍没能解决问题之后,是时候提一个正确的问题来获得自己的答案了。

一个正确的问题是指什么呢?请看以下问题

救命啊!!!急急急!!!!快帮我看看!!!有人能帮帮我吗?我电脑坏了!!邮箱xxxxxxxxxxxxxx!好人一生平安!!

请问这个问题表达了什么?

针对这种问题,我的第一反应是:首先你死不了,然后我一点也不着急,你这么问问题没人能帮你,我知道你电脑坏了但是你啥信息都不说我懒得一句句问,发到你私人邮箱别的遇到这问题的人不就看不到解决方法了吗?所以我还是不理你了吧。

其本质上就是对于那些我需要问一大堆问题才能知道你到底遇到什么问题垃圾提问,我没有那么多闲工夫可以浪费。

一个正确的问题应该怎样表述呢?

以我和zed最近遇到的一个问题为例

首先,问题的最开头或标题处应该以简略但精准的语言表述你遇到的问题

QV2ray连接成功但无法上网

然后在后面加上你所使用的环境,能够找到的报错,以及其它你能提供的信息

Archinux下QV2ray 连接成功但无法上网,vmess无法使用,日志报错read/write on closed pipe;但ssr链接使用正常

然后表示你已经做了哪些努力但仍然无法解决

Archinux下QV2ray 连接成功但无法上网,vmess无法使用,日志报错read/write on closed pipe;但ssr链接使用正常,我通过搜索引擎没有找到相关的资料,试着重装Qv2ray并删除配置文件无效,验证对时显示ntp服务器时间误差为0秒

最后客气的表示希望能得到帮助

Archinux下QV2ray 连接成功但无法上网,vmess无法使用,日志报错read/write on closed pipe;但ssr链接使用正常,我通过搜索引擎没有找到相关的资料,试着重装Qv2ray并删除配置文件无效,验证对时显示ntp服务器时间误差为0秒,请问这个问题大家有解决方案吗?

这样一来大家第一眼就能看到Archlinux,Qv2ray,有所涉猎的人会看一下这个问题自己是否知道,比如看到read/write on closed pipe知道这个人遇到了系统对时错误,再往下看这个人做了很多努力没能解决问题,而且态度很好,我刚好遇到过这个问题,帮他解决一下吧

而如果你的问题是这样的:

“救命啊我FQ翻不出去!我什么都做对了但是它就是不好使,dalao们快出来救救我”

那我想技术圈的很多人只会用看“睿智”的目光看看你的问题,然后把它直接刷下去。

开发人员解决问题的艺术:如何优雅的向别人提出你不懂的问题

做技术如同做学问:首先得态度端正,其次得勤于思考,还要能于吃苦,最后你得学习有方。

  • 态度:严谨、朴素、踏实、顽强、不浮躁
  • 思考:多角度、多维度
  • 吃苦:愿意为解决一个问题而穷极所能

案例

下面是一个非常不错的发起提问的例子,我们看一看这里是如何提出问题的:

首先,肯定别人的项目,对项目组成员致以感谢。并说明自己选用这个项目是因为这个项目非常 awesome 。

接着,告诉项目组自己在使用时遇到的问题,并说明自己不是一遇到问题就立即来提问,而是经过很多途径、尝试了很多种解决方案,没有得到解决,然后才提出这个issue。比如文中提到“我根据你的文档一步一步的进行操作,并且通过google搜索尝试了很多解决方案,但是仍然没有找到能够解决该问题的办法,请给我一点 wisdom”。

在说明这些之后,表述了事情经过。他在issue提到:“根据要求安装和配置好了 Vagrant 及 VB,通过 gitbash 设置了相关配置,一切都很正常。然而,无论我怎么努力都不能通过 ssh 连接上服务器。随后,命令行返回一段错误,并说出了错误信息:blablabla...”

仔细描述了操作过程,以及错误的发生时机和返回的错误信息等。这些信息都非常有助于使问题得到快速解决,都是能够初步或直接断定问题所在的关键点。

通过上面一段描述之后,发生错误的时机以及整个操作流程都说清楚了。接着,是对操作流程中每一个操作细节的描述:

这里提到了,操作系统环境是 win8x64,ssh keys 是通过 Gitbash 创建的并且保存在 .ssh 目录中,尝试了不同的命令行终端但是都不能正常工作,但是 ssh 可以与其他服务器。进行了系统重启、删除并重建配置等与虚拟机相关的各种尝试,但问题依旧。还通过VB界面检查了端口设置,并尝试修改端口配置,但都无济于事,还通过 netstat -a 检查了端口情况。接着通过vagrant相关命令尝试了一系列操作,根据文档进行逐步尝试,仍无法连接上服务器。还阅读了google来的各种解决方案,但都没有解决问题。

最后,请给我一些帮助,我是真的想使用你的 setup file !

做事和做学问的艺术。

  1. 选择项目,在众多开源项目中选择一个能够满足自己需求的项目。
  2. 确保自己的选择是科学的,一旦选中,就将其应用到自己的项目。
  3. 遇到问题,首先要做的是对照官网文档仔细检查操作有没有问题,而不是直接去问别人要答案。
  4. 在检查完使用方法完全符合文档要求后问题依旧,把解决问题的思路继续向周边扩散(不要局限于依托文档解决问题,比如文中提到的检查端口等等)。
  5. 穷尽个人知识结构,仍不能解决问题,用笨办法(排除法,如尝试自己的SSH是否可以连接上其他服务器等等)开始逐个检查相关环境是否有问题。
  6. 排除法也不能定位问题,开始google求助,筛选和识别出哪些搜索结果有可能解决自己遇到的问题。
  7. 对筛选出的可能可行的解决方案进行尝试,仍然没有直接去开 issue 寻求答案。
  8. 通过 google 依然解决不了问题,并已穷极所能。此时,只能问人要答案了。
  9. 答案不是随便要的,你得明白应该去找谁要答案。不是随便找个人讨论就能解决问题,所以他到github提交了issue。
  10. 最后才是提问的艺术,比如措辞、表述等等。

提问的艺术

先立足于自己解决,确定通过一己之力无法处理问题,对外寻求帮助。一定要有自己思考的过程,这个方案可能不是最高效的,但对提高处理问题能力大有帮助。提出问题请求帮助时,要注意以下几点:

  1. 背景说明:尽可能详细的描述你做了什么
  2. 问题本身:尽可能详细的描述问题本身
  3. 环境信息:尽可能详细的提供有利于别人判断问题所在的关键点

最后

本文地址:http://www.cnblogs.com/kelsen/p/6259647.html

关于本文如果您有任何建议或疑问请在下面留言交流。

以上是关于如何快速而优雅的解决问题(提问的智慧简略版)的主要内容,如果未能解决你的问题,请参考以下文章

提问很简单,但会优雅而高效地提问却很难

如何快速搭建智慧农业物联网云平台

开发人员解决问题的艺术:如何优雅的向别人提出你不懂的问题

Qt的安装和使用中的常见问题(简略版)

如何优雅地使用 windows total commander

提问的智慧 - How To Ask Questions The Smart Way