首页 > 其他分享 >为什么你在群里提的技术问题没人回答?

为什么你在群里提的技术问题没人回答?

时间:2023-04-28 17:33:23浏览次数:35  
标签:为什么 群里 遇到 回答 问题 XX 日志 提问

作为一个程序员,把代码写好是本分,但仅仅是写好代码是不够的,工作的过程中总免不了要与别人打交道。几乎隔一段时间,我就会发现有些人身上出现下面的这两个问题。第一个就是不知道怎么提问,第二个就是有工作对接的时候,有用的信息不实时收集,多次对同样的问题进行提问。

今天来说一说如何提问的话题。说到这里,有点同学肯定在想,扯什么扯,提问谁不会呢,十万个为什么从小就听,回答问题不一定会,提问谁还不会呢。

可现实真的不是这样的,其实关于如何提问,这个问题由来已久,而且很多人都对此有过总结,甚至有一本书就叫做《提问的艺术》。这里所说的提问当然不是平时生活中所说的“你吃了没有?”、“吃的什么?”这么简单的问题。指的是专业方面的问题,作为程序员来讲,那就是关于开发、部署等方面的问题了。

我先来举几个糟糕的提问的例子:

有的同学在群里提问,上来就是:

1、接口返回404错误,是什么原因?
2、dubbo 服务启动不了,可能是什么原因呢?
3、昨天还好好的,今天突然数据库就连不上了,有没有人知道怎么回事?

先别笑,这可不是开玩笑,相信你肯定也碰到过类似的提问,碰到这种提问除了让人啼笑皆非外,就只能是忽略了,当做什么都没看见。没有质量的提问就相当于垃圾信息,就是噪音,谁会理会噪音呢,除了是你的上司、朋友,可能会劈头盖脸的教育一通,旁人基本上就忽略了。

这种情况多发生在刚刚入门的同学身上,但也不全是,有些工作了好几年的同学也好不到哪里去。问题都提不好,我也不认为代码能好到哪里去。

记得,有一次,微信一下子弹出了好几条消息,正好挡住了我正要操作的内容,本来就心生不爽,点进去发现是一个同学正在群里问问题,5、6条消息发出来,仍然看的人一头雾水,不知所云。

这不废话吗,提问当然是遇到问题了。尤其是做开发,从刚刚入门的那天起,几乎每天都会遇到各种各样的问题。但是,并不是所有的问题都要找你的同事、群友来问的。

遇到问题第一步:看 IDE 提示

拿开发来讲,碰到的问题就是编译问题、运行时问题、逻辑,当碰到问题的时候,IDE 一定会给出提示,大部分问题都会根据提示自然而然的解决,例如弱智的少加了一个分号、少加了 @Override

遇到问题第二步:看日志

查看错误日志,有一些错误日志可以很明显的给出解释,例如 NPE 等等

遇到问题第三步:找 Google

搜索引擎了解一下,这可是一个巨大的宝藏,尤其是在今天,你遇到的所有问题几乎都有其他的人遇到过,除非你是在做一个从来没有人碰过的领域。建议选择 Google ,百度搜索不太合适开发。

遇到问题第四步:提问

只有前面几步都试过了,还是没有头绪,才采取这一步,向同事或者群友提问。到了这一步,就涉及到了今天说到的提问的方法。

1、讲清楚问题的背景,包括环境配置、版本说明,例如操作系统版本、Java 版本等,有些问题可能会涉及到 IDE ,也要说清楚;

2、问题的相关错误信息,包括日志信息、结果输出信息;

3、你曾做过什么尝试,针对每种尝试的不同结果是怎么样的;

4、如果是比较复杂的情况,看看能不能抽象出一个简单的模型,将复杂的问题简单化,方便其他人可以简单的理解,可能会更快的得到别人的回答;

5、还有一点也很重要。可能一个问题会有好多人回答,其中的一个或者多个方法可能行之有效的,那么,你在解决这个问题之后,一定要给回答者反馈。例如如果是在群里,可以@回答者,这个问题已解决,用的是什么什么方法。这样一来,回答者会因为帮人解决了问题而有一些优越感,其他人也会了解这个过程,以后如果遇到相同的问题,也就知道怎么解决了。而提问者,做一个总结,也会给人一个良好的印象。如果别人回答完,就没动静了,至少我下一次再碰到他提问,就不会回答了,对,就是这么小肚鸡肠。

举个例子,假设遇到了一个 jvm OOM 的问题,并且经过一系列的日志分析、搜索引擎的搜索之后,仍然没有解决。那么就开始到群里提问。提问的第一步可能是这样的:

各位好,我现在遇到了一个 jvm OOM 的问题。现在的系统环境是这样的:

JDK 版本为 1.8 ,服务器为 CentOS 7.0 64位,机器内存 8 G,8 核,使用的垃圾收集器为 CMS,设置的 JVM 参数为:

-Xmx2688M -Xms2688M -Xmn960M -XX:MaxPermSize=512M -XX:PermSize=512M -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark -XX:ErrorFile=/app/jvmlog/hs_err_pid%p.log -XX:HeapDumpPath=/app/jvmlog -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintClassHistogramBeforeFullGC -XX:+PrintClassHistogramAfterFullGC -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9009

出现的现象是什么情况的,然后把相关的日志信息提供出来,如果有必须的话,要提供 dump 文件。

然后把你做过的尝试以及尝试之后的结果一一说出来。这很重要。

然后把你猜测可能的原因说出来,例如项目中有 CPU 密集型任务,或者最近增加了某某功能可能产生什么影响。

这样提问之后,其他同学才能根据你给出的信息了解一个大致的情况,这时候,热心的同学或者有类似经验的同学才会根据你所给出的信息进行进一步分析,这样才能一步步得出解决方案。

禁忌

1、如果有问题,直接按照上面说的方法把你的问题发出来就好,不要上来说一些无关痛痒的话,比如:

有人能帮我解决一个问题吗? ==> 对不起,没有

有大佬在吗? ==> 对不起,不在

这个问题不光在提问的时候适用,在其他场合下同样适用,有事情说事情。不然除了浪费双方的时间外,没有任何好处。

2、不要预设前提,比如太相信自己的某些功能或配置一定没有错,相信我,大部分错误都是很愚蠢的。

最后,各位同学不妨到我的公众号里互动一下 : 古时的风筝 ,进入公众号可以加入交流群

为什么你在群里提的技术问题没人回答?_错误日志

人生没有回头路,珍惜当下。



标签:为什么,群里,遇到,回答,问题,XX,日志,提问
From: https://blog.51cto.com/u_15717245/6235039

相关文章

  • Provisional heads are shown、NullPointerException空指针异常?堆栈与队列的区别?Java
    Provisionalheadsareshown排查是否插件拦截,我的以前没有这种,所以排除本地网络节点问题,连接不到图片服务器,以下是解决方法:1.进入到C盘Windows文件夹System32/drivers/etc目录下,打开hosts文件,绑定下2.改下本地dns为公共dns网络节点导致的问题,一般为运营商导致,产生问题的原因为......
  • Makefile 只修改了.h头文件,编译为什么不起作用?
    M,-MM,-MMD,-MF,-MT区别https://programmer.group/gcc-m-mm-mmd-mf-mt.htmlRef加-MMD选项解决头文件编译生效https://cloud.tencent.com/developer/article/1837814gcc预处理选项https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html......
  • 爬虫为什么需要ip
    爬虫需要使用爬虫ip主要是为了解决以下问题:1、反爬虫机制:许多网站会设置反爬虫机制来防止爬虫程序的访问,例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制,使得爬虫程序更难被检测到。2、访问限制:有些网站可能会对某些地区的IP地址进行限制,如果你的爬虫程......
  • 面试官:什么是内部类?|这么回答就妥妥的
    关注“Java后端技术全栈”回复“000”获取大量电子书本文内容什么是内部类?我们将一个类A定义在另外一个类B中,那么这个类A就叫内部类。为什么需要内部类呢?有三点原因:内部类方法可以访问该类定义的所在的作用域中的数据,包括私有的数据。内部类可以对同一个包中的其他类隐藏起来。当想......
  • 我喜欢 Python,因为它可以帮助我回答小问题
    5-10行代码可能非常有用一遍又一遍,我看到这个教训适用。只需几行Python就可以让我的生活更轻松或回答一个简单的问题。养成用代码快速回答自己的好奇心的习惯。它将使您成为更好的开发人员,并且您会在此过程中获得很多乐趣!骰子分布今天早上,我在想棋盘游戏。在这个游戏中,您掷......
  • 为什么FIFO 第一轮读出数据正确,第二轮读出数据的时候读出的是x?FIFO 读出数据有误
    仿真如下所示,第一轮写入12345678读出来都是对的,后来写9 1011...等,读出来就是x了,这是为什么呢?  这说明指针在指到FIFO尽头以后出了什么问题。。。。。 最后发现是这里指针的位宽是3,结果定义为了4位,这样的话,当你指针累计到111的时候并没有返回到000,而是指到......
  • 线上问题排查回答(转载)
    面试官:「你是怎么定位线上问题的?」这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。下一次我应该会按照这个思路去答:1、如果线上出现了问题,我们更多的是希望由监控告警发现我们出了......
  • 编程开发8大语言详解,为什么Java是我最推荐的?
    一.前言很多没有接触过编程语言的同学,都会觉得编程开发特别高端和神奇,担心理解不了更担心学不会。当然,也有人会认为,你既然是做编程的,那么你应该什么都会,什么软件的开发都能完成,这是平哥经常听到的两种声音。在此,平哥需要给大家科普一下,编程确实改变了这个世界,但这是所有编程人......
  • 我用这个代码识别简单的图片为什么识别不出来?
    今日鸡汤我家襄水曲,遥隔楚云端。大家好,我是皮皮。一、前言前几天在Python黄金交流群【。】问了一个Python图像处理的问题,下图是截图:输出的结果是空白:二、实现过程这里【走进未来】给了一个可行的代码,importddddocrocr=ddddocr.DdddOcr()withopen('1.png','rb')asf:img_b......
  • 为什么以及什么时候 React 会渲染一个组件
    组件显示到屏幕之前,其必须被React渲染。在您触发渲染后,React会调用您的组件来确定要在屏幕上显示的内容。“渲染中”即React在调用您的组件。在进行初次渲染时,React会调用根组件。对于后续的渲染,React会调用内部状态更新触发了渲染的函数组件。这个过程是递归......