对于一个自学程序设计的入门者而言,他需要一本什么样的书呢?我认为标准有以下三个:
第一,介绍足够用的知识。这一点看似简单,但是却不易掌握,像许多人推荐的 A Byte of Python,内容就明显过少了,而处于另一个极端的 Learning Python 篇幅超过一千页,又明显超出入门者的需要。对于程序设计初学者而言,他们所需要的是(a)编程语言的基本特性;(b)程序设计的基本原则和思想。在这一点上 Think Python 就做得不错,240页的篇幅虽然不大,但是由于文风简洁紧凑,已经涵盖了程序设计的基本方面,甚至连 Debugging 这样的话题都有比较深入的探讨。
第二,具有足够而具有挑战性的习题。学习编程语言和学习外语有类似之处,要真正掌握必须经历在学习区刻意练习的过程,所谓学习区,就是你需要付出一定努力才能达到的区域。但是许多书籍题目设计并不完善,往往题目数量不够且挑战性不足,达不到刻意练习的要求。Think Python 的课后习题的编排我认为是非常出色的,首先题目本身非常有趣,其中不少题目取自 Car Talk 的 Puzzler 节目;其次题目的练习强度也基本足够,Allen B. Downey 在官方网站上提供的部分习题答案范例总行数达到了 8456 行(统计包含注释和空行),如果连同在 Python Shell 练习的代码,读完全书所写过的代码不会少于 2500 行;最后,题目本身具有一定的挑战性,绝对不是书中范例的简单重复,其中不少习题是给出提示要求你改进书中的范例。总而言之,在这方面我对 Think Python 也是比较满意的。
第三,内容有趣。现在许多流行的编程入门书(例如 Head First 系列)表面上看很有趣,但是细读下来很快就会对书中那些简单而又虚假的问题感到厌烦。Think Python 中所涉及的问题在深度上要更胜一筹,具有一定的难度,能让人静下心来真正思考问题的解决方案,而且书中的不少章节所解决的问题也具有实用性,例如 Case study: data structure selection 这一章中就涉及文本词频的分析、生成随机文本等问题,Files 这一章则涉及了根据 MD5 寻找重复文件的问题等等。
说完这本书的优点,再简单说说这本书的缺点,主要还是一些细节问题:例如,string 的不少 method 没有涵盖到;pickle 不介绍 dump 和 load,而是介绍了 dumps 和 loads;List Comprehension 只是一笔带过,没有细讲;异常方面的介绍实在太过精简,如此重要的话题应当多花些笔墨介绍;在 OOP 的部分太过拖沓,前面两章大可合并精简,而且 __init__ method 完全可以更早引入,以利于培养良好的编程风格。不过总体来说瑕不掩瑜。
最后说一说阅读这本原版书的难度,我感觉这本书虽然语言不像 Hello World! 那样轻松活泼,但是还属于比较易懂的程度,不过需要读者对于计算机术语有一定了解,否则的话阅读起来不会很顺畅。
适合自学的程序设计入门书
对“适合自学的程序设计入门书”的回应
《How to Think Like a Computer Scientist: Learning with Python》热门书评
-
我见过最好的CS专业入门教材
16有用 0无用 Uraka.Lee 2007-08-03
这不是一本《XYZ语言程序设计教程》,而是我见过最好的计算机专业入门教材,也许这与Python本身就是从教学而来的有关吧。全书20章,并没有讨论什么高深的课题,也没有介绍流行的技术,而是正如本书的题目一样,讲述如何像计算机科学家一样思考,如何用计算机科学家的方式去解决实际问题。全书可以分为4部分:程...
-
适合自学的程序设计入门书
12有用 2无用 Terry Chen 2013-04-04
对于一个自学程序设计的入门者而言,他需要一本什么样的书呢?我认为标准有以下三个:第一,介绍足够用的知识。这一点看似简单,但是却不易掌握,像许多人推荐的 A Byte of Python,内容就明显过少了,而处于另一个极端的 Learning Python 篇幅超过一千页,又明显超出入门者的需要。对于...
-
两头不着的一本“Computer Scientist”书
9有用 2无用 [已注销] 2009-12-12
这本书是mit6.001 SICP课程的替代者——mit 6.00 introduction to computer science课程的指定阅读物之一。“到底要讲python呢,还是cs呢?”读这本书的时候,这个问题一直在我脑海里环绕。如果作为谈cs的书来说,这本书不太合格,因为它多数只是简单地在...
-
关于不同名称的版本关系
6有用 0无用 一只黑眼睛看着大千世界 2012-10-03
其官网上如是说:最开始(2002年),以”How to Think Like a Computer Scientist: Learning with Python“的名称在Green Tea Press出版。2008年重印了一次。http://book.douban.com/subject/1481...
-
很适合没学过编程的人
5有用 1无用 fangyun 2013-04-11
1.很适合没学过编程的人2.也只适合没学过编程的人,对于学过编程想入门python的人,不太建议看这本书,里面介绍的内容太基础,太少了,更推荐官方的python tutorial3.作者很用心,我看的很不耐烦,因为我学了编程好久了!sorry to say that...
书名: How to Think Like a Computer Scientist: Learning with Python
作者: Jeffrey Elkner
出版社: Green Tea Press
出版年: 2002-1-4
页数: 288
定价: USD 24.95
装帧: Paperback
ISBN: 9780971677500