查看原文
其他

《Think Python》最新中译版:序言

2016-02-29 EarlGrey 译 编程派


序言:本书与众不同的历史


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



...

点击图片阅读我们的推荐

Python告诉你本·拉登在信里最常提到什么?


点击关键词查看对应内容:

Vim | Sublime Text 3 | Emacs | PyCharm 5 | 引力波 | Python简史 | MITx公开课 | 编码风格 | Python入门 | 程序员的日常


编程派 专注Python编程

人生苦短,我用Python

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存