初学者可以用,但也仅仅是可以的程度。
2016-06-24
译者送了我一本书,希望我能写点评价,我也不是谦虚,我一个大学生,怎么就能给人写书评呢,作者说组织上已经决定了,就是你了。我念了两句诗,叫“苟利国家生死以,岂因祸福避趋之”。就把地址给他了。
书到了之后薄薄一本,80多页,书名唤作《一日精通python编程》。
原书题目叫learn python in one day and learn it well ,显然作者并没有任何意思说“精通python编程”。译者以21天精通xxx的梗开玩笑其实对初学者是一个挺不好的事情,一来这本书面向的是连什么叫做脚本语言什么叫做可执行程序可能都不理解的CS初学者,不能指望他们理解这个梗。二来初学者们一旦把看完这一本书当做“精通python”,对个人没有什么好处,无形之间落得浮夸的罪名,然而罪不在学习者,他可能本来也是一个虚心求教的人。
对于初学者,我的态度是学习编程,成就感大过天。要是一本书花三百页事无巨细地给你系统讲解python的来龙去脉,python标准库都怎么用,相信没有人能熬得过三章。这本书有一点这个思想,比较让人excited。把处理用户输入放在了很靠前的位置,让学习者学习两个小时就能写出一个简单的,可以交互的程序出来。这一点比什么都好。然而我还是推荐先给一个人类都能看得懂的小程序出来,让学习者明白一个程序是如何运行的,然后再讲解list tuple都是什么。
另外一点就是,给初学者写的书,我觉得有必要的事情是把初学者当成傻逼来处理,什么东西都要本着“他可能不会”的原则来翻译,拒绝使用“黑话”“贯口”,尽管看上去显得非常专业,像黑帮接头暗号一样,懂的人会心一笑,不懂的人吓尿裤子---然而你是要让他会心一笑的,而不是让他尿裤子。
比如“整形”,叫做整数类型,简称整形,所有受过九年义务教育的人都能看懂,叫做“整形”,便只有学计算机的人和那些割过双眼皮隆过胸的人懂了。
比如整形的定义。写形如a = 2 , b = 3 足够了,比什么都强,一定要先给一个形式化的定义出来,这就叫做掉书袋。variableName = initial value,又臭又长,又难以理解,除了增加词汇量没有任何作用。
异常处理出现的偏早。异常处理放到面向对象后面就可以,这本书没有写面向对象(我觉得这事是正确的)的话,那异常处理也可以放到下一本书来写,下一本书书名我已经想好了,叫做《一日成为python专家》。
文件处理可以出现。对初学者提供一个简单的数据存储的功能。
但是模块这东西我建议可以往后放一放,放到最后一章来学习。
科学计算那一章其实完全没必要,不如搞一个小的五脏俱全的项目来的好,比如一个命令行的todo。写一个toy project总好过写一堆精彩的废话。
总而言之,初学者可以选择看看。有一丁点经验的python学习者,就不需要购买翻阅这本书了。