
Think Python
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
对于一位自学程序设计的新手,他需要一本怎样的教材呢?我认为标准有以下三个方面:首先,需要涵盖足够全面的知识。虽然这看似简单,实则颇具挑战性。例如,许多人推荐的《A Byte of Python》内容过于简略,而《Learning Python》的篇幅却超过一千页,明显超出入门者的需求。初学者所需要的知识包括(a)编程语言的基本特性;以及(b)程序设计的基本原则和思想。在这一方面,《Think Python》表现出色,其240页的篇幅虽然不大,但由于文风简洁明了,已经涵盖了程序设计的关键要素,甚至对 Debugging 这样的主题进行了较为深入的探讨。其次,书籍应具备足够且具有挑战性的练习题。学习编程语言和学习外语有相似之处:都需要通过刻意练习来真正掌握。然而,许多书籍的题目设计并不完善,数量不足且缺乏足够的挑战性,难以满足刻意练习的需求。《Think Python》的课后习题编排我认为非常优秀。首先,题目本身极具趣味性,其中不少题目源自 Car Talk 的 Puzzler 节目;其次,题目的练习强度也基本足够——Allen B. Downey 在官方网站上提供的部分习题答案范例总行数达到了 8456 行(包括注释和空行),如果连同在 Python Shell 练习的代码,读完全书所编写的代码预计不会少于 2500 行;最后,这些题目具有一定的难度级别,绝非书中范例的简单重复应用,其中许多习题要求你改进书中的范例。总而言之,《Think Python》在这方面也让我印象深刻。第三个重要的标准是内容本身的趣味性。现在流行的许多编程入门书籍(例如 Head First 系列)表面上充满趣味性吸引人阅读;但仔细阅读后很快就会对书中那些简单而又虚假的问题感到厌烦。《Think Python》所涉及的问题则更具深度和难度能够促使读者静下心来思考解决方案。此外书中的不少章节所解决的问题也具有实际应用价值——例如,“Case study: data structure selection”这一章涉及文本词频分析和随机文本生成等问题,“Files”这一章则涉及根据 MD5 值查找重复文件等问题。总结来说,《Think Python》拥有诸多优点值得称赞。同时也要指出一些细节问题:例如字符串的方法不够全面;pickle 没有介绍 dump 和 load 方法而是介绍了 dumps 和 loads 方法;List Comprehension 只进行了简单的提及没有详细讲解;异常处理的部分过于简略应该增加更多的阐述;在面向对象编程 (OOP) 的部分显得冗长繁琐, 前两章可以合并精简, 而且 __init__ 方法可以更早引入, 以帮助培养良好的编程习惯. 总的来说瑕疵并不能影响这本书的整体质量.
全部评论 (0)


