有时候我们需要把文件夹里面所有的mp3文件移动到另外一个文件夹,因为这个文件夹文件比较多比较杂,想分个类,假如我们手动一个个去移动,那是非常麻烦的,而如果稍微学过一点编程,一行命令就可以解决了。我们这里不讲实际操作,有兴趣的可以去google或者百度。这其实只是学习编程的一个最基本的好处而已。
编程的初衷:自动化
自动化也是发明计算机的初衷,自动化让我们可以把事情做得又快又好,我们把做事情的流程写下来,让计算机去执行这些操作,但是我们不是用汉语当然也不是用英语记录,我们用的是编程语言,它比自然语言(汉语、英语等)语法更为严格,计算机更容易看得懂,然后它才能去执行我们的命令。这样就带来一个好处,只要我清楚做事情A的流程,我把它记录成程序,以后每次要做A的时候,我只要对计算机说,你去做A,计算机就会把所有流程走一遍,中间不需要人力的介入,于是我们就把事情A自动化了,可以腾出更多时间做更重要的事情。
比如说超市的前台结账系统,营业人员只需要把每个物品刷一下,就可以很容易地计算出最终价格,这些都是计算机做的,包括识别物品条码,计算总价;假设没有这个系统,营业人员需要把所有物品人工识别一下,然后查找一下对应的价格,最后把所有的价格加起来,不得不说这样人工成本太高。
总之编程可以让我们把生活中常见的问题自动化,省时又省力。
逻辑思维能力的完善
上面提到我们可以把流程记录下来,然后让计算机去执行。这样会出现一个问题,当我们对流程的理解有一点点错误的时候,最终执行结果都可能会出问题,因为计算机毕竟不是人,人在执行过程中出现错误可以及时更正,而计算机只会按照你说的做,即使你是胡说八道。所以要想写出没有bug的程序,我们的编程逻辑不能有任何漏洞,编程能提升我们的逻辑思维能力。
思维的提高
除此之外,编程还可以让我们的思维升级,通过编程我学会的一个最重要的概念就是模块化思维,而由此延伸出架构图和流程图,这些都是非常重要的知识,他们可以被应用到大部分领域,当然编程让我学会了很多很多,接下来主要讲讲模块化思维。
模块化思维
为什么软件工程中能提出模块化思维?一个大型系统软件动辄百万行代码,如果这些代码没有被组织起来,就会是一团乱麻、一堆垃圾,这个软件将变得不可维护,我猜前辈们就是在通过大量的试验后提出了这个理论。
那什么是模块化思维呢?我们把这个系统分解成几个子系统,然后我们只需要把子系统的边界分清楚,了解各个子系统之间的联系和交互,就能大致了解整个系统是如何运转的,子系统太大就继续细分下去,直到足够小为止。
比如要大致了解一个公司的运转原理,我们只需要知道公司有几个部门,每个部门是干啥的,部门之间有什么关系,他们是怎么沟通的。
再比如说我们要写一篇文章,我们可以用总分总结构,就是把文章分为3个模块,然后“分”的部分又可以继续细分为好几个分论点去支持总的主题,然后完善每个分论点,一篇文章就完成了。
架构图和流程图的作用是用图片直观地呈现出来一个复杂系统,它们是建立在模块化的基础之上的,基本上只要把架构图和流程图画出来,就能让别人比较容易地了解整个系统,这里就不具体讲了。
总结
总之编程既能提升日常工作的效率,又能提升思维水平,它确实值得我们每一个人去学习。