目录

如何高效的查找资料

For-Beginners

Kayla, Mark Chen | 01 Mar 2021

CS 与其它学科的区别

计算机科学是为数不多的完全由人类设计与构建的学科 - 从芯片上的每一个晶体管到操作系统的每一行代码都完全是由人设计的。这意味着CS有许多特殊的性质 - 例如 “CS没有玄学”,因为你所做的一切都是人工设计的体系中运行的结果。这也让学习 CS 相比学习其它学科方便了许多。

在提问&查找资料之前……

慎用自己并不理解的术语&不要不懂装懂 - 很多时候人们为了显得自己在提问的方面并不是那么无知会下意识的使用自己并不理解的术语或者不懂装懂。这会导致很多令人恼火的误解 - 解答的人以为你知道这个术语的意思然后用这个术语解释了一圈以后发现完全是鸡同鸭讲,在搜索引擎上搜到的结果和你真的想问的问题完全牛头不对马嘴……

当你提问的时候,你完全无需隐藏起自己的无知(不然你提什么问啊),不懂装懂永远比认真的提问更加令人恼火。

如何查找资料?

有了对CS特别之处的认知,我们现在可以按照以下顺序来查询信息看是否能够解决我们的问题。

STEP 1. 看书 / 查文档

看书

如果你在解决的问题是一个特定的领域内的,并且你知道这个领域的经典书本,你应该先试着在这些书里面找一下答案。例如你对算法有问题的话应该先在《算法导论》中寻找一下答案。

查文档

在设计产品/项目时,设计者会留下文档用于介绍和说明自己的设计,所以当我们遇到问题时,最直接的方法永远都是直接查文档。当你要找某个软件/语言/框架的文档时,直接在 Bing 或者 Google 中搜索 “xxx Documentation” 即可。(为什么不用百度?看下面的对比)

对比百度,谷歌与 Bing 的搜索结果(搜索词都是 java documentation):

image-20210613143310325

红色:广告

黄色:相关的搜索结果

绿色:正确的搜索结果

进入文档后,使用检索🔍功能,输入自己问题中与这个产品/语言/框架有关部分的关键词。试着阅读相关的页面,理解报错出现/出现意料外结果的原因。

看完文档后解决问题了吗?

Y - 我理解了文档,明白了问题的解答 -> 结束

N - 文档好深奥啊,我感觉看的云里雾里的 -> 继续至 STEP 2

STEP 2. 查 GitHub Issue / StackOverflow

你遇到的问题大概率其他人也遇到过!所以如果你看不懂文档,没关系,你也可以看看其他人遇到这个问题是怎么解决的

StackOverflow

StackOverflow 是全球最大的(也是最高质量的)程序员问答网站之一,当你在 Google 中描述自己的问题时,你大概率会发现有一条搜索结果是 StackOverflow 的。(无论这个问题看起来多么简单 - 例如:如何退出文本编辑器 VIM 😂)

image-20210613144815334

在 StackOverflow 中,回答问题的门槛很高(需要有一定的“声望值”),所以大部分的问题回答质量极高。如果你觉得文档过于深奥晦涩,那么 StackOverflow 可以看作一个有评论问答区的,更加通俗易懂的“文档”。

image-20210613145517897

GitHub Issue

作为全球最大的代码托管服务网站,GitHub 上有大部分的开源项目代码与维护组织。GitHub Issue 就是专门用于让用户对项目提出问题/改进建议的地方。项目的维护者或其它贡献者会在这些地方回复用户的问题。当你有问题没有解决的时候,你可以尝试搜索相关项目/框架/库的 GitHub Issue 看看有没有用户提过相似的问题。

image-20210613145648784

image-20210613145924530

在这一步你找到问题的答案了吗?

Y - 找到了!原来是这样解决的 -> 结束

N - 找不到:( -> STEP 2.5

STEP 2.5 ⚠ 尽可能避免在 CSDN / 博客园等网站找结果

这些网站大部分的帖子都是灌水帖子。90%的作者对问题没有深刻的认识,直接在网上找了一段代码敲进去问题看上去就解决了,然后再把这段代码copy到自己的贴子里面声称“这段代码可以有效解决 xxx 问题”。虽然这里面可能有 5% 的作者认真写博客,输出高质量的解答,但是既然有 StackOverflow 和 Github issue 为什么要在这个屎山里面找宝贝呢?

一个更加严重的问题:你对一个方面有疑问说明你并不了解这方面的知识,如果这时候看到了 CSDN 上错误的内容,你会被误导。

切忌急病乱投医!很多时候你搜索了很久也没找到解决方案就会变得烦躁。这时候你突然看见 CSDN 上面有一个水贴说“我执行了这个就没问题了”就会像看见救命稻草一样抓住。

STEP 3 改进问题 / 问身边的人

如果你在 StackOverflow 和 Github issue 上找不到问题的解答,那么一般有几种可能:

  1. 你的问题太过宽泛了,没有一个明确的答复 - 例如 “如何用程序识别图片?”
  2. 你的问题太过细分了,还没有人遇到这个问题并在互联网上问出来 - 例如 “为什么在 windows 10 build 19340 中xxx程序会xxx?”
  3. 你的问题有问题 - 例如 “如何用 char[] 存储整数?”

在这种情况下,你应该试着看看自己的问题有没有问题……或者向身边的人提问


评论区