主页 程序员该如何提问技术问题?
文章
取消

程序员该如何提问技术问题?

你好,我是猿java。

作为程序员(特别是经验不多的初级程序员),在日常中难免会遇到技术问题,遇到问题后经常会通过提问来寻求帮助,但是提问能否被回答,或者提问能否得到有用的回答,往往取决你提问的方式。 于是,今天我们就来聊聊,程序员该如何有效的提问?

解决技术问题的方法

解决技术问题的方法有很多,下面给出了几种有效的主动解决问题的方法:

1.查资料

查资料是程序员遇到问题后的首选方法,这里说的资料,大多数是指网络资料。现在互联网信息如此发达,关于技术的论坛也数不胜数,通过搜索引擎去查询相关的案例,寻求解决的思路。

查资料可以锻炼程序员的两个主要能力:

锻炼程序员关键词的选取能力

同样一个问题,关键词不一样,查询出来的结果匹配度可能不一样。

1
2
3
 举个例子:想在 mac系统上安装多个版本的 jdk
 关键词1:如何在mac系统上安装多个版本的 jdk
 关键词2: mac 多jdk 安装

推荐关键词2。对于很多初级程序员,大多数会陷入 “总想输入一条语义完整的语句” 去搜索这样一种困境。总认为,关键词语义越完整搜索的结果就越匹配, 其实不然,何为关键字?就是起到关键作用的字或词,所以,搜索尽量采用关键字词的方式。

锻炼程序员主动学习的能力

查资料是一个主动学习的过程,可以通过把程序员脑海中零碎的技术关键字,一点一点串起来,最终解决问题。这个通过关键字去串整体的摸索过程就是学习和进步的过程。对于程序员的能力提升至关重要。

2.讨论

讨论也是程序员遇到问题后容易选择的方式,因为程序员很多时候是团队合作,遇到问题时可以找身边的同事一起讨论,看看大家有没有遇到过类似的问题,获取讨论的关键字,找到解决问题的思路。

3.提问

提问同样是程序员遇到技术问题时比较好的解决方式,我们可以选择合适的场景通过提问的方式寻求帮助。然而,实际工作中,面对”提问”这个看似很平常的举动,却存在很多的问题,下面总结几个常见的例子:

提问态度不太友好;

害怕问题太low被笑话;

担心技术大牛不搭理,有失面子;

遇到问题不假思考到处乱问;

问题描述不清楚;

如何提问

提问是一门玄学,一个好提问往往能勾起他人回答的欲望。那么,作为一名程序员,特别是初入职场的初级程序员,遇到技术问题时该如何提问呢?下面总结了几个要点:

1.提问的对象

熟悉的人,比如:同事、领导、熟悉的技术牛人等

陌生人:技术群,技术大牛,技术论坛等等

2.提问前的思考

遇到问题,一定要自己先思考,尝试去解决,只有在尝试还无法解决的情况下,才选择提问寻求帮助,切勿养成遇到问题就不假思考到处提问的习惯。

因为很多问题,只要自己认真分析报错信息,通过查资料是可以解决的。如果一味的提问可能引起他人的反感,自己也因缺乏思考,可能收获不大。只有经历多次尝试后还无法解决的问题,可能他人不经意的一句话就让你茅舍顿开,问题顺利解决。因为思考过,很容易发现自己当初遗漏点在哪里,下次遇到类似问题就可以轻松搞定,这就形成了行业里所谓的经验了。

3.问题描述

提问的关键是需要把问题描述清楚,经常在一些技术群里面遇到类似下面的提问:

喂,有人可以解决个问题吗?

有大牛在吗?能帮忙解决个问题吗? 然后就没有下文了…..

为什么我的服务器突然死了?有人帮忙吗? 然后也没有下文了…..

为什么我的 IDEA 启动不了? 然后还是没有下文了…..

如果是你,遇到这样的提问,你有回答的欲望吗?

所以,提问一定要注意方式,把问题简明扼要的描述清楚,切勿长篇大论。另外在描述问题的时候,其实也体现了提问者对问题的思考和总结,下文给出了一个比较实用的提问模板:

1
2
3
4
场景:描述遇到问题的上下文,让被提问者能快速了解背景
问题: 遇到的问题是什么?
报错细节:有没有错误信息,截图,这个可能是侦破问题的线索
补充描述: 可以做一些额外的补充

下面以”IDEA 启动失败” 为例来讲解怎么提问:

1
2
3
场景:mac系统 本地 IDEA 开发 Springboot web项目
问题:Springboot 启动报错
报错细节:把IDEA中的报错堆栈信息贴出来

这样被提问者拿到你的提问就知道了大致的背景:在本地mac的IDEA里面开发springboot web项目。 根据报错堆栈信息里的报错详情和对应的代码行号, 这样被提问者可以结合自己的经验,给出可能性的意见。

因此,提问可能就会得到多个 回复建议。

提问者再根据回复进行筛选:哪些是自己尝试过的方法,是否还有深挖的可能;哪些是自己没有想到的可能性,可以尝试看问题能不能得到解决。

注意:提问得到的回复很多时候是一个建议,这个是编程世界里很常态化的回答。

有了建议,提问者就可以根据建议去验证问题是否能得到解决。

总结

  • 提问前一定要自己思考,主动去寻找解决方案
  • 向他人提问,一定要注意态度的谦卑,因为这可能是获得回答的一个前提哦
  • 向陌生人提问时,注意信息安全
  • 不要幻想回答者能完全解决问题,回复只是多一些 idea,拓展解决问题的思路
  • 要敢于提问,不要害怕被拒绝,成长的路上一定会遇到困难
  • 要多总结提问的技巧,让提问能勾起他人的回答欲望

鸣谢

如果你觉得本文章对你有帮助,感谢转发给更多的好友,关注我:猿java,为你呈现更多的硬核文章。

drawing

分布式算法:Paxos 是如何达成共识的?

Redis 6.0 零基础快速入门教程