如何以聪明的方式提出问题
源自EricSteven Raymond操作的简略版
介绍:在程序的世界里,对于你的技术问题得到答案的类型不仅依靠你问问题的方式,还依赖于解决问题的难度。
对于理解的第一件的事情是实际上程序员喜欢有难度的问题,以及好的、思考有挑战性的问题。如果我们不这样想,我们就不会在这里。
程序员有一种名声是当他们看到简单的问题会有敌意或是傲慢。它有时看起来我们对于新手或无知的人的随意的粗鲁。但这并不是真的。
在你提问之前
在问问题之前,先做以下这些:
1、通过你要发帖的网站去找现成的问题的答案
2、通过上网查找答案
3、通过手册查找答案
4、通过看常见问题来查找答案
5、通过观察和实验查找答案
6、通过问有能力的朋友寻找答案
准备你的问题,充分地思考它,匆忙的问问题只会得到匆忙的答案或者什么也没有。
当你问问题时,仔细选择好论坛
对于要在哪问问题要敏感,如果你这样做可能会被忽略你的问题:
1)远离主题的论坛发帖
2)在一个讨论高级技术问题的论坛问了一个很基本的问题
使用有意义,专业的标题
标题是你吸引专业人士目光的好机会,不要随意取名像是“请帮助我”,不要给我们痛苦的印象,而是简明地来描述问题。
不要全部大写,读着像是大喊大叫。
如果你写的很没文字性,也会被忽略。所以不用类似短信的语句。
你的问题要精确和有信息
-
仔细认真地描述问题的情形,
-
描述问题发生的环境(机器,操作系统,应用等)
-
描述你做的项目并理解问题
-
描述你已尝试的诊断步骤
尽量提前试着解决问题
问题量大不够精确
你需要精确和有信息,这个不是靠代码的数量或者是数据。如果你有一个大的复杂的用例中断了程序,试着减掉它,让它尽量少。
这是必要的,有如下三个原因,第一个简化问题使它更好得到答案,第二个简化问题是你得到有用的答案,第三个精炼bug报告。
描述问题的症状,不要猜测
你认为什么导致了你的问题不是有用的。确定告诉程序员出错的症状,而不是理论上的。让他们诊断。如果你觉得你的推测是重要的,写上它。
描述目标,不要按步骤
如果你要找出怎么做,只要描述你阻塞在哪步。通常需要技术帮助的人有很高的目标,认为这是达到目标的步骤,但没意识到这是错的。努力去克服它。
明确你的问题
开放性问题在开放性时间思考。那些最有可能给你有用的答案的人是最忙碌的人。
如果你明确你要的答复做什么,你最可能得到一个有用的答案。
当问关于代码的问题
不要让其他人调试你的错误,没有给出他们搜索问题的线索。贴几百行的代码,说它们不工作了,你的问题会被忽视。贴十几行代码,说第七行后想看到x,结果看到y,会得到回复。
如果你想要一个代码检查,记住说明什么地方可能要检查和为什么。
不要贴作业的问题,程序员擅长认出作业的问题,那些问题让你解决,所以你会从经验中学习。可以问线索,但不要问全部的答案。
跟着写解决方法的小贴
对帮你解决问题的人发一个小贴,让他们知道问题怎么解决的并感谢他们。不需要长,这样不好。
实际上,一个简单温馨的总结更好,除非问题的技术性很深。说怎么解决问题的,不用回复。
这样也可以帮助其他遇到相同问题的人搜索。
如何说明答案
如果你不理解答案,不用立刻反馈。如果你需要再理解,写明你已经知道的。
如果你没得到答案
不要认为是别人没告诉你,有的时候他们可能也不知道答案。没有回复不代表被忽视。
总之,简单地重贴问题是个糟糕的主意,有耐心,可能是你的问题写的不明确。