很早就想读读被捧为圣经的SICP,看了部分评论大多数都说不是太好理解,表示看了几遍还是云里雾里的。那我就果断退而求其次决定先阅读一遍HTDP,它比SICP更为基础,step by step 的讲解方式也更能让人清楚的理解含义,并且全文配合讲解的语言和SICP一样也是Scheme,看完这本之后再看SICP应该能更为顺利和透彻。
那先大概讲一下HTDP这本书会讲解些什么吧
为什么
为什么要读这本书?这一定是每一个人都会提到的问题。值不值?值!这简直是一定的,整本书不是通过很多exampe code教你某个特定语言(虽然它以Scheme作为讲解语言),而是教你编程模式,设计语言的方式,解决问题的途径与步骤,这是每个程序员最重要的东西。它能教会你:
- 设计程序中涉及的初步代数以及几何学的知识
- 分析读与写的技能
总会时不时听到别人说“学什么语言并不重要,重要的是编程思想”,我想HTDP教的就是这个思想,这将是无价并不可多得的财富。
整本书将会围绕如何设计好程序来展开,一般程序设计的步骤有以下组成:
- 问题分析
- 定义目的
- 举出程序样例
- 制定程序框架
- 定义程序
- 测试
而想要能很好的设计一个程序,往往需要遵循以下几点:
- 分析问题声明
- 通过样例来剥离表达出问题本质
- 基于以上的分析制定程序框架和计划
- 评估希望得到的结果
- 通过测试修改程序
那么如果你不是程序猿有没有必要读这本书呢?答案也是一定的。在现在这个飞速发展的时代,无论是什么职业,投资分析师也好,设计师也好,工作与生活中碰到的问题其实都可以以程序的逻辑方式去一一化解,因此分析问题和快速有效解决问题的能力也显得格外重要,它能帮你在工作生活中助力不少。
章节内容
这里大概说一下各章节的基本内容
固定大小的数据
介绍最基本的程序设计机制以及计算的核心理念。从Scheme最基本的数字、字符、图片等开始介绍方程和程序,并会展开到数据的间隔、列举、分项、结构和以上各种结合的领域之中
任意的大数据
它是固定大小数据的延伸,由于程序处理的数据可能是一些数字、字符串等(称为固定大小的数据)的组合,这章节便是告诉我们如何处理此类数据的
抽象概念
世界上没有一个程序语言会迫使我们写一些重复的代码,相反的,好的程序语言会提供很好的机制来帮助我们统一处理这种重复代码。计算机科学家称这为“抽象”,它能大大提高程序员的编程效率。这章节就是讲如何创建和使用这些抽象的
交织的数据
介绍了设计概念中的迭代优化
生成递归
虽然结构化的设计以及抽象足以解决大多数的问题,但往往会走向效率不高的境地。换句话说吧,结构化的设计可能会使用过多的时间和内存去得到希望的结果。这章节就介绍了如何处理这些矛盾的
累加器
简单的说,累加器就是给方程添加了“内存”,它极大的提升了结构化设计的效率
好了,大概也介绍的差不多了,让我们赶紧开启这次旅程吧!