《Think Python》最新中译版:序言
序言:本书与众不同的历史
1999年1月,我正准备使用Java教一门编程入门课程。我之前已经开了三次课, 但是却感到越来越沮丧。课程的不及格率太高,即使对于及格的学生,他们整体的收获也太低。
我看到的问题之一是教材。
它们都太厚重了,写了太多关于Java的不必要细节,却缺乏如何编程的上层指导 (high-level guidance)。这些教材都陷入了陷阱门效应(trap door effect):开始的时候简单,逐渐深入,然后大概到了第五章左右,基础差的学生就跟不上了。 学生们看的材料太多,进展太快,最后,我在接下来的学期里都是在收拾残局(pick up the pieces)。
所以,在开始上课前两周,我决定自己写一本书。我的目标是:
尽量简短。让学生们读10页,胜过让他们读50页。
谨慎使用术语。我会尽量少用术语,而且第一次使用时,会给出定义。
循序渐进。为了避免陷阱门,我将最难的主题拆分成了很多个小节。
聚焦于编程,而不是编程语言。我只涵盖了Java最小可用子集,剔除了其余的部分。
我需要一个书名,所以一时兴起,我选择了《如何像计算机科学家一样思考》。
这本书的第一版很粗糙,但是却起了作用。学生们读了它之后,对书中内容理解的很好, 因此我才可以在课堂上讲授那些困难、有趣的主题,并让学生们动手实践(这点最重要)。
我将此书以GNU自有文档许可的形式发布,允许用户拷贝、修改和传播此书。
有趣的是接下来发生的事。弗吉尼亚一所高中的教师Jeff Elkne采用了我的教材, 并改为使用Python语言。他将修改过的书发给了我一份,就这样,我读着自己的书学会了 Python。2001年,通过Green Tea Press,我出版了本书的第一个Python版本。
2003年,我开始在Olin College教书,并且第一次教授Python语言。 与Java教学的对比很明显。学生们遇到的困难更少,学到的更多,开发了更有趣的工程, 并且大部分人都学的更开心。
此后,我一直致力于改善本书,纠正错误,改进一些示例,新增教学材料,尤其是练习题。
最后的结果,就是此书。现在的书名没有之前那么浮夸,就叫《Think Python》。下面是一些变化:
我在每章的最后新增了一个名叫调试的小节。我会在这些小节中,为大家介绍如何发现及避免bug的一般技巧,并提醒大家注意使用Python过程中可能的陷阱。
我增补了更多的练习题,从测试是否理解书中概念的小测试,到部分较大的项目。大部分的练习题后,我都会附上答案的链接。
我新增了一系列案例研究——更长的代码示例,既有练习题,也有答题解释和讨论。
我扩充了对程序开发计划及基本设计模式的内容介绍。
我增加了关于调试和算法分析的附录。
《Think Python》 第二版还有以下新特点:
本书及其中的代码都已更新至Python 3。
我增加了一些小节内容,还在本书网站上介绍如何在网络浏览器上运行Python。这样,如果你嫌麻烦的话,就可以先不用在本地安装Python。
在海龟绘图这章中,我没有继续使用自己编写的海龟绘图包``Swampy``,改用了一个更标准的Python包
turtle
。这个包更容易安装,也更强大。我新增了一个叫作“The Goodies”的章节,给大家介绍一些严格来说并不是必须了解的Python特性,不过有时候这些特性还是很方便的。
我希望你能使用该书愉快的工作,也希望它能帮助你学习编程,学会像计算机科学家一样思考,至少有那么一点像。
Allen B. Downey
Olin College
...
点击图片阅读我们的推荐
点击关键词查看对应内容:
Vim | Sublime Text 3 | Emacs | PyCharm 5 | 引力波 | Python简史 | MITx公开课 | 编码风格 | Python入门 | 程序员的日常
编程派 ∣专注Python编程