前言
很多剛開始學習Python的初學者,一般看文章,看視頻,都會需要直接獲取源代碼,其實這樣對自己的學習是不怎么好的,因為無論是有沒有其他語言的經驗,入門Python都很簡單,Python擁有簡單直觀的語法,方便的語法糖,以及豐富的第三方庫,只要一個基礎的Python教程,大家基本上都能無障礙的入門,在入門之后,很多人對于進一步學習的建議都是“做專案”、“看原始碼”,然而這樣的建議實際是較難實作的,自己執行的效率會很低,
“這種時候如果有整理好的Python代碼片段,如果有指導分析優秀開源代碼的教程就好了,”
抱著這樣的想法,我開始從自己“低效”的學習中,整理“高效”的干貨,希望能夠幫助到各位初學者,這就是“Python代碼閱讀”系列,
在這個系列中,最開始是大量Pythonic的代碼片段,不僅展示了如何應用Python語法和標準庫,還展示了一些有趣的技術和思維方式,
后續計劃增加GitHub上流行的簡單Python專案,以及一些小型的實用系統的實作,
通過下面的鏈接就可以進入到“Python代碼閱讀”系列合集的施工現場,
鏈接:“Python代碼閱讀”系列
初學Python的常見問題
對于初學者而言,Python入門很簡單,入門之后只靠基礎語法也完全可以做到平時寫寫腳本,解決自己作業、生活上的重復性勞動,想要什么功能,基本上都能找到方便的庫,在只求應用,不求理解的情況下,很快就能實作日常表格處理、檔案下載、郵件發送等功能,甚至像影像處理、OCR這樣“高端”的功能也有對應的工具庫可以使用,
但是做到這種程度只是小打小鬧,想要真正的在開發作業中使用Python語言,或者是在GitHub上貢獻開源代碼,都是遠遠不夠的,這時候,初學者的常見問題主要集中在以下四點:
- 學會了語法,但是不會應用,
- 仍然是用其他語言的邏輯在寫Python代碼,不是Pythonic的代碼,
- Python專案結構不合理,
- 缺少對更深入主題的研究,例如裝飾器、例外處理、多行程多執行緒、設計模式等,
傳統建議的解決方案
對于已經了解基礎語法,學習了Python基礎資料結構的初學者,傳統的建議是做專案、看原始碼,這樣的建議不能說不正確,但是在執行起來會有各種各樣的問題,從而導致學習效率低下,
首先聊一下做專案
對于初學者而言,應聘到一個使用Python語言做開發的團隊顯然是不現實的,那么基本上專案的來源就是自己找的練手課題或者在GitHub上參與開源專案,
自己找個專案進行練手可以說是效果最差的方式了,它實際上還是摸著石頭過河,接觸不到優秀的原始碼和實作方法,也沒有人指導,最終也只是實作了功能而已,不論是代碼設計還是專案結構,都是閉門造車,提升有限,最大的作用也就是提高對語法、基本資料結構和標準庫的熟練程度,
至于在GitHub上找專案,一般新手能夠找到的優秀專案基本上都已經過了初始階段,在這種情況下,對于初學者而言,加入維護的難度較大,能夠做的作業更多的只是一些小bug的發現和修復,甚至于只能從檔案方面開始,
然后聊一下看原始碼
對于初學者而言,雖然直接看原始碼復雜度較高,但是只要肯下功夫,用好搜索引擎,大部分功能性的原始碼還是可以看懂的,不過如果沒有人指導的話,效率肯定是不高的,同時很可能只是看懂邏輯,明白了功能如何實作,如果沒有一定的設計模式等知識的基礎,難以發現和理解代碼的設計思路和原因,實際“看原始碼”的作用就少了一半,得不到精華,
我的方法
我的方法也是從傳統的方法里面來的,說白了就是自己受苦,自己從“低效”的“看原始碼”和“做專案”的學習中,整理“高效”的干貨,挑選合適的原始碼和專案,配上合適的講解,從而可以更好的被初學者接受,提高學習效率,
這就是“Python代碼閱讀”系列,
目前該系列還在努力連載施工中,通過下面的鏈接就可以進入到“Python代碼閱讀”系列合集的施工現場,
鏈接:“Python代碼閱讀”系列
“Python代碼閱讀”系列首先從簡單實用的函式開始,聚焦單一功能性的函式,不僅展示了如何應用Python語法和標準庫撰寫足夠Pythonic的代碼,還展示了一些有趣的技術和思維方式,同時這些代碼片段也具備很高的實用性,我自己平時也會在其他專案中使用到,
后續的計劃是增加GitHub上兼具實用性和趣味性的優秀Python專案的原始碼解讀,從專案結構開始梳理,理清功能和邏輯,講解代碼設計和實作,
同時也計劃增加一些趣味的小型系統的實作,例如小型區塊鏈、資料庫、docker、git甚至是編程語言等,通過一步一步的實作這些系統,不僅能夠學習到Python編程,還能學習到這些系統的設計理念和內部實作邏輯,
施工進度與地點
目前“Python代碼閱讀”系列還處于第一階段的撰寫中,也是最適合剛剛進行完Python基礎語法學習的初學者的部分,系列中展示的代碼片段可以盡快讓初學者掌握如何應用Python語法和標準庫,同時其實用的功能性,也可以在以后的開發中用到,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/302735.html
標籤:其他
