程序员该如何提问技术问题?
你好,我是猿java。
作为程序员(特别是经验不多的初级程序员),在日常中难免会遇到技术问题,遇到问题后经常会通过提问来寻求帮助,但是提问能否被回答,或者提问能否得到有用的回答,往往取决你提问的方式。
于是,今天我们就来聊聊,程序员该如何有效的提问?
解决技术问题的方法
解决技术问题的方法有很多,下面给出了几种有效的主动解决问题的方法:
1.查资料
查资料是程序员遇到问题后的首选方法,这里说的资料,大多数是指网络资料。现在互联网信息如此发达,关于技术的论坛也数不胜数,通过搜索引擎去查询相关的案例,寻求解决的思路。
查资料可以锻炼程序员的两个主要能力:
锻炼程序员关键词的选取能力
同样一个问题,关键词不一样,查询出来的结果匹配度可能不一样。
1 | 举个例子:想在 mac系统上安装多个版本的 jdk |
推荐关键词2。对于很多初级程序员,大多数会陷入 “总想输入一条语义完整的语句” 去搜索这样一种困境。总认为,关键词语义越完整搜索的结果就越匹配,
其实不然,何为关键字?就是起到关键作用的字或词,所以,搜索尽量采用关键字词的方式。
锻炼程序员主动学习的能力
查资料是一个主动学习的过程,可以通过把程序员脑海中零碎的技术关键字,一点一点串起来,最终解决问题。这个通过关键字去串整体的摸索过程就是学习和进步的过程。对于程序员的能力提升至关重要。
2.讨论
讨论也是程序员遇到问题后容易选择的方式,因为程序员很多时候是团队合作,遇到问题时可以找身边的同事一起讨论,看看大家有没有遇到过类似的问题,获取讨论的关键字,找到解决问题的思路。
3.提问
提问同样是程序员遇到技术问题时比较好的解决方式,我们可以选择合适的场景通过提问的方式寻求帮助。然而,实际工作中,面对”提问”这个看似很平常的举动,却存在很多的问题,下面总结几个常见的例子:
提问态度不太友好;
害怕问题太low被笑话;
担心技术大牛不搭理,有失面子;
遇到问题不假思考到处乱问;
问题描述不清楚;
如何提问
提问是一门玄学,一个好提问往往能勾起他人回答的欲望。那么,作为一名程序员,特别是初入职场的初级程序员,遇到技术问题时该如何提问呢?下面总结了几个要点:
1.提问的对象
熟悉的人,比如:同事、领导、熟悉的技术牛人等
陌生人:技术群,技术大牛,技术论坛等等
2.提问前的思考
遇到问题,一定要自己先思考,尝试去解决,只有在尝试还无法解决的情况下,才选择提问寻求帮助,切勿养成遇到问题就不假思考到处提问的习惯。
因为很多问题,只要自己认真分析报错信息,通过查资料是可以解决的。如果一味的提问可能引起他人的反感,自己也因缺乏思考,可能收获不大。只有经历多次尝试后还无法解决的问题,可能他人不经意的一句话就让你茅舍顿开,问题顺利解决。因为思考过,很容易发现自己当初遗漏点在哪里,下次遇到类似问题就可以轻松搞定,这就形成了行业里所谓的经验了。
3.问题描述
提问的关键是需要把问题描述清楚,经常在一些技术群里面遇到类似下面的提问:
喂,有人可以解决个问题吗?
有大牛在吗?能帮忙解决个问题吗? 然后就没有下文了…..
为什么我的服务器突然死了?有人帮忙吗? 然后也没有下文了…..
为什么我的 IDEA 启动不了? 然后还是没有下文了…..
如果是你,遇到这样的提问,你有回答的欲望吗?
所以,提问一定要注意方式,把问题简明扼要的描述清楚,切勿长篇大论。另外在描述问题的时候,其实也体现了提问者对问题的思考和总结,下文给出了一个比较实用的提问模板:
1 | 场景:描述遇到问题的上下文,让被提问者能快速了解背景 |
下面以”IDEA 启动失败” 为例来讲解怎么提问:
1 | 场景:mac系统 本地 IDEA 开发 Springboot web项目 |
这样被提问者拿到你的提问就知道了大致的背景:在本地mac的IDEA里面开发springboot web项目。 根据报错堆栈信息里的报错详情和对应的代码行号,
这样被提问者可以结合自己的经验,给出可能性的意见。
因此,提问可能就会得到多个 回复建议。
提问者再根据回复进行筛选:哪些是自己尝试过的方法,是否还有深挖的可能;哪些是自己没有想到的可能性,可以尝试看问题能不能得到解决。
注意:提问得到的回复很多时候是一个建议,这个是编程世界里很常态化的回答。
有了建议,提问者就可以根据建议去验证问题是否能得到解决。
总结
- 提问前一定要自己思考,主动去寻找解决方案
- 向他人提问,一定要注意态度的谦卑,因为这可能是获得回答的一个前提哦
- 向陌生人提问时,注意信息安全
- 不要幻想回答者能完全解决问题,回复只是多一些 idea,拓展解决问题的思路
- 要敢于提问,不要害怕被拒绝,成长的路上一定会遇到困难
- 要多总结提问的技巧,让提问能勾起他人的回答欲望
学习交流
如果你觉得文章有帮助,请帮忙转发给更多的好友,或关注公众号:猿java,持续输出硬核文章。