引子
写这篇文章的起因源于我和我老婆的一次讨论。上半年,她在学校里教Matlab。有一次我帮她解答一道上机的习题,大概用了50行代码左右。在解释完答案后,她就问我,“你一步一步是怎么想的?我好像就没有这种思维。”,这可把我问住了,因为那对我来说更接近于一种下意识的行动,很自然的就写出来了。这个回答她自然不满意了,那么这种思维到底是什么呢?
什么是程序
先让我们从什么是程序谈起。上大学时,估计大部分人都学过C语言,我清楚的记得有本书在开篇里提到,程序 = 数据结构 + 算法。从专业角度上来说,这个定义真是绝了,但相信对很多刚接触编程的人来说,会马上问什么是数据结构?算法又是什么呀? 所以在这里,我们先提出一个的通俗的解释。一个程序的作用就是接受输入,进行处理,然后产生输出,套用李笑来对写作的定义,程序也可以定义为:
程序 = 输入 + 处理 + 输出。
其中的处理代表着一系列有条理的操作,即流程化。
发现事物的流程
什么是流程化?
以生活中的炒菜为例,食材是输入,最后的菜品就是输出。而下厨过程中的洗菜、切菜(预处理),然后下锅、翻炒、调味进行加工(处理),最后出锅、装盘(后处理)就是这个处理的全过程。
如果这个例子让你觉得离编程世界太远了,下面我们再来分析下笑来老师多次提到过一个例子。他在写第一本书《托福词汇21天突破》时,是运用编程统计出了高频单词。按照我的理解