為什麼不推薦Python初學者直接看專案原始碼

FelixZ 發表於 2021-09-22
Python

無論是有沒有其他語言的經驗,入門Python都很簡單。Python擁有簡單直觀的語法,方便的語法糖,以及豐富的第三方庫。只要一個基礎的Python教程,大家基本上都能無障礙的入門。在入門之後,很多人對於進一步學習的建議都是“做專案”、“看原始碼”,然而這樣的建議實際是較難實現的,自己執行的效率會很低。

“這種時候如果有整理好的Python程式碼片段,如果有指導分析優秀開原始碼的教程就好了。”

抱著這樣的想法,我開始從自己“低效”的學習中,整理“高效”的乾貨,希望能夠幫助到各位初學者。這就是“Python程式碼閱讀”系列。

在這個系列中,最開始是大量Pythonic的程式碼片段,不僅展示瞭如何應用Python語法和標準庫,還展示了一些有趣的技術和思維方式。

後續計劃增加GitHub上流行的簡單Python專案。以及一些小型的實用系統的實現。

通過下面的連結就可以進入到“Python程式碼閱讀”系列合集的施工現場。

連結:“Python程式碼閱讀”系列

初學Python的常見問題

對於初學者而言,Python入門很簡單。入門之後只靠基礎語法也完全可以做到平時寫寫指令碼,解決自己工作、生活上的重複性勞動。想要什麼功能,基本上都能找到方便的庫。在只求應用,不求理解的情況下,很快就能實現日常表格處理、檔案下載、郵件傳送等功能。甚至像影像處理、OCR這樣“高階”的功能也有對應的工具庫可以使用。

但是做到這種程度只是小打小鬧,想要真正的在開發工作中使用Python語言,或者是在GitHub上貢獻開原始碼,都是遠遠不夠的。這時候,初學者的常見問題主要集中在以下四點:

  1. 學會了語法,但是不會應用。
  2. 仍然是用其他語言的邏輯在寫Python程式碼,不是Pythonic的程式碼。
  3. Python專案結構不合理。
  4. 缺少對更深入主題的研究,例如裝飾器、異常處理、多程式多執行緒、設計模式等。

傳統建議的解決方案

對於已經瞭解基礎語法,學習了Python基礎資料結構的初學者,傳統的建議是做專案、看原始碼。這樣的建議不能說不正確,但是在執行起來會有各種各樣的問題,從而導致學習效率低下。

首先聊一下做專案

對於初學者而言,應聘到一個使用Python語言做開發的團隊顯然是不現實的。那麼基本上專案的來源就是自己找的練手課題或者在GitHub上參與開源專案。

自己找個專案進行練手可以說是效果最差的方式了。它實際上還是摸著石頭過河,接觸不到優秀的原始碼和實現方法,也沒有人指導。最終也只是實現了功能而已,不論是程式碼設計還是專案結構,都是閉門造車,提升有限。最大的作用也就是提高對語法、基本資料結構和標準庫的熟練程度。

至於在GitHub上找專案,一般新手能夠找到的優秀專案基本上都已經過了初始階段。在這種情況下,對於初學者而言,加入維護的難度較大,能夠做的工作更多的只是一些小bug的發現和修復,甚至於只能從文件方面開始。

然後聊一下看原始碼

對於初學者而言,雖然直接看原始碼複雜度較高,但是隻要肯下功夫,用好搜尋引擎,大部分功能性的原始碼還是可以看懂的。不過如果沒有人指導的話,效率肯定是不高的。同時很可能只是看懂邏輯,明白了功能如何實現。如果沒有一定的設計模式等知識的基礎,難以發現和理解程式碼的設計思路和原因。實際“看原始碼”的作用就少了一半,得不到精華。

我的方法

我的方法也是從傳統的方法裡面來的。說白了就是自己受苦,自己從“低效”的“看原始碼”和“做專案”的學習中,整理“高效”的乾貨,挑選合適的原始碼和專案,配上合適的講解,從而可以更好的被初學者接受,提高學習效率。

這就是“Python程式碼閱讀”系列。

目前該系列還在努力連載施工中,通過下面的連結就可以進入到“Python程式碼閱讀”系列合集的施工現場。

連結:“Python程式碼閱讀”系列

“Python程式碼閱讀”系列首先從簡單實用的函式開始,聚焦單一功能性的函式。不僅展示瞭如何應用Python語法和標準庫編寫足夠Pythonic的程式碼,還展示了一些有趣的技術和思維方式。同時這些程式碼片段也具備很高的實用性,我自己平時也會在其他專案中使用到。

後續的計劃是增加GitHub上兼具實用性和趣味性的優秀Python專案的原始碼解讀。從專案結構開始梳理,理清功能和邏輯,講解程式碼設計和實現。

同時也計劃增加一些趣味的小型系統的實現。例如小型區塊鏈、資料庫、docker、git甚至是程式語言等。通過一步一步的實現這些系統,不僅能夠學習到Python程式設計,還能學習到這些系統的設計理念和內部實現邏輯。

施工進度與地點

目前“Python程式碼閱讀”系列還處於第一階段的編寫中,也是最適合剛剛進行完Python基礎語法學習的初學者的部分。系列中展示的程式碼片段可以儘快讓初學者掌握如何應用Python語法和標準庫,同時其實用的功能性,也可以在以後的開發中用到。

通過下面的連結就可以進入到“Python程式碼閱讀”系列合集的施工現場。

連結:“Python程式碼閱讀”系列