博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20091221
阅读量:4229 次
发布时间:2019-05-26

本文共 1447 字,大约阅读时间需要 4 分钟。

1. 挑战编程:程序设计竞赛训练手册

 

作  者: (美) ,(西)  著,  译
出 版 社:

2.计算机程序的构造和解释(原书第2版)

我为什么推荐 SICP?

  
  向大家推荐 SICP,不知道有多少人看了,也不知道有多少人明白了,更不知道有多少人惊叹了。或者你根本不屑一顾,或者你看见 Lisp 那层层括号心生畏惧,又或者你了了一瞥,觉得没什么精彩之处。那我真的很失望。
  
  我为什么要推荐SICP,而且为什么如此执着?这本不算厚的书带给我的观念,是从未有过的,是关乎于软件本质的。曾几何时,我觉得我看到了计算机编程书中没有的哲学观,但这一次我的梦破灭了,那些已经被写进书里差不多快 30 年了。
  
  对于 SICP,我真正算看完的,恐怕只有第一章。我现在就来谈谈我的心得,以再次向你展现这本书的魔力。
  
  第一章作为基础,作者并没有象后续章节写太多的软件思想,主要还是介绍 Scheme 语言,所以草草看去,没什么精辟之处。不过在第一章中,作者用了大量的篇幅来探讨数学问题,因为他想向你揭示程序设计中的核心哲学:抽象。而数学无疑是最好的例子。
  
  了解数学史的人,应该知道整个数学史,就是一个不断抽象的历史。古希腊人将字母引入计算,使数学不再只是算术,而且具有表达抽象规则的能力。 近代数学对函数和微积分的探求中,用 f(x) 替代了多项式表达式,函数更一般了,然后 n 维空间、复分析、映射、泛函,抽象代数、群论,等等等等,直到集合论,摧毁了数学的基石,使数学界再次陷入沉思。
  
  构造程序的方法也是抽象。从最简单的元素开始,基本元素(自演算表达式,包括数字,字符串和布尔值),然后定义基本过程(基本运算符,四则运 算和布尔运算),进一步,自定义标识符(如同代数),再自定义过程(函数),再将过程作为值参与运算(高阶过程)。一步步的抽象,形成了整个程序的结构。 而我们编程,无非就是从现实世界抽象出模型,再将模型不断的提炼抽象,属性、方法、类、继承、层次、框架。
  
  编程就是一个不断抽象的过程。我再次把作者在第一章末写下的结论抄在这里,作为最后的注脚。
  
  “ 作为编程者,我们应该对这类可能性保持高度敏感,设法从中设别出程序中的基本抽象,基于它们去进一步构造,并推广它们以创建威力更强大的抽象。当然,这并 不是说总应该采用尽可能抽象的方式去写程序,程序设计专家们知道如何根据工作中的情况,去选择合适的抽象层次。但是,能基于这种抽象去思考确实是最重要 的,只有这样才可能在新的上下文中去应用它们。高阶过程的重要性,就在于我们能显式地用程序设计语言的要素去描述这些抽象,使我们能像操作其他计算元素一 样去操作它们。”

3.
算法竞赛入门经典(算法艺术与信息学竞赛)
作  者:  编著
出 版 社:
  • 出版时间: 2009-11-1
  • 字  数: 347000
  • 版  次: 1
  • 页  数: 289
  • 印刷时间: 2009-11-1
  • 开  本: 16开
  • 印  次: 1
  • 纸  张: 胶版纸
  • I S B N : 9787302206088
  • 包  装: 平装
4.
ACM 程序设计培训教程
作  者:  主编
出 版 社:
  • 出版时间: 2007-8-1
  • 字  数: 409000
  • 版  次: 1
  • 页  数: 269
  • 印刷时间: 2007-8-1
  • 开  本: 16开
  • 印  次: 1
  • 纸  张: 胶版纸
  • I S B N : 9787113076511

转载地址:http://vcsqi.baihongyu.com/

你可能感兴趣的文章
Securing VoIP Networks: Threats, Vulnerabilities, and Countermeasures
查看>>
Practical Ruby Gems
查看>>
Scripting in Java: Languages, Frameworks, and Patterns
查看>>
Extended STL, Volume 1: Collections and Iterators
查看>>
Puzzles for Programmers and Pros
查看>>
Beginning Access 2007 VBA
查看>>
Pro NetBeans IDE 5.5 Enterprise Edition
查看>>
Advanced Business Programming with C# 2005
查看>>
Cisco NAC Appliance: Enforcing Host Security with Clean Access
查看>>
Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java(TM) Applications
查看>>
Credit Risk Modeling using Excel and VBA
查看>>
Oracle Performance Tuning for 10gR2, Second Edition
查看>>
DB2 9 Fundamentals Certification Study Guide
查看>>
Management of the Object-Oriented Development Process
查看>>
Beginning CSS: Cascading Style Sheets for Web Design
查看>>
How to Build an SMS Service
查看>>
Designing Web Navigation: Optimizing the User Experience
查看>>
Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages
查看>>
Ambient Networks: Co-operative Mobile Networking for the Wireless World
查看>>
Google Analytics
查看>>