首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NUS CS1101S:SICP JavaScript 描述:前言、序言和致谢

要仔细回答这个问题,我们首先需要问这个数据结构是否“通用”:它是否可以方便地满足那 10 个更专门数据结构作用? 就此而言,我们还可以问:我们真的需要 100 个函数?...在 1998 年演讲“语言成长”中,评论说,一个优秀程序员“不仅仅是编写程序。一个优秀程序员建立了一个工作词汇。”...不幸是,随着程序变得庞大和复杂,几乎总是如此,规范充分性、一致性和正确性本身变得值得怀疑,因此完整正确性论证很少伴随大型程序。...这提供了书中所有程序和丰富教师资源,包括大量额外练习和关于在典型大学学期中可以涵盖 SICP JS 子集建议。...:整个重点是始终将其视为肥皂泡

11010

像机器一样思考|TW洞见

曾经苦苦思索这个问题,直到我在SICP上看到了答案。说白话一点就是,能像机器一样思考的人就适合做程序员。 那么“计算机”这台机器是怎么思考呢?...这里是答案: 我们所有的计算机,都可以用下面这个模型来表示,江湖人称“冯・诺伊曼体系”。 ? 从这个模型上我们看到了什么?嗯,可能太多干扰了,看不够清楚,给你们再抽象一层: ?...听起来好简单啊,有那么神?不是编程的人都应该会?然而并不是的,很多人思考编程这件事情是靠感觉前几天面了40多个外包公司外派来的人,只有5个人,可以按照输入输出来对问题进行分解。...回到数据与过程不严格区分那半句,当我们试图模糊数据和过程界限,将过程像数据一样纳入输入输出范畴,我们就走上了函数式编程之路。 题外话-3: 有人觉得练习不够?...请留言,如果感兴趣的人多,就加紧写更多练习解析。

92170
您找到你想要的搜索结果了吗?
是的
没有找到

组织哈工大技术兴趣讨论班心路历程

那一段时间,在跟学弟学妹们扯皮同时,也在思考讨论班究竟以什么样形式来进行活动。哈工大大一所有学生都在黄河路二校区,大二以上年级学生基本都在西大直街一校区。一起活动?还是分开活动?...让高年级学生直接给大一同学开小灶?还是内部轮流分享?能做到每周都有东西可以拿来分享? 最终,采取方案是:讲书。...有一天,有一个选了C语言讨论班学弟在群里面甩下一句话,让非常不爽:大意就是说,这个学期学校不是上C语言课?干吗组织这个讨论班?——真的没好意思在群里面怼回去:你当时投票时候眼睛xia了吗?...5 在一区这两个讨论班,情况也不容乐观。没看过SICP,也参加了SICP讨论班,准备尝试学一学。...选了参加SICP讨论班同学,有的甚至不清楚SICP说了个啥——那天SICP讨论班算上只有3个人参加,一个同学问我,“学这个语言有什么用”?说实话愣了一下。

31920

GitHub 上这个「计算机科学」自学指南火了!

比起 MIT 课程,它更加完善,更适用于初学者。 我们建议至少学完 SICP 前三章,并完成配套习题。如果需要额外练习,可以去解决一些小程序设计问题,比如 exercism。...我们推荐把此书前六章读完,并完成对应项目练习。这么做,你将更加深入地理解,计算机架构和运行其上软件之间关系。...书中小项目和习题相当值得练习,尤其是其中 “Wireshark labs”(这部分在网上可以获得)。...一定要严格遵守推荐学习次序? 事实上,所有主题之间都有一定程度重叠,彼此循环引用。...我们努力对这份指引中课程加以限制,仅仅包括那些你作为软件工程师 确实需要了解,不论你专业方向,并且对每门课程为何必要做出了解释以帮助你理解。

2.4K20

期望与痛:SICP

推荐词说: SICP是一本无论如何都应该去仔细阅读的书。...其实,在2013年,还在ThoughtWorks时,就曾经和同事一起整理了一份ThoughtWorks读书雷达,在编码实践象限中推荐了SICP。...可惜当时出差在外,没有机会参与这个有趣活动。至今想来抱憾。 按:clojure是一直想学却一直未学一门语言,而SICP一直想读却一直未读一本书。...——于是,买了中文版SICP,却从来没有翻开它;在GitBook下载了LFE(Lisp Flavored Erlang)版本SICP,却从来不曾点开它。将它藏起来了,貌似珍藏,实则逃避。...说是拖延症?其实未必呢。 ? 隐隐地,总觉得阅读此书是重要,却并非紧急;于是无意识中让许多紧急却并不重要事情抢到了前面,阅读优先级一退再退。

1.8K60

日拱一卒,伯克利计科神级公开课,地球最好CS入门课程之一

作者 | 梁唐 大家好,是梁唐。 最近在B站里找到了一门神课,它是伯克利CS61A,也是伯克利计算机科学专业核心必修课。...号称是CS必学,上了几节课,发现内容的确非常高,比当年在学校上计算机概论那些不知道高到哪里去了。 首先来介绍一下这门课,CS61A是一门SICP入门理论课,非常扎实。...SICP是Structure and Interpretation of Computer Programs缩写,翻译过来就是计算机程序构造和解释。...个人看是18年视频: 这版视频只有英文字幕,但老师讲得语速不快,而且感觉导师水平很高,讲得很好。 还有最新21年版本,有中英双语字幕。 大家如果感兴趣从这两个版本当中选就行。...由于是公开课,所以课件、作业、project都是公开。我们旁听生虽然不能提交作业,但一样可以拿来练习和学习,这也是公开课最大意义。

1.1K20

震惊:编程或者软件开发竟然不算知识?

现在认为,学习编程跟学习交税是一样,都是学习实施细节。一旦外部环境变了,原来实施细节就没用了。 当代编程由于层层抽象和封装,我们已经不必接触底层真正具有通用性知识了。...觉得,程序员应该要警惕,不要落入实施细节陷阱,不要把全部精力花在实施细节上面,然后以为自己学到了真正知识。...对待各种语言和工具,正确态度应该是“进得去,出得来”,既要了解足够细节,也要能够站在宏观角度看待它,探寻底层到底是怎么实现。...如果不懂知识,死记硬背,熟练练习技术,你能干活?能干,但是要想干好,那就必须得懂。就像开车一样,光学会了驾驶技术,但是要想安全行车,必须懂得交通规则。...知识是符合文明方向,人类对物质世界以及精神世界探索结果总和。知识,至今也没有一个统一而明确界定。

35430

如何一步一步成为一个技术领域专家

如何进行刻意练习呢? 认为主要有下面几点 1、激发刻意练习意识 人最最重要是思维,思维指导你前进方向,刻意练习也是一样。那所谓激发刻意练习意识是什么呢?...好了,我们怎么进行刻意练习呢。认为最重要是识别出你需要什么做哪些方面的刻意练习?只有正确识别出来,达到目标的条件是哪些,然后我们刻意练习才有方向。...我们发现程序员编程能力是一个核心能力,但是这个能力太大,太广泛了,如果把它设定为刻意练习目标,这显得太大了,一下难以达到,无法具体实施。...这里想说是,没有什么人、什么方法可以保证你计划完整顺利实施。...3)学会延时享受 这个就不多说了,即时激励很重要,但是同时如果能够提升延时享受能力,这会帮助你更快抵达你目标。 好了,另外要有一定要记住要有耐心,方向正确慢就是快,祝各位早日成为领域专家。

25320

如何一步一步成为一个技术领域专家

如何进行刻意练习呢? 认为主要有下面几点 1、激发刻意练习意识 人最最重要是思维,思维指导你前进方向,刻意练习也是一样。那所谓激发刻意练习意识是什么呢?...好了,我们怎么进行刻意练习呢。认为最重要是识别出你需要什么做哪些方面的刻意练习?只有正确识别出来,达到目标的条件是哪些,然后我们刻意练习才有方向。...我们发现程序员编程能力是一个核心能力,但是这个能力太大,太广泛了,如果把它设定为刻意练习目标,这显得太大了,一下难以达到,无法具体实施。...这里想说是,没有什么人、什么方法可以保证你计划完整顺利实施。...3)学会延时享受 这个就不多说了,即时激励很重要,但是同时如果能够提升延时享受能力,这会帮助你更快抵达你目标。 好了,另外要有一定要记住要有耐心,方向正确慢就是快,祝各位早日成为领域专家。 end

30110

老外总结编程技巧

而所学习到新思维方式,你可以运用在你所熟知语言中。甚至有时你会使用新学语言进行你重要项目。...这种具有挑战性书籍包括《The Art of Computer Programming》、《Structure and Interpretation of Computer Programs (SICP...8.书写代码(Write about coding) 在博客上练习书写代码。你也可以在不同问答网站上回答问题。同时你也可以写一些教程(DreamInCode)。...在你编写代码时,你会想着要正确编写,为了能够解释其中问题和技术。编写代码还能够体现你编程知识,提供你英语语法,这些在编程中都是很重要。...代码出错时,你可能会急于用最少时间去解决它。你会怎么做呢?上baidu(google也行)网站?Don‘t do this。要认真思考问题,拿出纸和笔,认真想出解决方案。

1.2K80

如何一步一步成为一个技术领域专家

如何进行刻意练习呢? 认为主要有下面几点 1、激发刻意练习意识 人最最重要是思维,思维指导你前进方向,刻意练习也是一样。那所谓激发刻意练习意识是什么呢?...好了,我们怎么进行刻意练习呢。认为最重要是识别出你需要什么做哪些方面的刻意练习?只有正确识别出来,达到目标的条件是哪些,然后我们刻意练习才有方向。...我们发现程序员编程能力是一个核心能力,但是这个能力太大,太广泛了,如果把它设定为刻意练习目标,这显得太大了,一下难以达到,无法具体实施。...这里想说是,没有什么人、什么方法可以保证你计划完整顺利实施。...3)学会延时享受 这个就不多说了,即时激励很重要,但是同时如果能够提升延时享受能力,这会帮助你更快抵达你目标。 好了,另外要有一定要记住要有耐心,方向正确慢就是快,祝各位早日成为领域专家。 ?

1.3K30

自学编程能到达培水平嘛?

很多自学内心深处肯定都有这样疑惑,自学能可以嘛?怎么找到怎么方向,怎么到达工作水准,能达到培训人水平嘛?一系列疑问,有一点首先要搞清楚,不是每个人都适合自学。 那么什么人适合自学?...所以自学学到一半的人,很多中途废弃,针对这种情况,自制力稍微差可以找同学一起学习,或者找个对应学习群去学习。 第二:具有探索精神,因为需要选择正确学习方向,教材,以及对应学习路线。...选择好就业方向,自学还是冲着找到合适工作或者自己创业需要,首先选定正确方向方向尽量选择风口方向或者未来有前景方向,选择夕阳产业学出来用处不是很大,这个需要问一些有经验的人或者去百度搜索,多去调查研究...选择好了方向,就开始具体实施,选择一个合适教材,或者视频,选择好了就不要轻易去换,选择好了,给自己制定个计划,大约用多长时间来完成,同时在学习过程在看懂理论基础上,一定要动手操作,不能只是看,要在电脑上多实践...,并且在网上找一些练习题目去做。

70650

The clean coder 读书笔记

这就是完全没有测试问题。 要用这些自动化单元测试去测多少代码呢?还要说?全部!全部都要测 这一种方法,就是TDD,来规避这个问题。...与采用测试先行方式编写测试代码比起来,后写测试在深度和捕获错误灵敏度方面要逊色很多 一个开发方法,业界已经得到普遍认可,但国内有多少公司实施了?至少所经历公司都没有。...,当时流线性写出代码,事后经常会发现偏离了方向,不得不重写。...书中有两个章节与近期订阅李笑来老师文章有重合 练习 任何事情,只要想做得快,都离不开练习。 两个武者搏斗,每个人都必须能够迅速识别出对方意图,并且百分之一秒内正确应对。...实际上,真正做出反应是你身体,大脑是在更高级层面上思考 也就是李笑来老师提刻意练习,如果程序员不去刻意练习,写各种demo,那么想水平永远是hello world水平了 注意力 注意力是稀缺资源

34620

避免成为“优秀程序员” | TW洞见

已经本网协议授权媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 曾经和我认为优秀程序员一起工作,但是他们是真正优秀程序员?...“演进式设计”所带来优越性,没错,就是TDD 除了面向对象,你用别的编程范式根本写不出好软件,因为只有OO能降低复杂度 你认识这类程序员?...如果是,你认为他们水平如何?经验表明这类极端思维,既不是完全正确也不是完全错误,只是不合逻辑。 更加切实考虑和合理推理才能帮助你成为一名优秀程序员。...磨练技艺,增强技能固然很好,但是当我们在做这些事情时候,应该从实际情况出发,认真考虑实施其所需范围、成本、环境等各种因素。将这些合理因素纳入考虑范畴需要成熟思考,才能成为优秀程序员。...当然,也需要大量练习

68690

python入门线路|Python技能树测评

1.3学习内容——方向选择 后面这些就不是就不属于基本技能了,到你选择自己方向时候了,python可以做东西很多,对应要求能力也是有很大区别的,当然全栈很吃香,但是全栈也不是所有都精通,只是所有都懂...而且每个方向下都有对应不同职位,这个不是技术能解决了,看你自己职业规划咯。 这里有意思是,最后有个高级教程,放了个类,到这里应该能明白前面为什么不让你们看类和对象了吧。...测评意见 先说下优点: 首先学习路线很全面,小白能很快有自己思路 根据不同进度进行学习,有练习题为辅 有在线运行环境很方便(这里没写,是因为需要开会员,没体验,用过其他家,挺方便,不用管环境,只管自己代码就行...,自己决定需不需要) 对创作者浏览量有帮助 练习题难易度标签挺好,有助于检验 可以优化地方: 提交优质内容按钮太难找了,提交了一个试了下,滑了半天才滑到,真半天不是虚词,建议可以挪到显著位置,或者固定...,不随浏览资料动 参考资料缺少明确质量指标,只要过了练习题都可以提交,一个模块下参考资料又很多,也有很多重复,建议增加浏览量,收藏量等指标,方便学习者快速定位质量较高博文 练习选择题代码,前面基础还好

36530

在线等!阿里、百度一面就惨遭吊打,做了八年Android是否应该弃坑转行?

Http和Https区别 HashMap具体实施原理,HashMap和Hashset区别 Java垃圾回收机制 JVM原理及线上调优 string,stringbulider,stringbuffer...12:TCP保证可靠手段? 初级、中级 Android 工程师可能因离职而失业? 针对朋友找工作难问题,特意咨询了在腾讯负责面试朋友,为何Android开发普遍感觉找工作难。...坚持学习: 有的同学可能工作了五年,但是学习时间可能一年都不到。学技术不能急于求成,只要学习方法正确,量变一定会引起质变。...听和看只是第一步,更重要是实践,通过刻意练习把听到和看到知识内化成你能力。 刻意练习,就是有目的练习,先规划好,再去练习。 4.广度和深度选择 技术人员学习路径有两个维度,深度和广度。...没有人会专一做某一块,但是自己一定要想好哪一块是自己以后要走方向,那么这一个方向确定了就要深入学习这一块知识,多看源码,多做练习,如果接触到具体项目,要在项目中沉淀自己,最后形成自己知识体系。

83200

颠覆你对区块链认识

不会,因为互联网技术更迭太快,纸质书籍内容无法实时更新,一本书动辄百元,很快就成为垃圾,你会发现目前市面的上区块链书籍至少是一年前写,内容已经过时,很多例子无法正确运行。...1.3. 我们应该怎么做? 1.4. 如何学习区块链 1.5. 区块链能做什么 1.6. 区块链不能解决问题 1.7. 理解去中心化 1.8. 理解不可撰改 1.9....如何学习区块链 学习区块链技术是没有看过任何书籍采用是碎片化学习方法,主要是通过搜索引擎和官方文档。比较擅长自学,也很少和人交流。...学习区块链有两个方向,一个是代币开发,另一个才是区块链开发,现在媒体将两个方向混为一谈,这是两个独立方向。...所以在实际应用中,区块链不能替代数据,只能互补。 所以在项目实施前,仔细想想自己需求,真的需要区块链?还是需要区块链上一些特性?例如数据不可撰改。如果仅仅是需要区块链某一个特性。

1.4K100
领券