• 【一生一芯】Chap.0 IC常用网站论坛门户 & 如何提出一个技术问题 并尝试解决 | 提问的智慧


    前言:我最近新开了一个坑,打算参加第五期“一生一芯”学习计划,刚开始预学习阶段,写了这篇读后感。总结了几位大佬的思想精华和例子,并加上了自己的经历和感悟。
    在这里插入图片描述

    0. 怎么尽快地解决遇到的问题

      当遇到困难或者技术瓶颈的时候,我们肯定是迫切地想要尽快解决问题。初期,实际上是考验信息检索能力,比如想到的是“百度一下我就知道”;当无法搜索到有用的信息,会想到找大佬帮忙,也是更直接地提问、让对方帮你解答。

    1. 信息搜集的渠道——门户网站汇总

      在介绍“提问”之前,我相信选对信息搜集的渠道最重要。作为互联网环境下成长的一代,我们已经可以很熟练的掌握如百度、Google、知乎、csdn、GitHub等搜索网站,但是由于其工具本身的侧重点不一样,我们很难从海量的信息里找到解决方案。所以如同Eric S. Raymond和Rick Moen在《提问的智慧》中写道:“慎选提问的论坛”。他重点介绍了Stack Exchange社区中Stack Overflow 是问写程序有关的问题。
      这里我整理了在参与“一生一芯”计划中除了百度和Google可能会用到的门户网站(渠道):

    2. 提出技术问题,让对方帮你解答

    借一下大佬for you的图,已在文末标注参考文献链接。
    在这里插入图片描述

    2.1 一定要先尝试搜索和自己解决

      虽然开源社区的伙伴们都很热心,但是坦诚的讲,谁也不愿意在简单的报错上浪费时间。在论坛提问或者私信他人寻求帮助之前,一定要先尝试搜索和自己解决。如同Eric S. Raymond和Rick Moen在《提问的智慧》中写道:“我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取,从不付出,消耗我们可用在更有趣的问题或更值得回答的人身上的时间"。
      这里的逻辑是,提问和解决问题,是双方匹配自身需求的过程。作为提问的人,在提问之前先表明你已经做了上述的努力。作为回答问题地人,一方面顾虑时间成本,另一方面考虑这个问题有没有提升空间。

    2.2 提问的问题标题 以及 查找的搜索关键字

      使用有意义且描述明确的标题 ,差异式描述的过程有助于你组织对问题的细致思考

    • 蠢问题:救命啊!我的笔记本电脑不能正常显示了!
    • 聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。
    • 更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。

    2.3 合理的描述问题

    1. 使用准确、准确且合乎语法的语句。因为翻译不准确的原因可能会导致问题歧义无法理解。非常、清楚地描述你的问题或 Bug 的症状;
    2. 前提硬、软件版本环境。操作系统、应用程序、以及相关的信息,提供机器配置等描述和版本。如果可以的话,提供一个可以重现这个问题的可控环境的方法;
    3. 提供日志文件和报错信息、按发生时间先后列出问题症状;
    • 贴报错图的时候,最好圈出来呀。
    • 在这里插入图片描述
    1. 描述你是怎样去研究和理解这个问题的,以及尝试过 什么 方法来解决;
    2. 我尝试搜索过了 什么 关键字,在里面找到了 这些 URL 的回答,尝试了还是没有解决问题。
    3. 描述问题症状而非你的猜测,要不然回答者可能会被你带偏。
    • 如同Eric S. Raymond和Rick Moen在《提问的智慧》中写道:“告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用”。
    1. 感谢。千万别认为只有别人帮助你之后才需要说 谢谢。

    重要的是:带着过程去提问,描述过程而不只是结果

    • 蠢问题:我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值?
    • 聪明问题:我正试着用替换一幅图片的色码(color table)成自己选定的色码,我现在知道的唯一方法是编辑每个色码区块(table slot), 但却无法从某绘图程序的颜色选择器取得十六进制的 RGB 值。

    2.4 提技术问题,尽量使其容易回复

      在黑客的世界里,当你抛出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。
      思路有时也很重要,可以问问大家的思路。

    新手的提问——工具类问题

      执行 git clone 下载远程服务器代码的时候,git bash 提示 permission denied。
      这很显然是一个没有获取权限的问题,新同事发消息给我,截图说:橘长,我 clone 代码报错,怎么办?
      这个问题如何提比较合理呢?
      比方说:橘长,我想拉取 xxx 的代码熟悉一下,执行 git clone 拷贝的时候提示没有权限,你那边能帮忙开通一下权限吗?
      这个提问最显然的特点那就是一目了然,因为平时橘长工作也可能很忙,当提问者直接说出为什么的时候,我会更主动去帮忙,因为觉得这个提问是经过大脑思考的。

    新手的提问——代码内部问题

      新同事在使用 maven 点击 package 的时候报错了,只截下了一部分图。此时咋咋呼呼的截个图和我说:打包不了?
      橘长内心其实算是崩溃的,首先并没看新人代码,其次我也是懵的,毕竟不知道做了什么操作。
      比较合适的提问是:橘长,刚代码编译通过之后,我通过执行 maven 的 package 插件提示打包错误,显示没有 spring-boot-maven-plugin 插件,你之前有遇到过吗?
      这时候橘长心里面一看就明白了,原先是你做了 xxx 操作导致了 xxx 结果,根据日志反馈去反查 maven plugins 即可。
      还存在很多这类问题,记住:先思考后提问,描述完备。

    2.5 还没解决的话需要回帖

      如果你看不懂回答的帖子,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。

    2.6 收尾:再附上解决办法

      解决问题后,尽量在这一条提问下面附上自己的解决方法,以便后人乘凉。

    4. 关于“回答”的思考

      我个人也写过一些开源的项目和开源博客。有一个项目是做好了的镜像(包含已经配置好的系统和工程)。我的原意是可以让爱好者可以直接上手跑一个完整的项目,今天想想也就仅此而已了并没有更深层次的帮助或引导。但是这样的工作实际上对初学者没有任何帮助,只是增强了一些信心。

      如果要问"你希望这位同学成长为什么样子", 我想大家的目标都是一致的: 希望他将来能成为可以独当一面的专业人士. 但同时你也需要认识到学习的规律: 这是需要长期接受专业训练的. 如果你仅仅把问题的答案告诉他, 他就可以成为专业人士, 那该如何对得起长年累月奋斗在一线的广大资深工程师们流下的汗水?

      因此, 你每一次直接把答案告诉他, 直接帮他们解决问题, 都是在剥夺他接受专业训练的机会. 相反, 如果你真的希望能帮助他, 你可以尝试在不影响他训练的情况下指出他缺少的观念和技能, 该查资料/看手册/看代码, 就让他去查资料/看手册/看代码, 引导他针对问题提出自己的思考, 然后尝试并总结解决方案. 这对你和他来说都不容易, 但学习本身就是一件需要付出的事情: 如果你让他很方便地获得问题的答案, 那他就不能从解决这个问题的过程中收获应有的训练.

      原文如上,歌词大意是:如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔。

    与其说是学会提问, 倒不如说是学会不提问

      如果你觉得自己搞不定, 你很可能缺少独立解决问题的能力。提问和回复的过程,也是本人在捋清楚开发思路和搜索查找方法的独立解决能力。

    要记得礼貌,不要“白嫖”

    ps, STFW, RTFM, RTFSC

    STFW(Search The Fucking Web)
    RTFM(Read The Fucking Manual,更温和一点的说法是 Google 是你的朋友!)
    RTFSC(Read The Fucking Source Code)
    
    • 1
    • 2
    • 3

    参考链接

    1. 预学习阶段——如何科学地提问
    2. 提问的智慧
    3. 别像弱智一样提问
    4. 这样问技术问题,你能得到大多数人回应
  • 相关阅读:
    python+django网吧会员管理系统
    类的成员函数与类成员的访问控制
    第二章第六节 ST图与迭代优化
    RocketMQ(3)之事务消息
    架构每日一学 3:架构师六个生存法则之一:如何找到唯一且正确的架构目标?(二)
    浅学Nginx学习笔记
    外观数列问题
    代码审计—PHP
    MySQL8.0.26—Linux版安装详细教程
    Keras中stateful的正确理解
  • 原文地址:https://blog.csdn.net/qq_43858116/article/details/126594930