007洛阳站聚会时遇到了一些其他领域的朋友,有人表示要学习编程,并进行了一个初步的交流。发现并不是所有的人都懂得编程是怎么回事,而自己也缺乏把它说清的能力,作为一个老码农很是内疚。工作圈子里都会编程,所以几乎没想过怎么向一个毫无基础的人做解释。趁此机会,决定把编程这个事儿整理一下。
值得一提的是,编程固然重要,但并不是每个人都要做程序员,学习编程更核心的是掌握其背后的思维,正如写作并不一定是为了当作家。让我们先从编程这个概念说起。据百度百科,编程是编写程序的中文简称,让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。按我自己的理解,编程就是将现实中做事情的过程映射到计算机世界中。为什么做这个映射呢?因为计算机计算速度快、效率高啊。这个事情或简单,或复杂。最简单的如求解1+1=?,远古人类可能是为了解决1个苹果与另外一个放在一起是多少。他怎么解决的呢?拿起一个苹果放到另外一个苹果旁,然后再数下总共有几个。编程来做这个事情其实也差不多,编程时我们将一个苹果抽象为一个整数1,拿起放到一起的过程映射为“+”,最后数一下这个动作映射为“=”。所以,我们对“程序=算法+数据结构”这句话就比较容易理解了。“+”就是算法,整数“1”就是数据结构,完成求解“1+1=?”就是在做编程。复杂如AlphaGo,其内部运行的程序也是如此,只不过使用了特别复杂的算法与数据结构。
所以,不要谈编程而色变,不过是将现实解决问题的过程,映射到计算机中使用数学计算来实现而已。但通常一个工具的出现和广泛运用,并不只是简单提高生产力,同时也会反过来对人类的思维与行动进行改造。有哪些改变呢?且听下回分析:浅谈编程思维之流控。
下一篇: