学习观04:为什么会觉得编程、解题毫无头绪

我们可以同时应用多个运动类知识,譬如某人可以边走路边聊天。 但意识在某一刻只能专注一个思考类问题,因此,在某一刻若无法从脑中搜索到能直接从输入得到输出的知识,问题就无法解决。

然而我们所掌握的知识又是有限的,这种直接从输入得到输出的知识往往会超过我们的知识范围。应对办法可以是学习更多的知识。 但还有一个简单,却又无比强大的办法就是分而治之

将问题拆分成,脑中存有的,能直接从输入得到输出的小问题来解决。
你一定听过这个方法,但恐怕你并不知道它为什么如此强大。

原因在于,它可以将原本需要你掌握指数级知识量才能解决的问题,变成用线性级知识量就可以解决。

假设你只掌握了3 种知识,不考虑顺序,单从组合来看,就可以形成 7 种新知识。 如果不拆分问题,你需要掌握 7 种知识才能做解决这些问题。 而有 20 种知识的时候,二者的差别就是 20 对 1048575。

在编程时,所用到的知识远不止 20 个。 但其实人类天生习惯于搜索能直接从输入得到输出的知识,这也是新人在面对编程问题常常束手无策的原因,因为根本搜索不到。

该原则适用于所有思考类知识,不管是写文章,答数学题,还是解决工作中所面临的困难。它直接决定了一个人解决问题的能力。