相关历史文章(阅读本文之前,您可能需要先看下之前的系列????)
我们经常会在知乎或者QQ群的地方,看到别人的提问,很多时候,我们也想进行回答,但是对方提的问题有些时候真的是很难懂有些问题吧又是很简单的,所以结果就导致问问题的人不能得到自己的答案。另外对于有些人也讨厌伸手党。本文就和大家来讨论下提问的姿势,仅代表个人意见,不喜欢勿喷。
一、该怎么有条理地提出你遇到的问题
1.1 遇问题先搜索
很多时候,你碰到的问题别人已经遇到的问题的,对于技术这个圈子很多都是有分享的习惯,在很多的博客平台已经发表出来了,百度一下就能够找到答案了,所以碰到问题尝试自己解决下。
1.1.1 态度—别做伸手党
没有自己搜索问题,没有自己尝试解决问题,一上来就要代码,别人给了思路还不行,就是要代码,要代码。个人感觉为什么比结果重要,知道了思路很多时候就能找到答案了。当然对于有些问题,有了思路但是在自己尝试之后,还没有找到方案,可以在二次发问,这样别人也比较原因帮助你。
1.1.2 官网文档 – 你最好的助手
很多时候官方文档是不错的学习和寻找问题的选择,一般比较流行的技术都是有人在维护官方文档的,另外对于问题在官方也能够找到答案。
1.2 再思考和尝试
碰到问题,需要自己多次的进行思考和尝试,这个过程很重要也很有意义,能够锻炼你自我解决问题的能力,一旦养成了这样的能力,那么以后就像有了九阳神功护体,学习什么都会很快。
1.3 组织你的提问
怎样组织好一个提问,这是问问题最重要的一个环节,问题没问好,那么就会沉入大海。
1.3.1 问什么 – 这个自己一定要清楚
在提问的时候,自己一定要清楚自己要问什么,是问思路?还是某个功能的代码片段?还是内在原理?是在什么环境中?...要表达清楚,不然答主们都不知道要给什么。
比如,有人问“我怎么获取第一个p标签啊”,有人回答$('p').first(),后来才知道她想在css中获取,应该是p:first-child,这就是没表达清楚。
1.3.2 标题
“各位大神看看….”、“麻烦大家看看…”、“有没有大神做过这个项目…”、“在吗”。
大神这种的给人感觉压力山大,那不是大神的还不敢回答你问题了。
在吗这样的,你是说在不在呢?没什么意义,还不如直接表明清楚问题。
正常的标题,应该是一句话描述自己遇到的问题,让那些坐在电脑前的开发者朋友们能一眼定位自己要不要打开这个问题(也就是能不能回答一下)。
1.3.3 问题的描述和最终要实现的目的
在提出问题的时候,最好把最终是要实现一个什么功能讲清楚,交代好问题背景,是在实现什么功能的路上遇到了问题,然后再描述具体问题。
然后就到了问题的描述了,任何问题大致都是为了讲清楚,你要什么,但是你搞不定或者你得到了不一样的奇怪东西或者你的做法不合口味(报错?不一样的结果?效率不符合预期?太麻烦?...),然后你要么想知道why,要么想矫正过来达到你的预期。对的,就把现实(你的懵逼或者你的现有做法)和理想(你的预期)描述清楚就好了。
1.4 尽量写上自己对此已有的思考和尝试
这也是问题描述的很重要的一部分,如果你贸然问了一个问题,但是你丝毫不提及你为此已经做的努力,那么别人就会疑问:“你为什么不自己先尝试下呢”,“你该写上你目前做了啥,而不是一味求解答“。
所以提出某一个问题的时候,请尽量带上你自己的一些做法,哪怕是错的(肯定是错的,不然你就不会有问题了啊),这样答主们也知道你是思考过这个问题的,也避免了答主们再去尝试你的做法,也可能你的解决其实是对的,但是有一些小问题,修正了就可以了,所以一定要这么做。
1.5 跟进你的提问
提问了之后无非是这么几种结局,没人回答的,有人回答但是不够直接的,回答能合理解决问题的,回答的都没解决问题的后来自己解决了的。
如果别人没有解决你的问题的话,也需要对对方表示感谢,毕竟也是花了时间为你解决,但是可能环境和你的不一样,确实无法出现你的问题。
如果别人解决你的问题,那么应该带上十分的谢意,表示对方的帮助,另外如果自己在某些方面有研究的话,也可以说明在某些方面的研究,然后说明可以互相研究和探讨。
二、平时主动帮助别人,多结交同频靠谱的朋友
通常我们做项目的过程中难免会遇到各种各样的问题,所以我们要慢慢的去积累属于自己的圈内人脉,在自己力所能及的情况下,多帮助别人。这样在你需要别人帮助时,你请教别人,才能得到有效的解答。先付出,再获得,你将获得更多。
三、问问题小栗子
3.1 问题一
错误的提问:我可以在哪儿找到关于activiti 的资料?
纳尼,官网就不能找得到嘛?
正确的提问:我用百度搜索过 "Activiti7",但是没有找到有关Activiti7的比较好的中文入门手册?
这个问题他搜索过了,对于中文文档确实比较稀缺,activiti5倒是很多。
3.2 问题二
错误的提问:我找来了spring-boot-admin的源码没法编译。它怎么这么烂?
他觉得都是别人的错,这个傲慢自大的提问者。
正确的提问:spring-boot-admin 项目代码在 Spring Boot 2.1 版下无法编译通过。我读过了 FAQ,但里面没有提到跟”某个异常“有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗?
提问者已经指明了环境,也读过了FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。