zoukankan      html  css  js  c++  java
  • 《大道至简》读后感

    《大道至简》读后感

      初次接触《大道至简》这本书。书的字数对于书来说,确实很少。这也很契合书名——大道至简。

      作者周爱民在书中阐述了一个软件开发者,在做项目的时候应该从什么角度,什么高度去看待整个工程,应该以一种什么样的态度来审视整个工程。

      在看到这本书之前,我进行编程时会陷入“按部就班”中去,正如书中所说——“一接到任务就开始coding”。走一步看一步,逢山开路,遇水搭桥。哪一步不能实现了就去网上查找一下有没有相关实现的方法,哪里出问题了再调试哪里。

      我的方法真的很“愚公”。

      在看到作者在书中的反问时,我感觉作者在审问我,审问我是否跳出过一行行代码来看待整个项目。书中告诉我,代码是一项体力活,打代码是没有技术含量的活。第一个完成关于编程本质的思考的人,提出了一个公式“程序 = 算法 + 结构”。很神奇,里面并没有包含编码,编程与打代码无关。

      关键在于思想。

      勤奋努力才能获得成功,所以就会有人昏天黑地的打代码,试图将每一个关键字都以最快的速度打出来,把熟练度练到出神入化,在大一时,面对初学C语言,面对从未见过的代码题,我也陷入了“熟练度”的误区。就算把键盘盘出油来又有什么用呢?作者在书中的反问像是嘲笑我一样。就算把键盘盘出油来又有什么用呢?

      人的精力终归是有极限的。提出新的“方法”,解决的将是影响做事成效的根本问题。而愚公可以多吃点饭,多加点班,但突破不了人的精力的极限。

      “愚公”喜欢用自己的努力来代替方法,似乎亲自一个一个字母打出来会有很大的成就感,也很放心。函数与类的出现让代码变得比之前简单多了,我们不可能每一个for循环都自己打一遍,也不可能每个数据都手动输出一次。

      “笨蛋,问题在于思想”。

      懒人造就方法,不想动手所以创造出了简单的方法,懒人的脑子从来不懒,他们无时无刻不在思考;而“勤奋”的人疲于coding,没有时间来进行思考。

      不要去成为一个“勤奋”的人。

      “一门语言有很多语法,而这些语法都是有用的”。的确,都是有用的,但并不都是常用的。

      在通过网课学习的过程中,网课中的老师会点明这些可能不常用,但开头自动打开的弹幕中我还是可以看见这些弹幕——“每一个细节都要学会!”,在看到这本书之前,我还有点自惭形秽,毕竟掌握总比不掌握好。但这又何尝不是愚公的行为。

      不常用的知识,大可以等需要用到的时候再翻出来看,甚至现学都不是问题,毕竟有些知识很长时间都会用不到,例如代码块,在实际编码中几乎不会用到,只存在于看源码。知识要学,但不应该全部掌握牢靠,应该学会将知识分类,像作者举得例子一样:

      “你既然知道如何把书分类、归整得整整齐齐地放在书桌,那怎么没想过如何把所学的知道分类一下,归纳一下,整整齐齐地放在脑子里呢?”我应该尝试一下分类,把既有的知识象桌子上的书

      一样整理一下,最常用的放在手边,而最不常用的放在书柜里。即使遗忘了他也无可厚非。

      对于没有进行过代码学习的人来说,编程对于他们来说就完全等价于代码了。但是,语言只是工具, 熟悉一门语言之后,并没有会与不会,只有喜欢与不喜欢,任何一门语言都可以在两周之内学成,因为他们的基本函数库都是相似的。

      学习语言不是目的,而是学会用工具,而且工具都是相通的,在一些方面各有特长。

      在我的学习过程中,尤其是这次自学java,很容易陷入“学会语言是最终目的”的误区,学会语言只不过是会用螺丝刀而已,会不会用螺丝刀和你是不是一个工程师两者完全不是一个量级的问题,甚至有些好笑。

      高中时,我的班主任很热衷于让我们拥有错题本,并在高三后半段严禁我们刷题,只让我们看错题。

      套用到编程中,书中的一句话引起了我的思考:

      经验来源于回顾、理解与分析,而不是你将要写的下一行代码。

      我认为这段话完全可以与上述我的高三生活所套用,编程的经验在于回顾为什么会出错,而不是在于不断的练习出肌肉记忆。

      说白了,还是愚公。

      很多问题都能归结到愚公,愚公很勤奋,勤奋到忘记思考。

      以上,是这本书对我学习代码方面的启发。作者还提出了管理者应如何进行管理,以及软件工程的核心思想:

      瀑布图:

      计划

         可行性研究

              需求分析

            系统设计

                 程序设计

              编码与模块测试

                组合与系统测试

    运行&维护

      软件工程的本质:实现是软件开发的本质需求和基本动因。

       工

                

                  

               →基本动因

       这些也开拓了我的大局思维,但奈何我目前所学工具尚浅,无法完全理解这些,以及管理思想,如果我今后有幸成为管理者,我一定还会回看这本书的。

  • 相关阅读:
    五小步让VS Code支持AngularJS智能提示
    AngularJS----服务,表单,模块
    AJAX 动态加载后台数据 绑定select
    连接mysql 报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    MAC中向阿里云服务器上传文件
    使用Navicat连接阿里云ECS服务器上的MySQL数据库
    mysql面试题:字段中@之前字符相同且大于等于2条的所有记录
    2018 最新手机号正则(最新最全)
    php同一个用户同时只能登陆一个, 后登陆者踢掉前登陆者(排他登陆)
    php 单冒号 、双冒号的用法
  • 原文地址:https://www.cnblogs.com/buxiang-Christina/p/13425645.html
Copyright © 2011-2022 走看看