譯者言:
早在 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
)
goog-gtc-from-human" dir="ltr">By Zed A. Shaw
《Dive Into Python》非死不可
goog-gtc-from-mt" dir="ltr">我受夠了。
《Dive Into Python》
是一本關於學習
Python 的爛書,它非死不可。
許多人找到這本書,並被它極其垃圾的章節設計弄
死在學習之路上,為此我決定宣戰了。
該書不可思議,使用過時的技術,舉面目可憎的例
子,並且 Mark Pilgrim(作者)面對他人評論時冷嘲熱諷:
09:42 @
diveintomark @ zedshaw 完全重寫了一本我 6 年沒打理過的書的前3章?
是的,我即刻去辦。
11:32
@ diveintomark @ zedshaw 你肯定是有很多意見。
你最好在部落格上寫!
goog-gtc-from-human" dir="ltr">這是他對我提出從書中把 ODBC 相關章節刪除的回覆。
現在已經 2010
年了,他那本號稱能夠教會大家編程的該死的書,仍然使用上世紀 90 年代的技術。
是的,事實上
他
是在 6 年前教學 Python 時開始
寫他的書的。
但即使當時這也是一個愚蠢
的決定。
這在科技書曆史上聞所未聞。
Mark Lutz 的書《Learing
Python》已更新 4 次,內容與這門程式設計語言嚴格一致。
他的書很容易閱讀,很容易
教會大家,讀者並不需要有多少有關電腦的知識。
與此同時,Pilgrim 先生的書已經 6
年沒有更新,雖然它是線上書籍,讀者能夠給作者提交補丁。
沒錯,這傢伙的書是擺在了網路上,可是即使大家
都給他提了意見和反饋,他仍然懶得更新。
如果他把書的源碼拿出來,那麼大家也可以為他糾
正這些錯漏,但他沒有。他把自己的那砣屎放到網上免費閱讀,以此作為與《Learing Python》競爭的唯一手段。
《Dive
Into Python》並非僅僅因為使用了 ODBC 而被評為爛書,即使第一個例子也爛到如同狗屎。
看看你的第一個 Python 程式
,有多少東西需要初學者能夠憣然領悟:
- 帶著一砣巨大的文檔字串
去定義函數。
- 面目可憎的雙底線變數,還使用了一個垃圾字
體,讓人看起來以為是單底線。
- 上來就用 list
comprehension 替代了 for 迴圈,這是用來把元組中的元素格式化後串接在一起功能。
- 定義字典的時候使用來並不
需要的反斜線來格式化代碼。
靠,這是一個設計良好的“第一個例子”嗎?
更糟糕的是它以 ODBC
為主線來教 Python。
儘管 Python
實際上是設計得極便於使用的少數語言之一,但當初學者看到這本書,會覺得它如此複雜和艱難,
能夠讓他們羞愧到恨不得一
頭撞死在這本書上。
《Dive Into Python
3》的第一個例子也爛得像砣屎。
讓我們掩鼻來看看所謂的你的第一個
Python 程式
。
goog-gtc-from-human" dir="ltr">這是多麼操蛋的事情啊!
你寫的第一個程式居然涉及
如此多的知識點:
- 帶有字串和列表和多層詞典。
- 函
數後面緊跟一砣文檔字串,混淆了文法。
- 拋出異常。
- 如
何使用三元運算子風格的 if 語句。
- 迴圈嵌套。
- 主
函數技法使用了非常爛的字型,雙下劃看起來就像單底線一樣。
這就是所謂的第一個
程式?
goog-gtc-from-human" dir="ltr">當有人叫初學者去讀《Dive Into Python》,他們遇到這樣的例子,應該會泄氣吧?
我希望作者能夠聲明或警告
大家:這不是初學者的書,但他沒有。
事實上,他用整整一章的篇幅來寫“安裝
Python 3”,顯然他就是寫給初學者的。
這本書一開始就使用糟糕透頂的例子,讀者難以循序漸進地學習,它的存在實際上傷害了 Python。
當初學者遇到挫折,他們會氣餒,然後轉向另一種語言。
goog-gtc-from-human" dir="ltr">我個人有太多的朋友原本渴望學習編程,但在我警告他們之前找到了這砣惡臭的狗屎,最後他們遠離了編程。
我說完了。
goog-gtc-from-human" dir="ltr">Pilgrim 先生並不理解初學者的需要(其他“專家”也如此),只能給大家一砣狗屎。
由於他不願意更新圖書和解決它那些顯而易見的問題,而且他擁有這樣做的自由,那麼唯一能做的就是請求大家不
推薦這本書。
不管出於什麼目的,請告訴他人不要從《Dive Into Python》開始學習。
否則你只會使他遠離這門語言,甚至是遠離編程。