我已经编程一段时间了,但从来没有受过正规的计算机科学教育。我想知道有没有资源可以复习一些关键的编程概念,比如构造、多态性等,可以适用于不同的语言。此外,如果资源可以提供示例,也会非常有帮助。
发布于 2010-04-12 10:22:09
Concepts, Techniques, and Models of Computer Programming (by Peter Van Roy and Seif Haridi):标题说明了一切。(出自同一作者,并基于这本书的this cool poster with ~30 of the most important programming paradigms。)注:本书通俗地称为CTM,您可能会时不时地遇到这个缩写。
Structure and Intepretation of Computer Programs (by Harold Abelson and Gerald Jay Sussman)。俗称SICP,很可能是一本关于编程的书。句号。别忘了根据这本书改编的the 1986 video lectures by the authors themselves或one of other courses。
SICP和CTM之间的主要区别在于方法: CTM通过在已经实现了编程概念的非常强大的编程语言(分布式Oz)中提供示例来教授编程概念,而SICP通过在尚未实现编程概念的语言(Scheme,或者更确切地说是它的一小部分)中实现编程概念来教授编程概念。IOW: CTM将通过在Scheme中实现一个OO系统来教授OO be显示用OO语言编写的程序,SICP。
Design Concepts in Programming Languages (by Franklyn A. Turbak and David K. Gifford with Mark A. Sheldon)更多的是关于编程语言理论,而不是编程。它仍然很有趣,尽管它没有直接解决您关于编程概念的问题。但毕竟:如果没有编程语言,你怎么编程?
Concepts of Programming Languages (by Robert W. Sebesta)解释了编程语言的概念,从Konrad Zuse的Plankalkül开始,接着是第一代真正的编程语言,如Fortran、Lisp、Cobol、Algol、BASIC以及C、C++、Java和Ada。同样,这本书更像是一本编程语言的书,而不是编程。
发布于 2010-04-12 08:40:16
Programming Language Pragmatics是对编程语言概念的一个非常容易理解但又很深入的概述。它在解释编程语言基础方面做得很好,而不是过于学院化或理论化。
发布于 2010-04-12 08:58:28
我真的很喜欢读约翰·C·米切尔的“Concepts in Programming Languages”。
这本书几乎涵盖了所有的内容。它包括对数学基础的介绍,如可计算性理论和lambda演算,但我发现它非常可读性(当时我正在阅读它,那是在我本科学习的早期)。它还包括一点关于编程语言语义的内容(即,如何正式地描述含义)。
然后讨论了许多编程语言和来自它们的有趣的概念,包括LISP (它是Clojure的基础),ML (微软的F#的基础),还有Simula和Smalltalk (两种基本的面向对象语言)和C++与Java (具有完全不同方法的实用面向对象语言)。还有一些关于并发性的不同方法的说明(现在非常重要!)
它没有涉及太多细节,涵盖了广泛的主题,如果您想要阅读它以获得编程语言理论的广泛概述,我认为这是一个好处。这本书实际上激发了我现在对编程语言的兴趣:-)。
我注意到这本书在亚马逊上有一些负面评论,但似乎大多数评论都来自那些不得不根据这本书学习Mitchell课程的人,他们不喜欢这门课程。
https://stackoverflow.com/questions/2619226
复制相似问题