jasper的技术小窝

关注DevOps、运维监控、Python、Golang、开源、大数据、web开发、互联网

做一个会提问的程序猿

作者:jasper | 分类:随笔 | 标签:   | 阅读 230 次 | 发布:2017-08-20 7:47 p.m.

最近有经常在QQ或是微信上被问到一些技术问题,但是有时候问的问题我不知道该如何回答,因为我根本不知道到底问的是什么,那我们就来聊聊作为一个程序员,应该怎么样去提问。

先读文档或Google

经常会有人刚接触一项技术时,连官方文档都不看,就来提问,特别是文档是英文的(很不幸,现在大多数文档还真是只有英文的)。之前就有人问这样的问题:

“xxx在Windows上怎么安装?”
“xxx的配置文件怎么改?”

我一口老血喷出来,,,这样的在官方文档上怎么也有吧;而且Google一下关键字,马上就有你想要的答案。我还是觉得对一项技术的学习,至少有两个不可缺少的步骤:

  • 自己多折腾
  • 读读官方文档
  • //读源码

对,如果不需要深入,只是使用,前两个步骤是不可缺少的,其实在我们日常问的问题中百分之八十的答案,就在官方文档之中。

问题不能太大

这应该是很多对一项技术的初学者,最容易犯的一个问题,然后你会发现回答他这个问题,你可以写出一篇长长的博客了;最常见的是类似这样的问法:

“xxx的底层原理是什么?”
“xxx该怎样调优”

其实遇到这样的问题的大部分原因就是没有深入学习这项技术,多看看文档或者是看看别人的博客,然后针对其中的一些点来提问,这样可能更好。

技术问题不涉及业务细节

我们都知道,技术永远是为业务服务的(所以产品经理才会那么横啊!!),但是在遇到问题的时候,最好不要涉及到业务细节,第一这样会暴露你公司具体的业务,或者是一些想法,例如:

“我该怎么去爬xxx网站的什么信息?”
“我想在网站的主页上,添加一个什么东西,应该怎么实现?”

第二有些带有业务的问题会让回答者听不懂,因为毕竟隔行如隔山。所以这需要提问者对遇到的问题技术化。

善于提炼

在一些提问中,感觉提问者再看一遍,估计都看不懂,这就很尴尬了。其中有些提问很长,然而却没有踩在点子上。所以对于程序员来说,不光要提高编程的能力,更需要提高的是一些软技能,比如总结归纳能力。

别让人帮你写代码

哈哈,这个听着有些不可思议,但是的确还是会遇到,比如这样的问题:

“我要实现xxx功能,用这个语言怎么实现?”
“这个好像没有现成的方案,怎么办?” “自己写代码实现呗?” “怎么实现?”

这个常见于一些不会代码,或是初学代码的;比如运维问一些问题,然后你回答说要自己实现,然后思路也讲清楚了,这时候别人说:“我是运维,不会写代码”。所以不要这样问问题,大家都忙,没人忙你写代码。

能拷贝的别截图,能截图的别拍照

先说拍照,有些现象的确是语言不好描述,所以用图片可以一目了然,但是请尽可能截图(这里说尽可能,因为有些“公司”不允许上外网,或是QQ,所以只能手机,这种情况你就赶紧离职吧),而不是拍照,因为首先是清晰度不够,也可能结果文字太少。所以能截图的别拍照。另外,截图的时候,请马赛克掉一些私有信息。

再说截图,特别是对于代码类的问题,能拷贝代码最好,因为有些问题可能别人不是一眼能看出来,可能需要自己运行一遍,如果是截图,肯定没人愿意照着写一遍的。所以能拷贝的就别截图。

要有上下文

有的问题来的很突兀,根本没有上下文。一个正确的方式是,在上面场景下,遇到了上面问题,然后做过什么排查,这样别人才能了解整个来龙去脉,也能提高沟通的效率。而且最好提供一些必要的信息,例如版本信息,平台信息,硬件信息。这些我们在给GitHub上提issue的时候,也同样适用。

性能测试数据的参考性

这个遇到的还是挺多的,最常见于这样的一些问题:

“xxx单机能支撑多大的数据量?”
“xxx的吞吐量怎么这么低?”

最大的问题就是有些问题的答案是在特定场景下的,就如上面这样的问题一样,这些跟你的硬件配置,以及你运用的方式有关,别人也只能在自己的场景下给出一个参考值。具体的还是需要自己在特定场景下实践而来。

集体讨论别小窗

这个常见在QQ群或是微信群里面的提问,突然就来一个小窗或是私聊。我认为技术应该是共享的,你遇到的问题大家也可能有参考的意义,而且有些问题大家可以群策群力,这样也会更有效率。

结论

现在衡量一个程序员,并不是单一得看技术,技术只能决定一个人的下限,一些软技能才能决定一个人的上限。我们可以从我们最常的提问开始,慢慢地提高自己的软技能。

所以,从今天开始,慢慢地做一个会提问的程序猿吧☺☺☺☺☺☺

另外,如果你还遇到什么让你无语的提问,请告诉我,我可以补充上面。


转载请注明出处:http://www.opscoder.info/question_for_coder.html

别人正在读
【上一篇】 聊聊docker监控那点事儿
【下一篇】 深入Golang之slice
其他分类: