在今年暑假生活指导的两本书中,我选择了《大道至简》进行阅读,说实话,虽然说的是至于简化,但是很多内容都搞不懂,我就自己的一些浅薄理解写了这篇拙劣的读后感。

      大道至简主要讲了一些软件工程的思想,一共八个章节,每个章节都有好几个小节,思路清晰,让我对编程有了更进一步的认识,对算法也有了点认识。书中说世界“虽变化万端,而理为一贯”,我想的就是:大道理其实很简单,就是大家把他复杂化了,同时作者把这本书写的简化,通过简单的话讲述出通俗易懂的道理,讲出软件工程的核心思想。前几章我感觉相对好理解一些,可以写出一些理解,后几章是真的读了以后摸不着北,所以我就前几张的读后感写了下文。

    在第一章编程的精义中,作者用了愚公移山,把愚公看做软件大师,讲出了他在移山过程中的一些软件大师的思想。有“虽我之死,有子存焉”的分支结构,也有“子又生孙,孙又生子;子子孙孙,无穷匮也”的循环结构等。然后作者又说除了先天智障或后天懒惰者都可以学会写程序。告诉我们要勤于练习,不要懒惰。还讲出了程序=算法+结构,勤奋的同时也要努力思考。并告诉我们各种语言各有各的特点等等,差不多就这些。

    在第二章中开头引用《华阳国志》中的“僰道有蜀王兵蘭,亦有神作大滩江中。其崖崭峻不可破,乃积薪烧之。” 这一章引用了李冰凿山的例子,将其与愚公移山做对比,指出其可取之处,他学会了积薪以烧之。正是一个懒人造就了烧石头这个碎石的方法。愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。或者在愚公的项目计划案的首页里就写着:“吾今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。”但是越发的勤快,愚公将越发没有机会找到更快的方法,当一个人懒了,做同样的活就会想法设法的简化它。

    在第三章团队缺乏的不只是管理中:一个真正大的软件是不可能是一个人去完成的,这需要团队协作。这一章讲述了整个团队之间的关系,讲述了领导者的职责。作为一名领导者要有勇气,要注重团队间的合作关系,要进行正确的预估,同时是需要时间来成熟的。他需要有机会来承受错误,而不是一开始就享受成功。

阅读了《大道至简》后,我突然想到王老师在期末结束后的那次开会上说的故事,一个同学说自己写程序没有头绪,例子是找出素数还是公约数来着,正如老师所说,要把这个问题简单化,一步步考虑该干什么,最后问题自然而然就解决了。

阅读《大道至简》使我受益匪浅,也让我在今后的编程中有了想着去简单化的这种思维,会注意自己的一些问题而不是简单凭经验去做,直接卡死在题目上无从下手。这就是我对《大道至简》这本书的一些简单理解,话糙理不糙吗。

    编程对好多人来说是一种不可触及的事务,很难学习。对我来说编程也是然我非常头疼,如果没有模板就敲不出自己想要的程序。而《大道至简》中讲了编程的精义,告诉我编程序其实是一件很简单的事,就像愚公移山那样。

    首先,“惩山北之塞,出入之迂”是原始需求的产生。然后“聚室而谋曰”是项目沟通的基本方式。“毕力平险,指通豫南,达于汉阴”是项目的目标。然后通过研讨,择指定了一个井然有序,可以实现的技术方案:“扣石垦壤,箕畚运于渤海之尾”。再加上三个技术人员和一名工程管理人员可以完成一个程序。

    在愚公的论述中,还包括编程的根本:顺序,分支和循环。如此庞大的过程,在论述了以后也不过如此,程序也是如此。

    很多人说编程序太难,都学不会,不适合我们。但在读了《大道至简》之后,它告诉我除非先天智障或后天懒惰者,都可以学会写程序。如果早上起床之后知道如果天冷就先穿衣后洗漱,如果天热就可反之,而且日复一日直到死,你就可以编程。如果有类似于生病,不能行动,以及意外的紧急事件,则当日就可以忽略,那么你具备了“折衷”这种品质。你就像设计师发展了。这么一说,其实想编好程序也就不那么难了。这也给好多人心理安慰,让人觉得自己也可以成为一个优秀的程序员。

    说完了怎样成为程序员,在说什么是程序。程序=算法+结构。计算机没有人的思想,所以想要它执行我们需要的命令,就要用它知道的语言来命令它,这种语言就是编程语言。编程的语言种类有很多种,其中包括:C++,C语言,JAVA等。通过这些语言,让计算机实现我们所需要的东西。不过编程不是一下子就能实现的,它需要先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。在代码实现的过程中,包括了算法和数据结构,算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据结构。只有掌握了算法和结构,你才能编好程序。

    编程语言也是一种语言,想要学好这种语言不仅要靠技术,还要靠你对语言的喜爱程度,只有你真正的喜欢编程语言,你才能有足够的能量来学习和钻研编程语言,也能够熟练的掌握这门语言。

     读了这一章,给了我很大的信心,我愿意为以我的能力学不好编程的,但是看完这章以后我知道了不是我没有能力,而是我就根本没有用尽全力来学习他,一个还没有热衷与学习编程语言的人有何资格他学不会编程语言。现在我知道了入学好他了,在每次编程的开始,要了解程序的结构,将结构分析到你可以变得程序为止,然后了解它的算法,我想如果在每次我编程序是都分析一边,也许我就不会在对程序苦恼了。