背景
问问题的能力是一个人的修养,学会提问是一个人成长的必经之路。尤其是软件行业的从业者,要保持对技术的钻研精神,不做伸手党,问出水平,问出修养!
这些年我问过很多问题,也有些人向我提问。伸手党太多,没时间也没精力回答那些问题。
Q同学问A同学
- Q:这个工具部署有问题,提示这个错误? A:google一下,不要浪费我们的时间
- Q:Java语言中XX方法有啥用?A:自己看jdk代码哇
- Q:怎么用工具X实现Y? A:应该… Q : … A: … 讨论一圈发现不需要实现Y
- Q:这段代码总抛出这个异常,我怀疑是XX原因? A:不要说你的怀疑?针对这个怀疑你做了啥么?
上面都是一些反面例子,核心就是,能自己google或者FAQ的就不要问!提问要简洁客观,目标明确!
提问之前
- 看FAQ和手册
- 自己尝试debug
- 咨询有经验的朋友
- 读源代码
这里的提问主要是论坛上的文字提问;不要摆出一副伸手要答案的态度,要用寻求指点的态度来提问。
好的态度
- 有人可以指点一下么?
- 我的思路是否有问题?
- 我应该重点检查哪里?
差的态度
- 请粘贴下正确完整的程序(标准伸手党!)
提问时
-
问对的人:选择相关主题的板块,不要多次发布相同问题!例如:Stack Overflow是编程相关的论坛
-
主题清晰:问了让别人不用看描述就知道问题类型和背景,github一般都会对issue做tag标记的。
- 愚蠢:救命啊!我的笔记本播放不了视频!
- 明智:使用 MV1005 型号的某显卡芯片组在 X.org 6.8.1 的鼠标光标出现偏差
-
描述要准确:描述机器环境(os,机器配置,版本信息);描述自己的排查方向和相关现象;描述问题的触发背景(升级了什么组件/改了什么);提供复现方法。
-
描述要客观,不要加主观判断;
- 愚蠢:我在编译内核时接连遇到SIG11错误,怀疑主板上的某根电路丝断了,找到它们的最好办法是什么?
- 明智:我组装的电脑(K6/233 CPU、FIC-PA2007 主板[威盛 Apollo VP2 芯片组]、Corsair PC133 SDRAM 256Mb 内存)最近在开机20分钟左右、做内核编译时频繁地报错,提示SIG11 ,但在头20分钟内从不出问题。重启动不会复位时钟,但会整夜关机。更换所有内存未解决问题,相关的典型编译会话日志附后。
-
描述目标,而不是中间的某个步骤step;可能你的方向偏了,实现目标根本就不需要实现这个step
- 愚蠢:我怎样才能让某图形程序的颜色拾取器取得十六进制的RGB值?
- 明智:我正试着用自己选定数值的颜色替换一幅图片的色表,我现在知道的唯一方法是编辑每个表槽,但却无法让某图形程序的颜色拾取器取得十六进制的RGB值。(这种问题会被建议使用更合适的工具)
-
有礼貌,毕竟谁也没有义务帮你解决;
蠢问题和好问题
愚蠢:我在哪能找到关于Foonly Flurbamatic设备的东西?
这个问题在请求一个「Search The Fucking Web」(STFW) 式的回复。
明智:我用谷歌搜索过「Foonly Flurbamatic 2600」,但没有找到什么有用的信息,有谁知道在哪能找到这种设备的编程信息吗?
这个人已经搜索过网络了,而且听起来他可能真的遇到了问题。
愚蠢:我不能编译某项目的源代码,它为什么这么烂?
提问者预提了一个假设:是别人搞砸了,太狂妄自大了。
明智:某项目的源代码不能在某Linux 6.2版下编译。我读了常见问题文档,但其中没有与某Linux相关的内容。这是编译时的记录,我做错了什么吗?
提问者已经指明了运行环境,读了常见问题文档(FAQ),列出了错误,也没有假设问题是别人的过错,值得留意一下。
愚蠢:我的主板有问题,谁能帮我?
某黑客管理员对此的反应可能是:「是的,还需要帮你拍背和换尿布吗?」,然后是敲下删除键。
明智:我在S2464主板上试过X、Y和Z方法,当它们都失败后,又试了A、B和C方法。注意我试C时的奇怪症状,显然某某东西正在做某某事情,这并不是正常的现象。通常在Athlon MP主板上导致某某事情的原因是什么?有谁知道我还能再尝试什么方法以确定问题?
有趣的缩写
RTFM:Reading the Fuck Manual
STFW:Search The Fuck Web
收到这种回复:自己动手,丰衣足食吧。
参考:http://catb.org/~esr/faqs/smart-questions.html#answers
参考:https://www.jianshu.com/p/60dd8e9cd12f