大道至简第一章读后感

大道至简是指大道理(基本原理、方法和规律)是极其简单的,简单到一句话就能说明白。所谓“真传一句话,假传万卷书”。一门技术如编程,弄得很深奥是因为没有看穿实质,搞得很复杂是因为没有抓住程序的关键。就像我们刚刚接触编程时,一个简单的程序却仍需花大量的时间,这就是将问题弄得复杂,没有弄清楚编程的精义。读过《大道至简》这本书后,感悟如下。

编程的根本是顺序、分支以及循环,任何一个实现功能的程序都可以用这三个词来编写。而数据结构中顺序表、树、图等的算法就离不开这三个词。就拿愚公移山来说,如果看成是一个编程问题来说,首先是问题的出现,即原始的需求。问题出现后那么就需要项目沟通的具体方式:聚室而谋。然后确定项目目标,接着确定技术方案即解决解决问题方案以及项目参与人员。而其中著名的“子又生孙,孙又有子...子子孙孙,无穷匮也”则表示循环且循环理论可行,不会无限循环。

编程的实现需要算法,但是产生一个问题后你首先需要做的事去分析这件事,将问题拆分,大问题化为小问题,然后思考这些小问题之间的逻辑关系,最后再将这些小问题用代码解决并整合,最后解决大问题。第一个完成关于编程本质的思考的人提出了一个公式,即“程序=算法+结构”。我理解的算法就是解决问题的方法,是逻辑的展现,一个问题的复杂度决定了这个算法的大小。而所谓的将大问题化为小问题解决,则是按照一定的编程框架即结构将程序编译,将数据进行汇总。

当然明白编程的精义后并不代表你真正的会编程了,一个真正的会编程而且能编出优秀程序的程序员离不开努力。当你熟悉一门语言后如c++,其实其他的语言那么你也差不多便会了,因为通常而言这些语言的差别主要是适用范围不同,一些语言适合做网页,一些则适合图形处理,各有各的特点。而他们的底层函数库都是那么的相似,他们的API是那么的依赖于操作系统。

大道至简,程序的编译同样可以用一句话来概括它的精义。明白编程的精义,体会程序的编译与实现,程序的出现是为了解决问题,而体现一个程序的好坏则是是否简单有效,仿若大道至简。

原文地址:https://www.cnblogs.com/hzxsg0919/p/4824512.html