提问的艺术
在学习和工作中,我们总会遇到一些“卡壳”的时候:程序出错、软件崩溃、功能无法使用……
如果自己折腾半天还是没法解决,就需要向他人求助。
本文将带你从零开始学会怎么提问。
为什么要学会提问?
当你遇到了问题,依靠自己的力量无法解决,又必须要解决时,就必须要提问。
大学里和未来的大多数人没有回答和解决你问题的义务,提问的途径丰富而复杂,提问的质量直接影响回答的好坏。
什么是问题?
简而言之,就是没有按照预期结果发生的情况。比如:
- 软件或运行环境出问题
- 操作不当
- 代码错误(拼写错误、未声明变量或函数、使用了中文符号、行尾分号缺失、括号不配对……)
请先搞清楚自己遇到的究竟是什么问题,再去提问。
怎么提问题?
要点
- 「我」遇到了什么? —— 反映现场
- 「我」是如何让这种状况产生的? —— 复现操作
- 「我」想要什么? —— 表达需求
1. 反映现场
通过截屏截取问题对应的提示。
如果实在不能截屏时(例如蓝屏或死机),才使用手机拍摄屏幕上的提示。
截屏应该范围足够大且足够清晰(建议截全屏),框住问题信息,这样对方才能一次性从一张图上获取尽量多的信息:
- 问题发生时你在做什么
- 软件在做什么
- 系统是什么情况
- ……
使用什么工具来截屏?
- Windows 自带的截图工具: Win+Shift+S 键 (截图并复制到剪贴板),PrtScn 键 (截图整个屏幕)
- 软件自带的截图功能:QQ、微信、……
2. 复现操作
请复述问题产生的过程:
- 「我」在哪几个操作之后导致这样的问题产生?
- 问题是突然产生的还是在「我」操作之后立即产生的?
- 在问题发生之前的一段时间有没有什么值得注意的现象?
- 「我」在问题发生之前干了什么?
3. 表达需求
「我」使用这个软件是要干什么?
是去解决这个问题,还是仅仅忽略某个警告提示。
好与坏的提问方式
请注意!
在请求他人帮助时,应该遵循基本的社交礼仪。毕竟大多数的被提问者都没有义务回答你的问题。
提问示例
- 不好的提问方式:
一句笼统的话,看不清的照片,明显搜索引擎可以解决的问题(知识性的)我这个代码为什么运行不起来啊???
- 合适的提问方式:
完整的信息(界面,环境,提示报错信息),完整的操作(问题前后的操作),完整的需求(错误影响了什么,我的目的是什么)我想请问一个关于
什么的问题。
我想达到什么效果,但是我这样做出现了什么样的问题。
报错日志是这样的。(要学会圈出关键字)
我尝试过什么方法来解决。
我尝试搜索过了什么关键字,在里面找到了这些链接的回答,尝试了但还是没有解决。
我用的是什么操作系统,版本号是多少。
我用的是什么软件,版本号是多少。
有大佬愿意回答一下吗?谢谢!!
其他寻找答案的方法
- 用搜索引擎搜索关键词:Bing、Google、DuckDuckGo、百度开发者搜索……
- 从社区论坛中寻找提出类似疑问的帖子:StackOverflow、V2EX、Reddit、知乎、稀土掘金、博客园、51CTO、xx云开发者社区……
- 向 生成式 AI 提问:Chatgpt、Claude、Gemini、DeepSeek、Qwen……
- 阅读项目的官方文档或某些个人网站上的教程笔记
- 在 GitHub 上搜索相关的项目,并查阅项目的 Issues 、Disscussions 和 Wiki