我要翻译《Think Python》 - 001 序言部分

 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为我这本书的付出,还有绿茶出版社以及所有支持我们项目的人。

原文地址:https://www.cnblogs.com/simba/p/9772926.html

时间: 2024-10-09 11:29:55

我要翻译《Think Python》 - 001 序言部分的相关文章

python --001简介

python ····什么是python python是一门程序设计语言1.自然语言:人与人之间的交流(汉语,英语)2.机器语言:计算机能够读懂的语言(0,1--微码编程)3.程序设计语言:有固定的语法约束,由文字构成的文本文件(Java,c++,python)注:越接近自然语言的程序设计语言越高级,为高级程序设计语言,python是高级语言. ····Python的简史 python的创始人:Guido van Rossum喜欢马戏团:monty python (python 大蟒蛇)1989

[翻译] 使用 Python 创建你自己的 Shell:Part II

使用 Python 创建你自己的 Shell:Part II [TOC] 原文链接与说明 https://hackercollider.com/articles/2016/07/06/create-your-own-shell-in-python-part-2/ 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 在 part 1 中,我们已经创建了一个主要的 shell 循环.切分了的命令输入,以及通过 fork 和 exec 执行命令.在这部分,我们将会解决剩下的

[翻译] 使用 Python 创建你自己的 Shell:Part I

使用 Python 创建你自己的 Shell:Part I [TOC] 原文链接与说明 https://hackercollider.com/articles/2016/07/05/create-your-own-shell-in-python-part-1/ 本翻译文档原文选题自 Linux中国 ,翻译文档版权归属 Linux中国 所有 我很想知道一个 shell (像 bash,csh 等)内部是如何工作的.为了满足自己的好奇心,我使用 Python 实现了一个名为 yosh (Your O

python (001)----列表

Python 的列表数据类型包含更多的方法.这里是所有的列表对象方法: list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]. """-----------append-----------""" a = [1,2,3,4,5] a.append(6) print (a) list.extend(L) 将一个给定列表中的所有元素都添加到另一个列表中,相当于 a[len(a):] = L. "

【翻译】Python标准模块库之-------Subprocess

原文来自官网文档:https://docs.python.org/2.7/ 17.1. subprocess — Subprocess management New in version 2.4. The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends

Selenium with Python 001 - 安装篇

Selenium Python binding提供了简单API来使用Selenium WebDriver编写功能/验收测试.通过Selenium Python API,我们可以直观地访问Selenium WebDriver的所有功能.Selenium Python binding提供了一种方便的API来访问和操作浏览器,如Firefox,Ie,Chrome.目前支持的Python版本是2.7,3.5及更高版本. 一.安装python selenium binding pip install se

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

别开心太早,Python 官方文档的翻译差远了

近几天,很多公众号发布了 Python 官方文档的消息.然而,一个特别奇怪的现象就发生了,让人啼笑皆非. Python 文档的中文翻译工作一直是“默默无闻”,几个月前,我还吐槽过这件事<再聊聊Python中文社区的翻译>,当时我们的进度是 10.3%,远远落后于日本和法国,甚至落后于巴西! 这次所谓的中文版,当然是未完成翻译的残品.刚查了下,整体进度是 19.7%. 翻译进度不足20% 有的公众号在发布消息的时候,说明了这不是官宣.不是正式发布版,还指出了中文版的访问地址是隐藏入口.这都是忠于

[No000028]Python的使用之禅及程序员应该明白的一些道理

最近疯狂的学习ruby和python着两门语言,看到书本上一些比较赞同的段子,摘抄并翻译如下: Python的使用之禅 Beautiful is better than ugly. 美丽好过丑陋Explicit is better than implicit. 明示好过暗示Simple is better than complex. 简单好过复杂Complex is better than complicated.复杂好过杂乱Flat is better than nested.平坦好过嵌套Sp