距离最近的 V3.0 版本的发布,已经过去快 6 个月了。V4.0 版本的 《JavaGuide 面试突击版》,预计会在明天安排上,助力一波大家来年的春招。
今天是周末就不更新技术文了,聊聊程序员提问的智慧。
01
以我自己的一些实际经历以及这些年的摸爬滚打经验来看 :学会提问对一个来说真的太特么重要了。
刚工作那会经常因为提问方式不对而被别人 DISS ,好几次我都想爆粗口:“你特么连我问题都听不懂,真蠢!还 DISS 我呢!” 。
但是,我还是忍住了,毕竟还是要注意自己一下“公众形象”,老老实实地继续做我的峡谷喷子就好(我曾因在峡谷喷人多次被关小黑屋,暴躁啊~)。
为了解决这个问题,我专门做了大量功课。如果你想要知道如何正确提问的话,务必把这篇文章看完!
02
拿我自己的情况来说。我每周需要处理大量来自读者的提问。为此,我每周至少要抽出 3 天,每天抽出 1 个小时左右来回答这些问题。
面对这些问题,我也不是来者不拒的,毕竟我也是一个有原则的人。于我而言,你所提的问题质量,决定了我是否愿意去帮你解答。
类似像下面这种中二的提问,我觉得这种秀儿有必要出门左拐去看看心理医生了。这样的问题还有这么多人的关注,看出来大家有多闲了吧?
如果你提出了一些比较很有价值/含金量的问题的话,会让我觉得你这个人还挺靠谱的。基于这样的好印象,说不定我在后面有啥好的项目就会找到你一起来做。
我自己是挺高兴有这么多人愿意问我问题的。对于读者的问题,能回答的我都会尽力去好好解决对方的疑惑。我觉得这也算是一种信任,一种陌生人之间通过技术/代码建立起来的信任。 俗话说的好:“你我本无缘,只因共同爱好在此相遇”。
但是,现实情况是我经常会碰到一些不太正常的问题,甚至说有些问题的逻辑根本走不通。 我心情好的时候还好,万一你刚好碰到我很久都没解决 bug 的时候,emm,这个时候我可能就会发挥我峡谷第一喷子的功力了。
总的来说,会提问的人还是太少了。
我不知道我是不是一个会提问的人,为此我也查阅了网上的一些相关资料,下面给大家分享一下我对如何提问的看法。欢迎有见解的朋友在评论区来说一说。
03
我总结了一些经常被问到的一些问题,我暂且将它们分为:“稍微正常”和“不那么好”这两类。
我觉得稍微正常点的问题(还算正常的问题,但提问方式有待改善):
- 如何学习某个技术?(优化:提前说清楚当前自己多这个技术了解的情况)
- 如何提高自己的编程能力?(优化:可以简单地说说自己对于提高编程能力的看法以及当下所做的尝试)
- 计算机专业有哪些比较重要的科目?(优化:可以简单地说说自己的看法)
- 某个技术问题如何解决?(优化:提前说明自己尝试解决这个问题但是遇到问题没有解决成功)
- 某个技术问题你能给我解释一下吗?(优化:可以简单地说说自己不理解的点在哪里?)
- 可以推荐一些比较好的开源项目吗?(优化:提前说清楚自己目前的状态以及需求)
- 如何找到一个让自己满意的工作?(优化:可以简单地说说自己目前的情况以及所做的努力)
- 可以帮忙看看简介还有什么问题吗?(优化:可以先简单地说说自己目前的情况)
- 初学某个技术有哪些书籍推荐呢?(优化:提前搜索一些相关的书籍,做好功课之后再提问)
- ......
我觉得觉得不那么好的问题(让人讨厌的问题):
- 某某软件可以发一下么?我能在哪找到 某某资源?(我的内心 OS:难道不会 Google?最不济应该也会百度吧!)
- 什么环境变量怎么配置啊( 我的内心 OS: Google?百度?)
- 随便截个 bug 图,然后扔下一句话:“这是什么问题”(我的内心 OS:我滴个乖乖,我也要搬砖,我也有很多自己的 bug 要解决。我特么哪有闲心思给你解决这种问题!是不是应该把 stackoverflow 推荐给他?)
- 我怎么才能破解他人账号?(我的内心 OS:这人是白痴吧?)
- ......
04
我希望大家对你提问的人一定要保持理解尊重的态度。没有人有义务非要去回答你的问题。
我自己平时比较忙的时候,经常会忘记回答别人的问题。甚至说,有些问题我自己也不太清楚,然后就把问题先放着,想着说过一会再回来回答,结果后面就忘得一干二净。
并且,我上面也说了:“你的提问方式真的很大程度影响了别人回答你问题的欲望”。
所以,大家在提问题之前可以先这样想:“别人如果回答我的问题是情分,如果没能解决我的问题也很正常,如果忘记或者不想回答我的问题也没毛病”。至少我每次问别人问题前都是这样想的,这样别人很久或者没回答我问题,我也不至于纠结半天!
05
下面说一下我觉得比较好的提问方式或者说是高效提问方式:
- 别问搜索引擎能解决的问题 :最重要的就是遇到问题之前首先通过搜索引擎解决!很多时候你花半个小时到处问问题,你 Google/百度 一下,可能 10 分钟就解决了。如果一个程序员连搜索引擎都利用不好的话,我觉得可以早点转行了。
- 有问题直接问,不要上来就来一句“在吗”或者“有时间吗” :现在遇到这种提问的小伙伴,我都会直接怼回去。直接说明自己的问题或者请求不是更好吗?
- 提前做功课 :问别人问题之前自己先做一些功课,不要一上来就问一下很 Low 的问题,让别人对你的印象不好;
- 注意添加上下文信息 :提题的时候尽量添加一些上下文信息,比如说你为什么问这个问题、这个问题是在什么情况下出现的。
- 可以简单说说自己的看法以及做过的尝试 :你可以先说明一下自己对于这些问题的看法,你准备如何解决,你做过哪些尝试,你期待对方给你什么样的回答。
- 缩小你的问题的范围 :越是范围小而清晰的问题越容易回答。
最后,再分享一下有些我觉得比较好的提问网站:
- 国内: 知乎、segmentfault
- 国外: stackoverflow (stackoverflow 主要是程序员问答,你遇到的很多程序问题在这里应该都有其他人遇到过 )
另外,更多关于如何提问的内容,详见 github 上开源版『提问的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md
我是Guide哥,Java后端开发,拥抱开源,喜欢烹饪,自由的少年。一个喜欢使用Lombok的技术人。我们下期再见