SICP的一些个人看法】的更多相关文章

网上搜书的时候,看到非常多人将这本书神话. 坦率地说,个人认为这本书过于学术化, 没什么实际project价值.一大堆题目也基本是高中数学竞赛题类似,浪费时间. 软件的核心技术是什么? 1>  发现或引导用户的需求 2> 构建模型结合计算机来解决需求. 所以,主导软件发展的主要是2类人,一类是能洞察用户未来需求的创新家, 一类是project师, 构建一系列模型来解决各种project问题. 从个人体会上来说, 最有价值的就是能从上面2方面提高自己的书籍. 实际项目,没有那么多抽象.人为为了抽…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 流 之前我们引入了用局部状态的计算对象来模拟现实世界里具有局部状态的计算对象,而这其中的复杂性来自被模拟对象随着事件变化的在计算机里是通过赋值实现的.那是否存在其他办法避免计算机里…
     大概不少programmer都看过<黑客与画家>,作者用了整整一章的篇幅讨论Lisp的强大.我自然就会手痒痒.      几个月前,几天内攻城略地搞定了Python,用的方法便是用Py重写之前开发的类库,这样就能很快熟悉语法,培养语感.喜上眉梢的我,也尝试将同样的策略用在Lisp上,我开始查看它的语法和函数,比如如何定义类和函数,如何赋值等等.      但我慢慢发现,Lisp几乎都不需要学语法,就是括号和几个基本过程,无非就是lambda, define, let,cons,car…
前言 园子经常在讨论关于.Net发展的问题,我也这些年在工作乃至创业过程中使用.Net碰到的一些问题和看法.个人擅长的技术面,C/C++/MFC/STL.ASM.JAVA.VB.Javascript/Typescript.C#/WebForm/MVC.Android/MonoDroid,Linux/Windows,还有没有可以吹的,还有从286一直到i7,从ms-dos到win 10,可以算是一条道跟从微软走到黑. 使用.Net的职业发展问题 每次提出这个问题,大家都会说.Net在国内也有高薪工…
压力是一把双刃剑,有害也有利,重点是如何看待压力,从而做到趋利避害,化压力为动力.对于当前的我来说,压力利大于弊.形成这一想法,我经历了好几个阶段.第一个阶段是小学时代,那会整天就知道玩,也没什么压力可言,那会上课还是很积极的.第二阶段是初中到高二,在初一那会,有几次被老师叫起来回答问题,没答上.那会以后,我再也不会积极的回答问题,也害怕被老师点名回答.在这一阶段,自己慢慢的变得少言,没有担任过任何学生干部.该状态持续到高二结束,步入第三阶段.高三时,老师逼着我们每个人每星期到讲台上给同学讲课,…
我所在的本科学校和研究生学校都有计算机科学专业和软件工程专业.具体的教学计划无从得到,所以此情况无从对比,但是我从本科教务处网站找到了计算机科学专业和软件工程专业有关专业方面的课程,现列表如下. 表格1 计算机科学和软件工程专业与专业相关课程 计算机科学专业 软件工程专业 程序设计基础(C语言) 计算机编程引论(C语言) 计算机导论 Java程序设计 面向对象程序设计(C++) 逻辑与数字系统 数据结构 VB.NET程序设计 电路原理 面向对象程序设计 计算理论 计算机组成原理 汇编语言程序设计…
 这是个老生常谈,却又是谁绕不过去的话题,而对于每个人来说,所遇到的情况又不尽相同,别人的求职方式和路线不一定适合你,即使是背景很相似的两个人,有时候机遇也很重要. 我本人的工作经验只有一年,就业方式是校招,至今还未曾离职跳槽过.一下所谈到的观点都是基于这一年来所听所见所感的一些总结,带有一定的片面性,所以觉得我说的不对的,可以指出来,我的出发点是好的,希望能给大家一些参考.也希望大家切不可因为我的个人想法而影响你自己的重要机会. 这个话题着实有一些大,我对VR方向并不很了解,所以我只谈游戏制作…
转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在的论坛质量比以前差了,大部分都是来解题问答的,而且层次较低.以前论坛中,Qullien很令人印象深刻,但愿他能在国外闯出一片天空.现在 基础数学版代数&数论子版中那几个讨论代数几何的还不错.不期望目前论坛出现很多高层次高手,高层次高手应该站在好课题上高观点讨论数学,出 现这样的网友,看他们的言论非常过…
用C表达面向对象语言的机制2——颠覆你对方法调用的看法! 源代码在文末.推荐阅读本文PDF版,格式更好看. 在上一篇<用C表达面向对象语言的机制——C#版>中,我们获知了如何用C表达面向对象语言的机制,证明了面向对象语言是对面向过程语言的封装.今天有幸看到<颠覆你对方法调用的看法!>,于是继续用C来模拟此文中的代码,看看“颠覆”的背后是什么. 1. 目标 本文展示用C的union来模拟C#的一些代码的写法. 2. 用union代替FieldOffset 例如如下的C#代码. Man…
文章来源于 :http://lesg.cn/?p=122 我的个人博客站点 对于一些Http远程连接Api安全的看法: 当不同系统需要互相通信的时候:如果无法用webservice等方式链接的时候另一种方式就是采用Http通信了: 如果有用过短信API的同学应该知道:大部分都是使用HttpPost 的方式来发送短信给客户的,那么怎么保证这个数据是安全的: 对此小弟有一些小见解,请大家拍砖: 例子: 某公司需要开发一个转盘抽奖的活动:但是两个系统又要分开: A端是发送请求数据的服务器: B端是接收…
SICP  Structure And Interpretation Of Computer Programs 中文第2版 分两部分  S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过程与他们所产生的计算 3, 用高阶函数做抽象 第二章 构造数据抽象 第三章 模块化.对象和状态 第四章 元语言抽象 第五章 寄存器机器里的计算 (心智的活动,学习.1,组合  简单认识组 为一个符合认识由此产生复杂认识.2,对比  两个认识放在一起对比,得到有关于相互关系的认识.3,将之隔离与其他认…
一个资深iOS开发者对于React Native的看法 当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道.   我认为一个js开发者可以使用javascript来构建iPhone应用确实是一件很酷的事情,但是我很快放弃了自己去使用它的念头.毕竟我因为爱好而从事ios原生开发多年,并且目前为止已经很熟悉这一套开发专业工具. 我已经创造了一些我引以为傲的iOS应用--一些使用Object-C和Xcode构建的应用,通常人们都是这么做的.这两样工具是苹果…
摘要:软件本身不是目的,人类的需求才是目的,而软件只是达到目的的手段. 软件的本质在于控制复杂性,这个复杂性并非来自于计算机,也并非来自于现实世界,而是来自于人类的思维和知识体系. 软件被使用的广泛性,在于它所满足的人类需求的广泛性. 什么是软件? 从一个简单的例子说起,比如我想计算两个数的和,于是写下这样的python代码 print a + b 但是,这段代码是我的最终目的吗?显然不是,我需要把它在计算机上实际运行,并赋予a和b实际的数值.也许我是在水果,买了5块钱的苹果和10块钱的香蕉,然…
很多人在用client object model的时候,不知道何时或者该不该load,今天看到一个观点描述这个问题,觉得很有道理,和大家分享.那就是写client object model就像写sql语句一样.你可以随意使用写关系复杂的查询语句,当你要查看结果的时候,执行这个sql语句就行了.这里就不考虑什么代码效率的问题了,那是另一个话题. 放到client object model的意思是一样的,你可以随意使用对象以及对象的属性,构建你想要的对象,但是当你想使用这个结果对象或者想查看结果的时…
当前的项目中, 涉及到了hive-jdbc/odbc这块, 因此把这几天所调研的资料作一份总结.本文讲解hive-jdbc/hive-odbc的实现, 以期对jdbc/odbc规范和实现有个较深入的理解和看法. 在具体讲述hive-jdbc之前,首先讲解一下hive的整体架构*) hive的整体架构                    这幅图很清晰的表明了hive的整体架构, 以及各个组件扮演的角色, 这边专注于讲解下hive-jdbc/hive-odbc如何实现,并如何与hiveserver…
SICP 习题 1.7 是对正文1.1.7节中的牛顿法求平方根的改进,改进部分是good-enough?过程. 原来的good-enough?是判断x和guess平方的差值是否小于0.001,这个过程在一般情况下没什么问题,但是,当需要求平方根的目标本身比较小时就会出现问题. 比如我们求(sqrt-iter 1.0 0.00000016),我们口算都知道结果是0.0004,但是(sqrt-iter)返回的结果大概是0.03125,因为0.03125的平方是.0009765625 ,这个数本身就小…
在项目类库中已经引用了相关了类库,生成解决方案也没问题,但是到了后置代码,通过using引用其他类库的时候,再生成解决方案或者生成单个类库,就会报“未能找到类型或命名空间“xxx"(是否缺少using指令或程序引用?)” 之类的错误,曾经在写asp.net的时候也碰到过1次,当时解决方法是重新建立一个解决方案,然后把类库重新引用到新的解决方案中,但今天在写 winform的时候挺匪夷所思,前后捣鼓了半个多小时,网上的回答几乎都是“废话”,因为那些回答针对的都是“正常情况下”,而我今天碰到的是非正…
标题确实很别扭,因为我现在用这个库也很别扭. 在不久之前,一直有个讨论的话题:STM32开发是用库还是用寄存器? 很多人的结论是不需要讨论! 但是,今天我想说下我的看法. 首先,我还是一个菜鸟,对库对寄存器都不太熟悉,给我的感觉是都比较复杂. 其次,我不得不感谢一下ST,他们做了这样一个库,确实方便了很多操作. 但无论如何,我老感觉这库很别扭.理由如下: 1.函数名.结构题名特别长,还经常大小写切换,在MDK没升级之前都没有自动完成功能,敲个代码来不是一般的麻烦,之前一直在找用eclipse做I…
SICP 习题 1.14要求计算出过程count-change的增长阶.count-change是书中1.2.2节讲解的用于计算零钱找换方案的过程. 要解答习题1.14,首先你需要理解count-change的工作方式,要理解count-change的工作方式,最好是自己去实现一遍count-change. 为了避免自己直接抄书中的代码,我决定自己实现一遍用来找换人民币的的“count-change”.事实上,我在看完并理解count-change的代码后,当我去实现人民币版的“count-ch…
SICP 习题1.8需要我们做的是按照牛顿法求平方根的方法做一个求立方根的过程. 所以说书中讲牛顿法求平方根的内容还是要好好理解,不然后面这几道题做起来就比较困难. 反过来,如果理解了牛顿法求平方根的方法,做出一个求立方根的过程就很容易了.当然,我们需要一个改进猜测的方法,就是improve那部分,如果要我自己想出来这个改进方法我觉得是有挑战性的,还好书中直接写出来了,就是:((x / (y * y) )  +  ( 2 * y) )  /  3),其中y是猜测值,x是需要求立方根的数. 根据以…
牛顿迭代法求平方: (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x) ) ) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) )) (define (square x) (* x x)) (define (good-enough? gu…
这是我的真心体会,在尝试使用Laravel.ThinkPHP.Yii.symfony2.CI.cakephp.Yii2 之后的真实想法(default7#zbphp.com). 1)ThinkPHP (版本号3.1.3) 我一開始用到的是ThinkPHP 3.1.3,入门门槛就是网址与方法相应这一点.当初我接触ThinkPHP3.1.3的时候事实上3.2版本号刚出不久,3.2与3.1.x相比是部分重构,用上了最新的命名空间,考虑到购买的虚拟主机可能不支持命名空间(命名空间必须PHP 5.3.3+…
Chapter 1: Building Abstractions with Procedures 2015-09-29 016 Preface of this chapter QUOTE: The acts of the mind, where in it exerts its power over simple ideas, are chiefly these three ...... (John Locke, An Essay Concerning Human Understanding).…
SICP 习题 1.9 开始针对“迭代计算过程”和“递归计算过程”,有关迭代计算过程和递归计算过程的内容在书中的1.2.1节有详细讨论,要完成习题1.9,必须完全吃透1.2.1节的内容,不然的话,即使从网上找来答案看也不能理解其中的真谛. 书中1.2.1节是通过阶乘作为样例来讲解的,可能是因为作者们都是一些天才,所以他们都很喜欢使用数学样例,作为凡人的我们要理解他们在讲什么就需要先理解数学,真的是比较痛苦. 当然,阶乘还算不难啦,看完样例后要理解“迭代计算过程”和“递归计算过程”才是比较麻烦的事…
SICP 习题 1.10 讲的是一个叫“Akermann函数”的东西,去百度查可以查到对应的中文翻译,叫“阿克曼函数”. 就像前面的解题总结中提到的,我是一个数学恐惧者,看着稍微复杂一点的什么函数我就怕.所以这道题放了很久都没去动它,不过有担心跳过这道题对后面的学习不利,所以最终还是鼓足勇气尝试做这个题目. 做完了我才发现,其实这道题真的可以跳过,做不做这道题似乎对后面的学习没什么影响.从题目的内容来看,作者应该是希望在习题中引入“树形递归”,让学生在下一节课的学习中有所准备,相当于是预习题.事…
SICP 2.9 像是一个数学题,要我们证明区间的和与差的宽度是被加和被减的区间的宽度的函数,而对于乘法和除法来说不成立. 书中所谓宽度就是区间起点和终点差的一半.以我看来更像是区间宽度的一半.无论怎么样.差点儿相同是一个意思. 假设你把区间看成是一个线段的话,所谓宽度应该就是起点和终点的差.假设一定要把宽度的一半记作是宽度也无所谓的. 证明区间的和的宽度是被加区间的宽度的函数这一点是比較easy证明的.看以下的证明步骤: 假设有区间1是(a1 b1),还有区间2是(a2 b2), 那么区间1的…
SICP习题1.13要求证明Fib(n)是最接近φn/√5 的整数,其中φ=(1+√5)/2 .题目还有一个提示,提示解题者利用归纳法和斐波那契数的定义证明Fib(n)=(φn - ψn) / √5 . 说实话,面对这道题我是完败,完全没有思路那种.更加令人恼火的是,我根本不明白题目中所谓的提示是什么意思.那感觉就好像某个土豪朋友对你说,几千万的项目太难的话就先投资个几百万就好了,而你手上只有几百块一样. 不过,也不能全怪我吧,多少和出题目的作者有关系,在讲计算机程序的书里跑出一道纯数学题有点过…
最近一个周,最火的话题当然要数CSDN2013博客之星拉票了. 实话实说,从12月14日开始,我连续5天拉票. 通过QQ群.QQ好友.CSDN文章.给CSDN粉丝发私信等多种方式拉票,真是累死我了. 所以,从今天开始,我就没有拉票了,文章中也不会让别人投票. 通过自己的实践和观察,还是发现了这个投票活动的一些问题. 1.最明显的一条就是,投票时间太长了. 100多个博主中的几十个,陷入了无比激烈的拉票竞争中.不但如此,投票时间长达1个月. 我自己,还有很多博主都在拼命拉票,博客和论坛也出现了很多…
SICP 习题 2.7 開始属于扩展练习,能够考虑不做,对后面的学习没什么影响.只是,假设上面的使用过程表示序对,还有丘奇计数你都能够理解的话,完毕这些扩展练习事实上没什么问题. 习题2.7是要求我们协助Allysa完毕interval的定义. Allysa定义了以下的过程来创建一个区间(interval),当中a是起点(就是较小的部分),而b是终点(就是较大部分). (define (make-interval a b) (cons a b)) 题目要求我们实现lower-bound过程和up…
#lang racket (define (square x) (* x x)) (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2)) (define (good-enough?…