简短版
- 我现在遇到一个问题X
- 我想到可能的原因是a, b, c
- 我排除了以下可能性d, e, f
- 我尝试过以下方案g, h, i
- 请问还有什么是我遗漏的?
首先你需要明白
- 程序员们只偏爱艰巨的任务,或者能激发他们思维的好问题
- 对方没有义务忍耐你的无知和懒惰
- 周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得不到任何答案
提问之前
- 用中英文进行Google, 翻前两页的结果, 往往Stack Overflow网站上的答案就是正确答案. 如果没有找到, 更换可能的关键词多次尝试
- 在FAQ/文档里找答案, 耐心读英文文档是基本素养
发问的形式
- 使用言简意赅,描述准确的标题
- 精确描述, 信息量大, 但是不啰嗦
- 尽可能详细而明确的描述症状
- 提供问题发生的环境(机器配置、操作系统、应用程序以及别的什么)
- 说明你在提问前是怎样去研究和理解这个问题的
- 说明你在提问前采取了什么步骤去解决它
- 在自己的尝试中, 排除了哪些可能的原因
- 罗列最近做过什么可能有影响的硬件、软件变更
- 尽量想象一个程序员会怎样反问你,在提问的时候预先给他答案
- 对每一个关键步骤截图, 如果有错误信息, 截图和文字版连同产生问题的代码都要发给对方
- 给出自己出问题的代码, 必须是对方复制后就能立即运行, 并且复现问题的最简代码. 删去与问题无关的部分
- 别问应该自己解决的问题, 避免无意义的疑问
问题解决后
- 简短说明自己是如何解决的, 后续尝试的过程
- 如果别人对你有帮助, 感谢一下对方, 比如发个红包什么的
今天看到这篇帖子,很受教与各位一起共勉。转自:https://py3.io/Developer/