不要誤會,本書與成功學無關。
最初知道 Python,是因為《程序員》上關于這門語言的連載文章。據(jù)說作者“惡魔吹著笛子來”就是Javaeye上有名的T1大人。從那時起,我開始對這門語言 有很大的興趣,開始找各種相關的資料。 基本上,如果讓我談及自己的職業(yè)生涯或者人生??偫@不開 Python 這門編程語言,以及 Python Tutorial 的翻譯經(jīng)歷。不過就離題比較遠了。 回到主題上,Python是一門值得學習的語言。限于大環(huán)境,我們廣大的程序員學習編程技術時,往往是從兩個并不理想的途徑入手,一個是類似 TC、TP這樣的,基于過時的平臺環(huán)境,知識書籍也很多年沒有更新的工具;另一種是完全采用產(chǎn)業(yè)界常見的技術,忽略其購買成本和知識體系的內(nèi)容,走進高校 的宿舍,我們可以看到,學生們的電腦中總是充斥著各種“完美破解”、“完美漢化”的VS和MyEclipse等IDE。學習者對于計算機體系結構、對于基 礎的算法知識都不夠重視。對于軟件項目組織和架構的大局觀被IDE和框架完全割裂。 這并不是工具的錯誤,而是生產(chǎn)和學習被倒置帶來的問題。很多在實踐中有價值的工具和技術,并不適合作為初學的教材。例如C#和.net CLR中,有很多有趣的技術,作為前C#程序員,我強烈推薦每一個學習者和從業(yè)者都讀一下Jeferry的《.net 框架程序設計》,但是很多學習者卻是守在IDE前拖了多年控件,卻一直沒有關注過語言和運行時的知識。 我并不是要貶低誰,我自己也是過了幾年才意識到這種學習方法帶來的弊病。很幸運的是在我體會到瓶頸所在時,遇到了Python。這門語言足夠 簡單,但是也非常強大。適合做初學者的學習工具。又具有很大的實用價值。Python作為通用語言,不依賴于特定的框架、IDE、應用場景和編程范式。從 練習的小程序、系統(tǒng)管理的小工具,到通用產(chǎn)品,web網(wǎng)站甚至大型的分布式服務都可以勝任。它高度透明的運行時環(huán)境,優(yōu)雅的動態(tài)結構,以及面向數(shù)據(jù)結構的 強大語法,都有助于學習者建立良好的知識體系和思維方式。 另一個非常棒的地方在于Python有一份很好的入門教程,出自語言設計者本人,循序漸進,由淺入深。而且,它的電子版可以直接在 Python官網(wǎng)閱讀,也可以自由下載。國內(nèi)不方便購買實體書的讀者,也可以下載中英對照版本(http://wiki.woodpeck Python 是我最重要的工作語言,但卻是我買書最少的,我唯一依賴的 Python Tutorial 是網(wǎng)上下載,自己翻譯的,還有一本陳儒先生的《Python 源碼剖析》屬于外延書籍,并非針對入門者的??梢哉f只需要 Python Tutorial,就足以讓學習者成為合格的 Python 程序員(當然,如果你要勝任一個開發(fā)崗位,總要學習相關的各種技術,例如做Web要懂JS、HTML、數(shù)據(jù)庫;做系統(tǒng)管理要懂管道、文件、網(wǎng)絡Shell 等等)。 很多在互聯(lián)網(wǎng)上求助的Python學習者,其實只要認真讀一下Python Tutorial,其問題就根本不存在。這本可以免費閱讀的教程比很多商業(yè)出版物更系統(tǒng)全面。尤其是作者比絕大多數(shù)的技術書作者更了解Python,更了 解如何用好這門語言。 我推薦讀者除了基本的語法知識,應該認真學習一下列表推導式、生成器和各種基本數(shù)據(jù)結構的用法,這是Python不同于其它語言的魅力所在。 相對于靜態(tài)OO語言,它提供更多的針對數(shù)據(jù)結構的函數(shù)式規(guī)則定義語法,以及內(nèi)置的高級數(shù)據(jù)結構,這使得我們可以從更高的視角去處理信息;相對于純FP語 言,它提供更友好的程序設計方式和靈活強大的OO能力,使Python成為一門更友好易學的實用語言。 Python Tutorial 中沒有提及關于元類等高級 OO 知識。這些技術在我學習使用Python的前六七年中一直沒有使用過。當然它們對于編寫一些高度通用或可擴展的程序,還是很有意義的,元類編程的知識,可 以在網(wǎng)上搜索 shhg 撰寫的一些中文文章;或者 limodou 的 Ulipad 項目,其源碼是很好的元類技術實踐。 |
|