PDF源文件地址 :  http://www.greenteapress.com/thinkpython/thinkpython.pdf

《思考Python - 如何像计算机一样思考》 

Version 1.1.21

艾伦·唐尼

绿茶出版社

李约瑟,马萨诸塞州

版权 © 2008 艾伦·唐尼

出版历史:

2002年4月:首次出版《如何像计算机一样思考》

2007年8月:主要改版,修改书名为《如何像一个程序员(Python)思考》

2008年6月:主要改版,修改书名为《思考Python·如何像计算机一样思考》

绿茶出版社

沃什伯恩大街9号

李约瑟马02492

在基于GUN通用公共许可的前提下,允许拷贝,发布/或修改此文档,自由软件基金会发布的1.1及以后的版本。GUN自由文档许可证可以从www.gun.org获取。

 

序言

本书的奇异诞生史

1999年1月,我准备用Java语言作为我的学生的入门编程课程。事实上我却觉得很沮丧,因为我已经开了3次这个课程了。选修这门课程的学生的失败比率实在是太高了,即使是那些看起来学得还不错的学生来说,水平也不尽如意。

当时,我能看出来的唯一问题就是教材本身。这本教材里面写了太多不必要的关于Java的细节,过于臃肿,并且没有足够高水准的对如何编程进行引导。以至于所有学生都深深陷入了这样一个陷阱里:一开始很觉得很简单,接着循序渐进的深入学习,当到了第5章的时候就突然懵逼了。由于学生们一下子接收了太多信息,时间又过于紧张,以至于在学习过程中还要花费更多时间再去从头消化这些信息。

两周前开始上课之前,我做了一个决定:写一本书。目标如下:

    • 保持简练。让学生们看10页的内容,肯定比让学生面对那望而生畏而不愿去看的50页内容要有效。
    • 用词要注意分寸。我尽量避免专业词汇去定义每一个术语。
    • 循序渐进,避免挖坑,用化繁为简的方式处理复杂的问题。
    • 专注在程序本身,而不是程序的语法上。归纳总结Java语言中最有用的部分。

首先,我要给我的书起一个名字,于是我一时兴起选择了这个名字《如何像计算机科学家一样思考》

首版的发行过程比较艰难,但是它确实起作用了。学生们能够把书读完,并且能够充分的理解我在课堂上所讲授的难点,最有趣的一点(也是最重要的)就是让学生们多练习。

我基于GUN通用文档的协议,免费发行了本书,并且允许用户拷贝,修改和分发本书的内容。

接下来发生了一件很酷的事情,那就是弗吉尼亚州的一位高中老师Jeff Elkner,他把这本书翻译成了Python版本。他把他完成的Python版本发给了我,这让我有了一种非同寻常的体验——通过读自己的书学习了Python。

于是,Jeff和我接着修改了本书,并且把Chris Meyers的案例加入了其中,并且在2001年发布了《如何像计算机科学家一样思考——学习Python》,同样,这也是基于GUN通用免费文档协议发行。后来绿茶出版社找到我,我就开始通过亚马孙和大学书城发售本书。绿茶出版社的其它书籍可以通过其官方网站 www.greenteapress.com 来获取。

从2003年开始,我首次在奥林学院教授Python语言,它跟Java语言的差异是非常大的。学生们可以在花费很少精力的情况下学到更多编程知识,并且对自己所做的项目非常感兴趣,甚至乐此不疲。

在过去的5年时间里,我依然继续完善本书,修正里面的错误,完善其中一些范例,并且加入了更多的资料,尤其是练习的内容。到了2008年,我开始对本书做一些大的调整,与此同时,哥伦比亚大学出版社开始联系我,表示他们愿意出版我这本书的新版本。真是太巧了!

其中最大的变化就是本书的标题不再浮夸,变得很简洁——《思考Python》,其它主要变化如下:

  • 在每一章节的最后,我加入了调试部分。这部分内容主要是展示如何查找和避免错误,以及列出了一些在Python里面容易犯的错误。
  • 删除了最后几个章节的一些关于列表和树的内容。我虽然喜欢这部分内容,但是我认为这部分内容跟本书的其他章节内容关联性不大。
  • 添加了更多的练习,覆盖了从简单测试到一些实质项目的理解。
  • 添加了一些实际案例——长期案例和练习,解决方案和研讨。
    • 其中一部分是基于Swampy,这是我写的一个基于Python教学的插件。
    • Swampy的范例代码以及一些解决方案可以从 thinkpython.com 获取。
  • 扩展了程序设计研讨计划和基础设计模式
  • Python更符合人类的语言习惯。本书依然是介绍编程而非Python,我认为可以从本书中获得比编程语言本身更多的内容——思想。

我期望本书可以让你在工作中如鱼得水,希望可以帮助你领会到编程的精髓,哪怕只有一点点帮助。

 

艾伦·唐尼

沃什伯恩大街

艾伦·唐尼现在是富兰克林奥林工程学院计算机科学副教授。

 

鸣谢

首先,也是最重要的就是,我要感谢Jeff Elkner为我把这本书从Java翻译成Python版本,正是因为如此,我才真正开始了这个项目,并且把Python转变成了我自己最喜欢的语言。同时我还要感谢Chris Meyers,是他为《如何像计算机科学家一样思考》这本书贡献了一些章节。我还要感谢自由软件基金会提供的GUN自由文档许可,这让我有幸能跟Jeff和Chris的合作成为可能。再此,还要感谢我们的Lulu编辑为《如何像计算机科学家一样思考》的付出。我还要感谢我的学生们为我这本书的早期版本作出的贡献、纠错和建议。我要感谢我的妻子Lisa为我这本书的付出,还有绿茶出版社以及所有支持我们项目的人。

 

翻译到这里我要八卦一下 :) 我发现在1.1.21以后的版本中,感谢他妻子的部分消失了,好奇心害死猫,为此我甚至网上去搜了一下原因!结果当然是没找到原因,纯粹是我自己无聊而已!

按常理,很多外文书籍的鸣谢部分是最啰嗦的,七大姑八大姨的,所有八竿子打得着的,打不着的,基本都拿出来狠狠谢一番的,不知道老外写书是不是按行收稿费的,这让我想起当年古龙写武侠小说的时候,出版社是按行付费的,于是就造就了古龙小说常见的风格:

风。

冷风。

冷风吹。

... ...

哈哈,扯远了,打住......

 

 

 

10-11 16:22