专栏名称: StuQ
实践驱动的IT教育平台
目录
相关文章推荐
51好读  ›  专栏  ›  StuQ

程序猿的正确提问方式!

StuQ  · 公众号  ·  · 2017-08-07 20:35

正文

来源| 猿哥
编辑|Judy

程序员在工作中会遇到形形色色的问题,提问题是一种能力,如何问问题是一门学问,猿哥在这里分享一些感受和方法。

问题类型和提问技巧
有“标准”答案或明确定义

这类问题就不要问了,自己找答案。


例如:

① 考研都考什么?计算机软件资格水平考试都考什么?

这种就是属于有“标准”答案,自己去找考试大纲就可以。

② sprintf 参数都是什么意思?

这种就是属于 有明确定义的,可以通过手册、书本、搜索获取答案。

无标准( “思考”型、“实践”型、“排查”型、“经验”型)

1.  “思考”型

一些算法题或者需要提供解决方案的。

例如:

如何实现一个随机播放音乐,要求能够方便查看上一首播放的是什么,方便交换即将播放的歌曲顺序?

这种问题一般要注意:

  • 先搜索,一般常见的算法或问题,别人可能遇到过,已经分享出来了。

  • 问的时候注意先提供自己的思路,如果是需要提供解决方案的,那么要把环境问题同时说明清楚。

  • 最好是到开放型的地方,比如论坛、QQ群等咨询讨论,多个人讨论,方便开拓思维。

2.  “实践”型

例如:

学校那些编程实践作业或试题,就是那一类提问题的人甚至都不理解问题是什么,就只要答案的,而且还需要解决问题的人写代码。

针对这类问题的建议,就是怎么样把题目细化,转换成思考型问题,然后按照思考型问题提问。如果没有的话,除了亲朋好友基本上没人能帮忙解决,谁有空编写一大堆代码然后把文件给你,为了达到目的或许付费请人帮忙是可行的。

3.  “排查”型

这类问题很多,例如代码或服务器出现问题。

举个例子:

  • 程序部署到Linux上后,页面出现中文乱码,是不是中间件的配置出现问题了?

  • 服务器负载、内存、CPU没问题,远程SSH链接也正常,但是网页打开很慢,可能是什么出问题了?

这种问题一般要注意:

  • 找找Web服务器日志、系统日志的错误信息,或者程序报错信息。先通过错误信息搜索,别人可能遇到过,已经分享出来了。

  • 问题描述清楚,把环境同时说明清楚。

  • 这类问题,经常需要断点调试、各种测试才能最终定位问题。先尝试在论坛或QQ群问,大家会提供的都是一些经验想法,去尝试下,如果还是解决不了,那么只能就是针对性找朋友帮忙解决,甚至需要授权登录服务器或者远程连接到你的电脑,所以这种可信任的朋友就看你能不能找得到。“朋友”是一种资源,平时注意积累。

4.  “经验”型

这类问题,我遇到最多。典型的就是问职业规划,专业选择。能不能学会,如何学习,该不该考研?还有就是问经验,比如各类考试经验。

  • 这类问题,可以选择跟导师、师兄师姐、职场前辈或者网络上相关领域牛人咨询。

  • 问的时候,把自己的情况和背景信息介绍清楚。

  • 这类问题不要经常问,大概搞清楚后,做完选择就开始认真去学习。问多了整天就浪费时间做选择、学习方法、总结经验的,其实对真正学习知识帮助有限。

比如有些人整体就在问到底学习Java用哪一本书好,有的说这本不好。其实如果有人推荐了一本书,你就先看,等看一部分自己就有感觉了,实在看不下去再换,如果看得下去就先不要换了,认真去学习才是最重要的。

问问题其它注意事项

1、不要问调查式问题, 特别是向陌生网络朋友提问问题,应该先自报一下自己的情况和背景,切忌调查式的提问。别一上来就开始调查:你是学什么的?你做哪方面开发?你在北京吗?...

2、不要先问: "在吗 ?" 或者很粗糙的问题,应该直接把问题具体化。

因为你不确定对方什么时候会回复,如果你发这种消息过去,对方看到可能直接忽略不回复或者根据粗糙的问题给一点建议,或者回复一个:在啊。然后对方回复的时候,你又不在线或者没办法马上跟对方聊上,那么对方还在等你的下一步消息,你半天以后才回复,来回几次,对方就会觉得你很烦。

我最烦的问题是:问了一个在吗,然后猿哥回复过去之后,对方就不见人影,等了半天才突然上来,然后又来了一个很粗糙的问题 或者 调查式问题:你做哪方面开发?真想骂过去,你妹的,你谁啊?我又不认识你,你能不能先自我介绍一下,然后直接描述清楚问题。

3、周全准备问题。  根据上述问题分类,描述清楚问题的背景、环境等信息以及你的理解和思考。

提问题是一种智慧,每个人都应该学会问问题。