大道至简  求盲于道

读完大道至简这本书,我印象最深的一句话是韩愈回答陈生书的一句话“足下求速化之术,不于其人,乃以访愈,是所谓借听于聋,求道于盲。”这句话虽是韩愈说来批评其学生陈生书,跟他求速成之术,就好像向聋子打听消息,向盲人问路一般。但是其相对于软件工程来说,却恰恰相反,因为软件工程要搞的就是所谓“借听于聋,求道于盲”。

众所周知软件工程的本质是编程,编程的本质即使完成人机对话,让计算机明白人的用意。这就好比是“借听于聋,求道于盲”,计算机只是一台机器他怎么会理解人的用意呢,如今我们都已经知道这是通过人来编写程序然后让计算机去编译,从而实现的。但如果我们直接这样去解释,这就有些不符合发展的顺序了。

先辈们首先是提出这个问题,可能开始想得和韩愈一样怎么可能“借听于聋,求道于盲”呢,但是我们试想一下聋子难道就不能获取消息了吗,瞎子就不识路了吗,答案是否定的,要知道盲人并非不知道路如何走,只是他不能象常人 一样描述他所知道的路。因此“问道于盲”是没有错误的, 真正错误的是你睁着眼睛问,所以我们要想去向瞎子问路,那就先熟悉他的认路习惯,我们需要在正常人与盲人之间建立一种沟通的方式, 既然盲人不能睁开眼睛,那么你就闭上眼睛好了。编程也是如此,既然计算机无法直接理解我们的语言,那么换一种方式,用程序表达给计算机就行了。

至此编程的本质已经解决,他就好比把我们解决一件事的方法,用编程的语言翻译给计算机。

书中提到了编程的精义:程序 = 算法 + 结构+方法。

算法就好比书的第一章愚公移山,“虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙。子子孙孙,无穷匮也。而山不加增,何 苦而不平?”其算法就是一个分支和一个可实现循环。愚公的程序很简单,单是凭着自己和后代的勤劳想“扣石垦壤,箕畚运于渤海之尾 。毕力平险,指通豫南,达于汉阴”,这个程序虽可实现但是却是耗费大量时间,编程还要有方法,这或许就是智叟嘲笑他的原因吧。与他同时代的李冰已经把程序运用上了方法“僰 蘭 道有蜀王兵 ,亦有神作大滩江中。其崖崭峻不 可破,(冰)乃积薪烧之。”我们已经看到事物的进化了。同是战国时代,《列子·汤问篇》里的愚公就要“碎石击壤”,而李冰就已经懂得“积薪烧之”了。“烧”这种方法可以 加快工程进度,使得一大座山短时间就被哗啦哗啦地给 “碎”掉了。这就是方法带来的进步,李冰为蜀地太守手里劳力肯定很多但他并没有像愚公那样去凿,证明方法胜过勤劳的愚公。结构,顾名思义就是一个程序的框架极其思路,写程序之前一定要先明白这点,才能写出程序。

看完这本书我若有所思,我之前写程序纯粹是为了完成作业而写,没有思考过为什么程序的结构,运用什么算法、方法简单,只是照着书本上的内容生搬硬套,写不出来就去问同学,老师,没有自己如何去解决问题,怎样把自己解决的思路以编程语言的方式告诉计算机。

我这样做就好比书中的愚公,只是学了一个最简单的编程,没有理解编程的精义,换个问题,依旧不会解决而且还耗时费力,况且我还没有愚公那么勤奋做不到“今是昨倍”,以此下去肯定不行。我以后写程序要先在脑中想好我是怎么解决这个问题的,然后在想好程序的结构,有没有什么好的方法,算法使程序简便,最后把程序编作编程语言输入到计算机内。

转载于:https://www.cnblogs.com/hang-hang/p/11208174.html

大道至简 (求道于盲)相关推荐

  1. 《大道至简》的幕后故事

      一.大道至简与愚公移山 ======= <大道至简>一书最初的领悟来自那张EHM图.这个故事我在书中已经讲过:在一次Delphi.NET培训的准备工作中,我顿悟"语言只是工具 ...

  2. 《大道至简》读后感(伪代码)

    public class 伪代码{ bool 愚公移山() { //项目沟通的基本方式:惩山北之塞: //项目的目标:毕力平险,指通豫南,达于汉阴 //技术方案: 扣石垦壤,簸箕运于渤海之尾 bool ...

  3. vim 键盘宏操作 -- 大道至简

    最近利用vim做一些文本处理时 发现vim 支持的键盘宏是一个好东西啊,高效优雅得处理大量需要重复性操作的文本,让人爱不释手!!! 希望接下来对键盘宏的分享能够实际帮助到大家. 后文中描述的一些vim ...

  4. 大道至简第一章读后感

    当今社会,信息化飞速发展,软件的需求也越来越高,而<大道至简>给我们点透了编程的精义. 大道至简第一是讲的便是编程的精义,文章借愚公移山这个故事来阐释编程的基本思路:出现一个问题(惩山北之 ...

  5. IT一大道至简: 文章列表

    欢迎关注微信公众号:IT一大道至简 07期:<实现兼容IE9+的svg截图和异步下载功能> 摘要: 一起来探索如何实现兼容IE9+的svg截图和异步下载功能,并借此来了解web截图实现方案 ...

  6. 大道至简第一章观后感(伪代码)

    1.编程的精义(愚公移山) 在两千年的寓言中,愚公这一工程名家,通过移山这一浩大的工程,为我们讲述一些最简单的编程根本:顺序,分支和循环.用这些根本他叙述了整个工程的实现,子孙无穷,是为循环,山不增, ...

  7. 《大道至简》第一章编程的精义伪代码读后感

    最近,读了老师推荐的一本关于编程思想的书<大道至简>.书中第一章主要讲编程的精义,以愚公移山的故事来形象的讲解编程的的过程.通过一个简单的寓言故事,看到原始需求的产生,项目的沟通,项目目标 ...

  8. 【转】Oracle SPARC SuperCluster全能王:不改大道至简本色

    伴随甲骨文收购Sun后软硬件一体机策略的持续贯彻和运筹帷幄,Oracle Exadata数据库云服务器.Oracle Exalogic中间件云服务器.Oracle Exalytics商务智能云服务器等 ...

  9. 大道至简阅读笔记03

    每一个程序员在自己的编程道路上都会遇到问题,所以也难免为遭遇失败,<大道至简>第五章的标题是"失败的过程也是过程",当我看到这个标题时,我就已经猜到了里面的大致内容.因 ...

最新文章

  1. 大写牛逼,用 Python 登录主流 24 个网站
  2. 模糊逻辑系统_在模糊逻辑系统中工作 人工智能
  3. [leetcode]Decode Ways
  4. 璀璨智行:V2X车路协同智慧交通
  5. hadoop3.0.3 SLS-Failed to create an AM
  6. ncf 推荐系统_TopN物品推荐算法评测设置回顾
  7. vue点击按钮打开下拉菜单_vue 点击弹出下拉菜单 点击其他页面收回菜单
  8. FastStone Capture9.6
  9. 马克思主义哲学(认识论)
  10. 渥太华大学计算机科学,加拿大渥太华大学计算机科学CO-OP录取
  11. 小学计算机二课堂活动总结,康宁路学校“信息技术与课堂教学深度融合”活动总结...
  12. 浙江大学计算机考研信息汇总
  13. R语言绘图-抖动点图(jitter)绘制指南
  14. 解决Mac上plt画图中文无法显示的问题
  15. applicationContext-job
  16. 28个Unix/Linux的命令行神器
  17. 功能安全基础知识问答
  18. JS中删除数组中重复的元素
  19. idea新建springboot项目后始终无法识别org.codehaus.plexus.component.repository.exception.ComponentLookupException
  20. VS2015+WDK10在不同环境下的驱动配置

热门文章

  1. mysql性能优化与高可用_MySQL管理之道:性能调优、高可用与监控》迷你书
  2. 2022-2027年中国皮肤病药物市场竞争态势及行业投资前景预测报告
  3. linux动态压缩硬盘,VirtualBox 压缩VDI硬盘
  4. XSKY新一代分布式文件系统XGFS揭秘——元数据服务
  5. 2018-8-10-win10-uwp-商业游戏-
  6. 加工奶制品的生产计划 lingo代码
  7. IOS停机卡免流线路下载更新
  8. MySQL cluster集群/NDB集群学习
  9. 化工计算机图形与数据处理知识内容王水,化工计算机数据与图形处理excel作图.ppt...
  10. php生成二维码海报