译者言:

早在 2008 年 8 月,我就曾在自己的博客发表了一篇《为什么<Dive into Python>不值得推荐》(http://blog.csdn.net/lanphaday/archive/2008/08/28/2845258.aspx ),当时引起的讨论就不多说了,不过事实上到今天仍然有许多朋友留言与我讨论,让我几次贼心不死,想写再深入批判。好运的时候在我真正攒足动力之前,看到了这篇《Dive Into Python Must Die》,骂得痛快!所以我就把它简单翻译一下,借花献佛,也算是作为大家对我之前的小文的一个回应。

===================

原文:http://oppugn.us/posts/1272050135.html

译:赖勇浩(http://laiyonghao.com )

By Zed A. Shaw

《Dive Into Python》非死不可

我受够了。 《Dive Into Python》 是一本关于学习 Python 的烂书,它非死不可。 许多人找到这本书,并被它极其垃圾的章节设计弄 死在学习之路上,为此我决定宣战了。 该书不可思议,使用过时的技术,举面目可憎的例 子,并且 Mark Pilgrim(作者)面对他人评论时冷嘲热讽:

09:42 @ diveintomark @ zedshaw 完全重写了一本我 6 年没打理过的书的前3章? 是的,我即刻去办。

11:32 @ diveintomark @ zedshaw 你肯定是有很多意见。 你最好在博客上写!

这是他对我提出从书中把 ODBC 相关章节删除的答复。 现在已经 2010 年了,他那本号称能够教会大家编程的该死的书,仍然使用上世纪 90 年代的技术。 是的,事实上 他 是在 6 年前教学 Python 时开始 写他的书的。 但即使当时这也是一个愚蠢 的决定。

这在科技书历史上闻所未闻。 Mark Lutz 的书《Learing Python》已更新 4 次,内容与这门编程语言严格一致。 他的书很容易阅读,很容易 教会大家,读者并不需要有多少有关计算机的知识。

与此同时,Pilgrim 先生的书已经 6 年没有更新,虽然它是在线书籍,读者能够给作者提交补丁。 没错,这家伙的书是摆在了网络上,可是即使大家 都给他提了意见和反馈,他仍然懒得更新。 如果他把书的源码拿出来,那么大家也可以为他纠 正这些错漏,但他没有。他把自己的那砣屎放到网上免费阅读,以此作为与《Learing Python》竞争的唯一手段。

《Dive Into Python》并非仅仅因为使用了 ODBC 而被评为烂书,即使第一个例子也烂到如同狗屎。 看看你的第一个 Python 程序 ,有多少东西需要初学者能够憣然领悟:

  1. 带着一砣巨大的文档字符串 去定义函数。
  2. 面目可憎的双下划线变量,还使用了一个垃圾字 体,让人看起来以为是单下划线。
  3. 上来就用 list comprehension 替代了 for 循环,这是用来把元组中的元素格式化后串接在一起功能。
  4. 定义字典的时候使用来并不 需要的反斜杠来格式化代码。

靠,这是一个设计良好的“第一个例子”吗? 更糟糕的是它以 ODBC 为主线来教 Python。

尽管 Python 实际上是设计得极易于使用的少数语言之一,但当初学者看到这本书,会觉得它如此复杂和艰难, 能够让他们羞愧到恨不得一 头撞死在这本书上。

《Dive Into Python 3》的第一个例子也烂得像砣屎。 让我们掩鼻来看看所谓的你的第一个 Python 程序 。 这是多么操蛋的事情啊! 你写的第一个程序居然涉及 如此多的知识点:

  1. 带有字符串和列表和多层词典。
  2. 函 数后面紧跟一砣文档字符串,混淆了语法。
  3. 抛出异常。
  4. 如 何使用三元运算符风格的 if 语句。
  5. 循环嵌套。
  6. 主 函数技法使用了非常烂的字体,双下划看起来就像单下划线一样。

这就是所谓的第一个 程序? 当有人叫初学者去读《Dive Into Python》,他们遇到这样的例子,应该会泄气吧? 我希望作者能够声明或警告 大家:这不是初学者的书,但他没有。 事实上,他用整整一章的篇幅来写“安装 Python 3”,显然他就是写给初学者的。

这本书一开始就使用糟糕透顶的例子,读者难以循序渐进地学习,它的存在实际上伤害了 Python。 当初学者遇到挫折,他们会气馁,然后转向另一种语言。 我个人有太多的朋友原本渴望学习编程,但在我警告他们之前找到了这砣恶臭的狗屎,最后他们远离了编程。

我说完了。 Pilgrim 先生并不理解初学者的需要(其他“专家”也如此),只能给大家一砣狗屎。 由于他不愿意更新图书和解决它那些显而易见的问题,而且他拥有这样做的自由,那么唯一能做的就是请求大家 推荐这本书。

不管出于什么目的,请告诉他人不要从《Dive Into Python》开始学习。 否则你只会使他远离这门语言,甚至是远离编程。

《Dive Into Python》非死不可相关推荐

  1. 为什么《Dive into Python》不值得推荐

    2010 年 5 月 5 日更新:我翻译了一篇<<Dive Into Python>非死不可>作为对本文观点的进一步支持和对评论的回复,请见:http://blog.csdn. ...

  2. Dive into Python

    写这篇文章的原因完全是为了督促自己每天晚上看完两章<Dive Into Python>这本书,因此,很多内容都是摘抄自原书的翻译版或者是自己瞎想,于是就顺带着记录了下来.此前已经看完前两章 ...

  3. <Dive into Python>大补贴(1)

    <Dive into Python>大补贴 作者:赖勇浩 前言 前几日发了一篇<为什么<Dive into Python>不值得推荐>的贴子,有朋友指出这本书虽然不 ...

  4. <Dive into Python>大补贴

    作者:赖勇浩 前言 前几日发了一篇<为什么<Dive into Python>不值得推荐>的贴子,有朋友指出这本书虽然不适合初学者,但里面的一些内容还是可以当作提高篇的,最大的 ...

  5. python非贪婪、多行匹配正则表达式例子[转载]

    python非贪婪.多行匹配正则表达式例子[转载] 一些regular的tips: 1 非贪婪flag >>> re.findall(r"a(\d+?)", &q ...

  6. Python非本地语句

    本文翻译自:Python nonlocal statement What does the Python nonlocal statement do (in Python 3.0 and later) ...

  7. <Dive into Python>大补贴(2)

    赖勇浩(http://laiyonghao.com) 第二贴 在 2.2 节函数声明中,DIP 讲述了关于函数定义的一些基础知识,后来又在 4.2 节使用可选参数和命名参数中讲述了关于函数参数的较为深 ...

  8. python非递归前序遍历二叉树_Python非递归实现二叉树的后续遍历

    leetcode 145. Binary Tree Postorder Traversal 思路一: 使用一个栈stack保存经过的根结点,另一个栈flag保存每个结点的右子树是否遍历: 如果根结点存 ...

  9. 人生,还没困难到非死不可

    最近半个月,美国著名的Facebook公司,出了好几件大事. 第一件事,2019年9月19日,一名陈姓中国软件工程师在Facebook加州总部跳楼自杀. 第二件事,2019年10月4日,一名软件工程师 ...

最新文章

  1. 逆矩阵、伪逆矩阵:数据的压缩和复原
  2. Java 基础【12】 日期类型
  3. 关于深度学习框架Hamaa与Python API文档生成工具Sophon
  4. JS核心基础数组的操作概述
  5. 一根绳子从一头烧需30时分钟_小学生一分钟跳绳满分训练指南
  6. Qt5及模块架构分析
  7. 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)...
  8. FFMPEG结构体分析:AVStream
  9. Atitit.ioc 动态配置文件guice 设计原理
  10. Android反编译实战-去广告
  11. 显示最新的Picasaweb上传
  12. CCD传感器成像、尺寸、曝光时间
  13. 【关于c/c++中开平方函数sqrt()的用法】
  14. layui+thymeleaf 点击弹框右上角叉号刷新父页面
  15. ECharts 示例——双Y轴
  16. 一台电脑控制多部手机怎么实现
  17. C语言代码覆盖率测试软件,代码覆盖率检测工具GCOV
  18. 【java并发探赜索隐】判断标志、死锁、守护进程
  19. Bilstm+crf中的crf详解
  20. 数据库(Mysql)的四种隔离级别

热门文章

  1. 百度与重庆市人力资源和社会保障局达成战略合作,共建AI人才产业基地
  2. 2020 蓝桥杯总结(内附20GB资料)
  3. matlab 2014 win7 64位,win764位系统电脑肿么安装matlab2014a
  4. 第五章 投资性房地产
  5. Core Java For The Impatient-阅读笔记1.基本的编程结构
  6. Android加载自定义字体出错,Android设置自定义字体的解决方案
  7. Re:惠普DJ3836打印机之无法连接wifi
  8. mysql实现序列自增_MySQL实现序列自增
  9. 宝塔面板安装php扩展
  10. 开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流