《大道至简》读后感
《大道至简》读后感
近几天,我阅读了周爱民老师的《大道至简》,读后感觉收获颇丰。
周爱民老师在书中通过引用《愚公移山》的故事提出了“大道至简”的思想,并向我们讲述了他在编程时对“做什么”和“为什么做”这两个问题的思考。
据周爱民老师的理解,“大道至简”就是指事情原本是简单的,我们不是不知道,而只是认识没有达到,思想与行为产生了脱节:我们陷于自己的行为中而没有思想。正如李维先生在本书的序言中所说:“停下来,思考才是进步的本质。”在我们平时进行编程的时候,碰到一些复杂问题往往会毫无头绪,感觉对其无从下手,不知道在最开始应该“做什么”,只能是顺着自己的想法一点一点摸索着往下去写。虽然大多数的时候我们可以通过这种方法来解决,但是会导致我们的效率大大降低、浪费很多的时间,同时还会导致代码写得一团糟、没有很好的模块化和可读性。同时,这还只是面对一些比较简单、小型的编程题目,到以后接触到更加大型的项目时,这种不好的习惯将会带来更大的、更坏的影响。
我们要学会思考,将复杂的问题简单化,一点一点地进行拆解,将一道题目分解成它要实现的各种功能、再分析要实现该功能所需要的条件,通过顺序、分支和循环进行实现,从而把问题化繁为简。在今后的工程中,也是将一个浩大的工程分解为几个部分,再将其进行功能上的连接,必须扎扎实实地去做“我要实现的任务”,而不是执着于这个任务的总体。就如愚公移山一样,虽然最终目的是看似不可能的“移动山”,但是只要将这个问题简化为一点点“移走山上的石块”,最终就能把不可能化作可能,这便是对“做什么”的思考。
关于“为什么做”,在开发中,很多人都在针对项目中的某一块问题问“可不可以不做”,原因是他们可以从网上看过的内容里扒下来一份类似的代码直接拿来使用,从而减少工作量,但是他们得到的答案往往是否定的,这与追求编程技法的精湛、追求细节与枝节、忽略注释和历史记录的代码都一样,自己单独使用的话可以达到实现功能的目的,但是对于工程来说,能让团队理解、统一执行、迅速有效的实战技法,才是真实所需的。在与他人合作的编程中,我们必须要以共同实现工程为目标,而不是证明自己有高超的水平;要关注工具用在哪里,而不是依仗这些工具去偷工减料;要统一一种大家都能接受的编程风格,让工程的交接更加简单,而不是为了技法的优劣去较量。这就是在项目中代码的实际作用,也就是我们“为什么做”。
通过阅读这本书,让我意识到了自己身上的诸多问题,以上我对这本书中“做什么”和“为什么做”的思考和理解也便是我对这本书的所思所感。在以后,我会经常通过反思回忆“做什么”和“为什么做”来勉励、提醒自己,让自己的编程水平和处理复杂问题的能力一步一步地逐渐得到提高。