初学编程,必须要抓主要矛盾
矛盾论
矛盾,是中国人最熟悉的哲学命题,当年有伟人凭借矛盾分析这一神技,得到了天下,而今将矛盾分析的方法,挪用到编程语言的学习上,一样可以无往不利。
矛盾论的核心观点是,事物发展是由数不清的矛盾推动的,有的矛盾是主要矛盾,有的是次要矛盾。如果想让事件尽可能地朝着我们希望的方向发展,那就必须要抓住主要矛盾,在细枝末节上,无论如何劳心劳力,最终都会一事无成。
从矛盾的性质来看,有一些是对抗性矛盾,另一些是非对抗性矛盾。当我们遇到一个问题的时候,必须要解决的就是对抗性矛盾,否则这个问题将永远无法解决。
编程的主要矛盾
编程语言是编程的主要工具,所以学习编程,说白了就是学习编程语言。
那么是不是说,编程语言的语法,就算是编程的主要矛盾呢?
答案并不全是。
当今最流行的编程语言,大多数有着超过20年的历史,20来年的不断更新,使得这些语言异常灵活,新的语法和旧的语法堆叠在一起,使得编程语言的语法,对于初学者来说非常复杂。
而现有的大多数教程,都是以编程语言的语法为枝干,这样做当然也没问题,但会浪费掉大量的时间和学习热情。
编程语言的核心矛盾,是如何用编程语言解决问题。
换言之,如何用一门编程语言实现一个需求,这才是学习编程的主要矛盾。而这个主要矛盾的核心,恰恰不是编程语法,而是需求的业务流程。
带着问题学编程
假设将所有编程项目的知识点罗列出来,然后筛选出占比百分之九十以上的知识点。那么就会发现,这些知识点,将出现在几乎所有的项目中。
换言之,一个来自现实需求的任何微型的项目,都涵盖这使用频率百分之九十以上的知识点。
用大白话说,就是从实战开始学习,在干中学,将具备最快的学习效率,这一点从这篇博客中就可以看出:如何用两个晚上教女生学会Python。
通过预先设定一个项目需求,然后围绕这个需求,进行开发,可以迅速完成编程语言的入门。