博客 / 詳情

返回

關於進階這件事,這位Python大佬有話説

上世紀90年代末,一位愛看計算機雜誌的驕傲少年在機緣巧合下,參加了一場技術聚會。“當時我就震驚了!”這位少年後來説道。除了自己,他發現聚會上的其他人似乎都學識淵博。關於那些被熱烈討論的編程知識,他只能點頭附和,完全插不上話。

回到家後,這位少年下定決心要惡補編程知識,至少要在下一次聚會時插得上話啊!日復一日、月復一月,他在浩瀚的代碼海洋裏掙扎。當下一次技術聚會終於來臨時,他仍然只能點頭附和。正所謂學海無涯,上岸太難……

所幸,這位少年最終脱離了苦海,併成長為 Python 意見領袖。他就是 Al Sweigart。
圖片
Python大佬Al Sweigart

要説Python社區的大佬,Al Sweigart絕對算得上一位。他是Python軟件基金會的Fellow,也是非常活躍的Python知識傳播者。Al Sweigart 的 YouTube 頻道有 10 萬以上的粉絲,他的 Python 在線課程則已覆蓋全球 100 萬以上的學生。

或許,你更熟悉他的 Python 入門書《Python編程快速上手》(Automate the Boring Stuff with Python)——原版封面上寫着銷量已超 50 萬冊。但正如他説的,即便是他自己,在試圖沿着編程之路走得更遠時,也難免磕磕絆絆。

“軟件開發遠不止循環和函數。一旦你學完入門教程或者讀完編程入門書,試圖探尋進階法門時,卻總是會兜兜轉轉找到另外一個Hello World級別的入門引導。你在不同的學習材料之間漫無目的地徘徊,感覺自己毫無長進。你早就不是初學者了,但經驗又少得可憐,根本沒法處理複雜一些的問題。”Al Sweigart太熟悉這種感覺了。他把這個階段稱為程序員的“絕望沙漠”。

如果你正艱難地行走在這個“絕望沙漠”中,那麼好消息是,Al Sweigart 專門寫了一本書來引領你找到走出沙漠的路。這本書適合誰這本書旨在成為你在Python進階路上的引路人。如果你剛學完《Python編程:從入門到實踐(第2版)》(蟒蛇書)或者 Al Sweigart 的Python入門書《Python編程快速上手》,渴望進一步提升Python知識,那麼你就是這本書的最佳讀者。

你可以學到什麼

01 正確提問

哎呀!你好不容易寫的程序又報錯了。這個時候,你很容易對計算機產生怨氣。雖然花了幾個月的時間學習Python,但仍需要頻繁地從網上搜索答案,這很容易讓人產生挫敗感。不過請記住,即使是專業的程序員,也需要通過在網上搜索或者查閲文檔來解決編程中遇到的麻煩。Stack Overflow的調查甚至顯示,有62%的程序員每天會花半小時以上的時間在網上查找解決問題的方法[1]。如果理解Python的報錯消息,並高效地在網上尋求幫助,絕對值得好好學習。這本書用了一章的篇幅來幫你獲得這項必備技能。

02 寫可讀性強的代碼

如果你發現同事寫了一個名為gooseDownload() 的函數,你會作何反應?你們的項目準備提供大鵝下載功能嗎?

當然不是!Al Sweigart 在書中講了他的親身經歷。原來,寫這個函數的同事希望通過該函數加快產品的下載速度,而少有人知道,goose 可以作為動詞,比如 goose the engine 的意思是讓發動機轉得更快。

命名有什麼講究,又有什麼陷阱?在為變量、函數、類等編程中的元素命名時,簡潔而有描述意義的名稱能夠大大提升程序代碼的可讀性。這其中有哪些巧妙的方法?Al Sweigart 在這本書中為你娓娓道來。

03 代碼的底層邏輯

Al Sweigart 在書中使用了 Python Tutor,這是一個便捷的在線代碼可視化工具,可以幫助你逐行理解代碼的底層邏輯。來看一個例子。
圖片

04 更多內容助你從新手到高手

目錄第一部分 起步第 1 章 處理錯誤和尋求幫助第 2 章 環境設置和命令行第二部分 最佳實踐、工具和技巧第 3 章 使用 Black 進行代碼格式化第 4 章 選擇易懂的名稱第 5 章 揪出代碼的壞味道第 6 章 編寫Python風格的代碼第 7 章 編程術語第 8 章 常見的Python陷阱第 9 章 Python的奇特難懂之處第 10 章 編寫高效的函數第 11 章 註釋、文檔字符串和類型提示第 12 章 通過Git管理項目第 13 章 性能測量和大O算法分析第 14 章 項目實戰第三部分 面向對象的Python第 15 章 面向對象編程和類第 16 章 面向對象編程和繼承第 17 章 Python風格的面向對象編程:屬性和魔術方法

業內佳評

“對於Python新手,如果想讓自己更上一層樓,那麼這是難得的進階書。”
——Kushal DasCPython核心開發者Python軟件基金會董事

“這本書聚焦於三個主題:解決初級進階的重重困難;Python實踐、工具和技巧;面向對象編程。相比從多個學習資源中挖掘知識,讀這本書更有用。”
——Serdar YegulalpInfoWorld專欄作家

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.