如何提问
抱住这颗烫手的山芋
我们被电影里黑客神速、魔术级别操作迷惑,可当真正走进编程世界时才发现,“打开方式完全不对啊”,看到的全是看不懂的问题编号信息,看不懂的术语,复杂的步骤,这些都让我们瞬间信息过载,只期望有一键直达的方案。因此在初期提问时往往有一种,赶紧把烫手山芋丢给别人的倾向,容易把所有问题倾泻而出丢给别人,等待救援。意识到此种处理存在问题进而做出改变是真正开始走进编程的起点。
但根据我的经验,小白要真正走过初期疯狂想把烫手山芋丢出去的心态除了自己多看多实践编程外,通过公开提问,然后被虐、被标记"此问题无价值"、在StackOverflow因为提白痴问题扣分真的是最深刻学会如何提问的方式。
Read-Search-Ask
有了克服自己疯狂想丢掉烫手山芋的意识后,就要开始修行了。标准解决编程问题的流程是:Read-Search-Ask(来自Free Code Camp)。
根据我自己稀少的经验,遇到编程问题的时候容易开始疯狂“搜索”解决方案,完全不读自己的代码,不理解代码前后逻辑,问题产生环境。同一个问题背后往往会有很多完全不同产生环境,进而解决方案也是不同的,不仔细读、思考自己的代码,直接开始搜索有时会让解决问题的过程本身像抽彩票,完全在撞运气,更糟的是,不理解问题产生背景、解决方案解决逻辑的情况下照搬别人的解决方案,会“污染”我们自己的代码,最后连我们自己都不确定问题是什么了。因此在搜索之前,先复盘下自己的操作,寻找逻辑,不要一通乱找。
然后是搜索。工欲善其事必先利其器,建议用Google进行搜索,接触更优质的资源会在无形中获益良多。至于如何通过拆词、同义词等提高搜索相关性,由于无关主旨,暂不赘述。
找啊找,还是没找到适合自己的解决方案,终于开始提问了。(小白真的不太可能遇到网上无答案的问题,如果有,可能是你代码里少加了个逗号。所以提问开始前,建议再走一遍Read-Search)。接下来我结合阅读材料和我自己的实际经验讲下如何提问。
到底怎么提问不被人嫌弃
如何提问的技巧在“提问的智慧”里已经非常详细、实用的展示了,所以多读此文是第一要务。同时根据我零星的公共论坛提问经验,我提问时最常遇到的问题是,问题阐述不详细、不精确、英文语法问题。这个问题说起来容易,实践起来不踩几次坑不会真正懂得其重要性。说白了,你不站在帮你解决问题的他人角度思考,不学会尊重他人的善意,只考虑自己要快点搞定问题时,那么踩坑是必然的。
建议大家阐述自己问题时,务必包含以下信息:
- 准确描述症状:报错代码,提示信息,“我电脑出问题了”不是个好开头;
- 提供问题发生的环境,你的操作系统,相关软件版本;
- 你在提问前尝试了哪些操作去解决它;
- 最近是否有硬件、软件更新;
- 最后,记得保持谦逊,记得说“谢谢”;
这篇文章好像对提问前的赘述多过如何提问,那只是因为走过那些步骤你才能真正提出有价值、不浪费他人时间、有益自己成长的问题。