信息源随着所处阶段的变化而变化。

以编程学习为例:

对于初学者,喜欢看视频教程,有更直观的声画教一步,走一步。视频内容让初学者对这个领域形成概览认知,有了概览认知后,就可以看对应的官方文档,跟着 get start 教程写出一个 demo,完成一个较完整的 demo 后,可以开始具体的需求开发,这部分则是,需要什么查什么,主要信息源还是官方文档。随着对一个领域的深入,使用新的库,现有文档已经无法解决问题时,需要去社区找到同样需求的开发者进行交流,他们可能曾遇到我们当前的问题,并已经解决,这个阶段的信息源是社区。继续深入后,社区已经不能解答问题,那么需要对应库的源码中找答案,需要看源码,分析逻辑。到这里,我们都可以在已有的内容中寻找到问题的答案,但如果继续往下走,可能就没有答案,我们需要给出自己的答案,需要给出自己的解决方案。(到这里,似乎回到了第一个阶段)

总结一下可以分为:形成认知、寻找答案、给出答案,三个步骤。

不同阶段的信息源是当前我们对这个问题的认知程度决定的,新手同学不容易开篇就看源码,熟练工也很难忍受视频的节奏,我们都在用当前阶段更容易接受的方式快速获取着知识,这个流程没有错,只是这个流程是最优的吗?哪个流程可以优化,哪些信息可以被复用,新手学习一门新的编程语言可能需要一个月,但已经熟悉一门编程语言后,再开始接触新语言,周期可能缩短到一周,通用部分的认知被复用了,我们可以跳过通过看视频获取概览认知的那一步。

查找信息的最终目的是解决问题,新手村里,大家遇到的问题大同小异,一些官方文档可以解答,社区的同学给出的方案则可以解决剩下的问题,这可能就是行业内自嘲的“面向 stack overflow 编程”,不过随着对细分领域的深入,我们终将遇到前人未曾遇到的问题,我们需要给出自己的答案,这是 coder 真正执行创造者特权的时刻。


对新手村同学的建议是,提高信息检索能力,看有质量的内容,我们看到什么,我们才有机会成为什么,见贤思齐。