作为程序员,应该如何高效提问

351 阅读5分钟

前言

作为一名合格的程序员,我们都知道一个程序员的能力普遍由编码能力 + 软实力组成,其中编码能力不加赘述,这里主要聊一下程序猿的软实力中的沟通能力。

在我在大一开始学习编程的时候,我也存在各种常见的问题,如

  • 手机拍代码、手机拍程序运行的过程
  • 不带个人思考的提问

我想这些都是我们作为初学者会犯的错误,幸好当时遇到了严厉的“老师”(带我的学姐),学姐严肃的提醒我不可以这样做(轻微批评,哈哈),点醒了我,让我意识到了一个好的提问“技巧”,是多么有价值。

在后续学习过程中,遇到了一篇引起共鸣的神文 提问的智慧 - Github,当我遇到低效的提问时,只能感慨这篇文章的含金量。那么进入正题,作为程序员,我们应该如何高效提问,来高效的获取答案呢?

你在解决什么问题?

在我实习的期间,我在公司的技术社区中发现了一篇有趣的文章,是一位资深工程师写给组内的实习生同学的建议,通读过去,有意思的一个点是,这位老哥把公司中遇到的问题大致分为了三类。

  • 你技术能力内可以解决的问题:只要你稍微努力一下,就可以在google或百度中寻找到解决方案。
  • 你技术能力内无法解决的问题:属于技术问题且你清楚的明白自己不会。
  • 与技术能力无关的问题: 比如开项目权限、需要其他组提供数据接口等情况。

至今,我依旧认同他的分类,当我们在工作过程中遇到问题,我们要做的第一步并不是马上去解决问题,而是去快速的分辨问题。针对不同的问题分类,采取不同的措施会让我们事半功倍。

如何在遇到问题时高效提问

程序猿应该有独立解决问题的能力,不仅要从日常开发中积累经验,还要有自己解决问题的方法,比如

  • 学会使用Google以及百度
  • 学会查看对应的技术文档
  • 学会查看开源仓库的issue
  • 学会查看项目源代码(这个可能🤔技术大佬用到的会比较对,因为一般的问题不至于到看源码的地步)

在我们初学阶段往往很难区分网上查找到的资料的好坏,没办法只能一个个尝试,慢慢积累经验。如果自己尝试解决过,但是并没有得到有效的解决方案,那么这个时候,我们就需要去尝试寻求其他帮助,技术群提问、单独咨询技术大佬等等。那如何更好的向大佬们提出问题呢?有下面几点需要注意的地方⚠️

清晰的表述问题

如果你的问题是只是1 + 1求和,但是你提问时描述为,1与1进行运算,那么我想接受你提问的人也会是一头雾水,那么你就不能怪技术大佬对你爱搭不理。

清晰表达问题的同时,我们还需要附上我们自己的理解,以及自己解决问题的过程,表面自己是思考过了的聪明人,如果你既没有自己的理解,同样也没有自己尝试解决问题,那么我相信,你一定会被鄙视, 如果你是这样的人,这个智能网站将会帮到你 -> 让我帮你百度

在清晰表述问题的同时,还有一些细节需要注意。

引用站内掘友文章中的几句话 ---

  • 先用一句话点明你的问题;
  • 说明问题发生的环境(发行版、版本号、应用环境等);
  • 表述问题的前因后果,即问题是如何产生的。陈述事实,说重点,别废话,别瞎猜;
  • 你尝试采取了哪些解决措施及反馈结果;
  • 必要时,请贴出你的代码、配置或操作流程;
  • 不要过于自信地想当然/先入为主(如:我的操作没问题、我的配置没有错、我发现了 Bug……)
  • 交流问题时,尽量不要有错别字;

作者: 小小杨树 《如何高效提问》

让大佬顺滑的理解你的问题

我常常见一些技术群的群友,他们在群里尝试提问,在他描述问题时,我对他的问题还有一些兴趣,但是当他发出用手机拍出的模糊的没有注解的代码,我开始头疼并且逐渐失去解答问题的兴趣。所以,当我们提问涉及到需要图片的问题时,我们要学会使用截图软件,来获得一张清晰的图片,来方便大佬们更快的理解问题。当我们提问涉及到视频讲解流程的问题时,学会灵活使用录屏软件,来获取一个清晰的视频,而不是抖动的手机录像。

安利一个截图软件 -- Snipaste ,录屏我都是使用飞书自带的工具,如果有更好用的软件,欢迎评论区安利。

结语

本文主要粗略的讲述了在遇到问题到解决问题中,可能会遇到的一些问题,只是有感而发,向各位“道友”分享我这浅薄的观点。希望能对大家有所帮助。希望大家可以通读一下 提问的智慧 - Github ,相信我,这会很有帮助。其实这个技巧可以拓展到更大的地方,比如如何清晰的与他人表述你的观点。。。

祝各位道友,武运昌隆