美文网首页编什么程
程序员不仅要学会百度,更要懂得提问

程序员不仅要学会百度,更要懂得提问

作者: 沙蒿同学 | 来源:发表于2019-01-05 17:16 被阅读1次

前些天在学习EasySwoole的时候看到了开发文档上关于提问的艺术,以下是结合了自己开发过程中遇到的问题列出了几点建议:

  1. 遇到问题别慌,且看报错提示,有报错信息进行一系列的排查,确定错误范围
  2. 利用自己有限的、掌握的知识体系,认真思考出现该问题的原因
  3. 如果上两步没解决问题,你可以进行百度了

客观:从开发手册或者文档中寻找问题的解决方案
粗暴:复制报错信息,直接百度,查到相似甚至一样的问题,把答案直接ctrl+v,成功解决
理想:确定错误范围,列出出现问题的情况列表,定点、有步骤的解决问题

  1. 询问大佬,怎么问呢?下文会说道
  2. 做好解决不了的心理准备
  3. 换一种解决方式,重复第一个步骤

以下是流程图:


个人信息管理系统(修改).png

认真思考问题的解决方案

当问题特别明显,只要有动脑就能解决这个问题时,没有人会喜欢回答这种基础问题,
例如:

  • 当你知道echo "hello world"语句,却不知道怎么输出"EasySwoole天下第一"时
  • 当你知道如何移动文件到/tmp目录,却不知道移动到指定日期的目录时
  • 当你知道mysql有解释器可以查看是否有使用到索引,却不知道如何看组合索引是否有效时 当报错信息出现的情况,却不知道去搜索时

搜索问题的解决方案

同样,当一个问题直接搜索就能出现答案,却一直拿出来问时,没有人会给伸嘴党喂饭,这是对回答者的一种侮辱
请在提问的时候,先尝试在搜索引擎中搜索,或许答案就在第一页

开发手册

当你在搜索引擎没有找到一些 生僻/不知名/不公开 的一些问题时,或许你得考虑下是否有一份文档还没有看完

  • 既然搜索引擎都找不到的问题,那你问对该项目毫不知情的人有什么用呢?
  • 既然有开发文档,那你为什么不尝试下在开发文档中发现这个问题的解决方案呢?

问题的基础

千万不要问你对该问题一无所知的问题,当你没学过php时,请不要问为什么if(){}括号里不加条件就会报错的问题
当你提出一个问题的,该问题相应的基础你应该要会,否则你会被人耻笑.
例如:

  • 当你没看完新手教程,问swoole为什么运行之后改代码要重启
  • 当你没看完面对对象,问为什么不use命名空间就会报错 当你连接websocket时,问为什么会发起一个http请求

排查问题

在提问之前,首先你得学会排查这个问题,确定问题的一个大致范围.否则会让人无从回答.
例如: 当你上传文件这个逻辑出现问题时,你问:"为什么我没法上传文件",是没有人能回答的了你的,你得自行排查,直到一个小范围. 例如:

  • 上传文件,选择文件之后,发生错误.
  • 选择文件成功,发起http请求时出错.
  • 发起http请求成功,到后端接收不到文件信息.
  • 接收文件信息成功,无法保存上传文件.

将一个大问题分解成一个个步骤,自行测试每个步骤.直到某个步骤出错(如果每个步骤都有错,那就一个个步骤慢慢解决)

提问

在提问时,我们应该避免以下几种问法:

  • 在吗?
  • 大神救我
  • 你好
  • 大佬求带
  • 有没有人用过xxx(说一个框架,或者一个不知名的项目)
  • 大神这个是怎么做的(直接要代码)
  • 可以问个问题吗?(不说问题,等别人回答可不可以)
  • 这个代码有什么错?(发出一串代码,不说问题)
  • 这个代码怎么改?(发出一串代码,不说怎么改,不说问题)
  • 为什么我这个有问题?(截图一段"xxxxx"自行判断输出的错误信息不截图代码)
  • 能不能咨询一下(某种语言,某种框架,某种项目 一个大范围的概念)

正确的提问包含以下几点:

  • 描述准确,准确描述你要实现的功能,问题出现之前以及出现之后的现象
  • 截图准确,不要截一些和问题无关,或者对解决问题没有任何帮助的图
  • 态度端正,虚心请教,没有人有义务帮你.

问题可分为以下几种:

  • 概念问题,某种抽象概念的不理解
  • 代码问题,代码出现非预期的情况,报错等
  • 框架问题,出现框架报错,运行出错,运行逻辑不理解等问题
  • 逻辑问题,对某种功能实现的逻辑不理解
  • 性能优化问题

每种问题的提问方式如下:

概念问题

概念问题,我们必须要描述准确,并且有自行了解过概念的基础,例如:

  • 我不太清楚为什么要用面对对象,直接函数封装不行吗?
  • 为什么协程要是用mysql连接池 等

代码问题

代码问题,我们需要截图代码,以及报错信息,并且说明自己要实现什么功能,例如:

  • 我想要实现文件上传,我已经尝试了修改权限,但是不知道为什么代码会报错(附上错误信息,以及代码) 等

框架问题

框架问题,我们需要详细的说明框架的哪个部分,以及发生了什么问题,例如:

  • 使用EasySwoole时,发现在生产模式下,调用配置文件错误
  • 使用tp3.2时,上传文件总是报文件夹不存在,但是文件夹存在
  • 使用tp3.2时,session生存时间无法配置

逻辑问题

逻辑问题,我们需要详细描述某个功能的哪部分逻辑,例如:

  • 请问session过期是怎么实现的?
  • 请问mysql连接池是怎么实现的?

性能优化问题

性能优化问题,需要先确认慢的地方,然后截图,例如:

  • 我发现这段代码执行特别慢,有什么错误吗?(附上代码截图)
  • 这段sql我想实现xxxxx查询,但是非常慢,能优化吗?(附上sql语句,表结构,解释器截图)

原文作者:------ 沙蒿 ------
关注我吧《程序员的碎碎念》作者,不会ui的前端不是好后端
不忘初心,牢记使命,对于文章内容有疑问的或者深入交流学习的朋友可以加我QQ:2283743369

相关文章

  • 程序员不仅要学会百度,更要懂得提问

    前些天在学习EasySwoole的时候看到了开发文档上关于提问的艺术,以下是结合了自己开发过程中遇到的问题列出了几...

  • 商人“抬头看天”要看什么?

    农民干农活,不仅要懂得埋头种地,更要懂得抬头看天,才能顺应农时,丰产丰收。商人经商也同样,不仅要埋头苦干,更要时常...

  • 夜读剽悍一只猫文(123篇),有了十句心得

    01 你不仅要学会做加法,更要懂得做减法,才能更深入的认识自己。 02我挣钱不仅要养活自己,还要养活理想。因为我是...

  • 夜·读

    我们不仅要仰望天空,更要学会俯视尘埃。

  • 夜·读

    我们不仅要仰望天空,更要学会俯视尘埃。

  • 做人太难

    做人太难了 不仅要分辨黑与白 还要留意灰与暗 不仅要遵守显规则 更要懂得潜规则

  • 警戒

    经常努力的人要警戒压力的反弹 放松一次的人要记得及时收心 要学会释放压力 要学会积蓄动力 要学会享受生活 更要懂得...

  • Vue<瀑布流加载效果>

    效果图: ?身为程序员不仅要'造轮子'玩,更要学会找轮子玩。今天有点闲,就想着学学怎么实现瀑布流效果,找了找发现用...

  • 学会提问第四章--哪些词语意思不明确

    《学会提问》 不仅要明晰论点、论据,更要了解存在歧义的关键词。一般而言,寻找关键词常用的方法有以下: 学习批判性思...

  • 中国好汪太银说人要学会低头

    中国好汪太银说人要学会低头 人活在世, 要学会平语近人, 要学会让步, 更要懂得为啥低头, 头且常常高昂首。 人生...

网友评论

    本文标题:程序员不仅要学会百度,更要懂得提问

    本文链接:https://www.haomeiwen.com/subject/ijdplqtx.html