当前位置: 首页 > news >正文

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

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

  • 0. 怎么尽快地解决遇到的问题
  • 1. 信息搜集的渠道——门户网站汇总
  • 2. 提出技术问题,让对方帮你解答
    • 2.1 一定要先尝试搜索和自己解决
    • 2.2 提问的问题标题 以及 查找的搜索关键字
    • 2.3 合理的描述问题
      • 重要的是:带着过程去提问,描述过程而不只是结果
    • 2.4 提技术问题,尽量使其容易回复
      • 新手的提问——工具类问题
      • 新手的提问——代码内部问题
    • 2.5 还没解决的话需要回帖
    • 2.6 收尾:再附上解决办法
  • 4. 关于“回答”的思考
    • 与其说是学会提问, 倒不如说是学会不提问
    • 要记得礼貌,不要“白嫖”
    • ps, STFW, RTFM, RTFSC
  • 参考链接

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

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

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

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

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

  • 一生一芯讨论区
    stackoverflow
    Github
    EETOP 创芯网论坛
    博客园
    CSDN
    IC设计小镇
    电子发烧友
    电子工程专辑
    中国电子技术网
    21IC电子网
    与非网
    电子工程世界
    水木社区-微电子技术

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. 别像弱智一样提问
  4. 这样问技术问题,你能得到大多数人回应

相关文章:

  • 攻防世界WEB练习-fileclude
  • Mybatis实战练习四【单个条件(动态SQL)添加数据】
  • 国赛高教杯使用python/matlab必会基础数学建模-数据处理模块(课程4)
  • XGBoost算法原理详解与参数详解
  • MySQL识别不了中文怎么办?(适合新手)
  • 【面试题】集合并发问题
  • 精品基于Uniapp+SSM实现的Android安全网购平台
  • Spring Cloud Gateway 网关实现白名单功能
  • Android Studio Chipmunk | 2021.2.1 Patch 2(2022 年 8 月)
  • 小程序商城上线需要做什么?
  • 选择边缘计算网关的五大优势
  • “蔚来杯“2022牛客暑期多校训练营4(A,D,H,K,N)
  • 达梦DataWatch主备环境搭建
  • python入门I--基本概念--基本语法--变量和标识符--数据类型
  • opencv-python之图像的加法与按位运算
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • css的样式优先级
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • IndexedDB
  • webgl (原生)基础入门指南【一】
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 后端_ThinkPHP5
  • 讲清楚之javascript作用域
  • 使用parted解决大于2T的磁盘分区
  • 小而合理的前端理论:rscss和rsjs
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • (+4)2.2UML建模图
  • (26)4.7 字符函数和字符串函数
  • (4) PIVOT 和 UPIVOT 的使用
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .bat批处理(一):@echo off
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET CLR Hosting 简介
  • .NET CORE Aws S3 使用
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • :中兴通讯为何成功
  • [ C++ ] STL---stack与queue
  • []指针
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [C++][基础]1_变量、常量和基本类型