1. 程式人生 > >Python基礎語法知識學好之後,入門進一步提升

Python基礎語法知識學好之後,入門進一步提升

提高python的路只有一條 -- 就是實踐, 寫程式碼. 然後總結, 思考, 探索. 目標也很直接: 你會覺得過去寫的xx有更好的表達方式, 過去寫的xx寫的很爛

我來把我這條路的歷程總結下來做些提示:

1. 最開始很多是copy程式碼

2. 發現這些程式碼可以抽象-- 比如, 一屏下來好幾個函式長得差不多, 只是引數或者內容邏輯上有些變化. 那麼你可以把這些函式聚合成一個函式,通過傳遞不同的引數達到一樣的效果

3. 看別人的專案, 看到別人實現你要做的事情用什麼方式, 都有幾種方式, 你甚至可以研究下哪種方法效率更高,那種方式寫出來逼格更高, 然後總結, 思考,問問自己為什麼他們這樣用, 記下來.

4. 嘗試看一些大型一點的專案的文件,甚至程式碼 -- 可能造成我的環境裡報錯了, 那就要研究為什麼, 甚至可能直接閱讀他的程式碼找到原因-我用錯了, 他的錯. 慢慢地覺得它們有點近了.

5. 發現別人的專案import了好多沒見過的module, 我直接去google或者看python文件看它是做什麼的, 都有什麼方法, 常用於什麼地方, 然後漸漸地用了幾次就記下來了.

6. 用python無非三種, 運維/devops,web開發, 資料分析/演算法. 每一種都有對應相關的庫, 你漸漸的熟悉他們的用法, 甚至你在生產環境推了xx, 效果很不錯, 心情灰常好.

7. 隨著你用的越來越深, 需要掌握的反而更多- 要學習一些前端的,學習一些linux/osx的. 你可能就會有想法, 我想做點什麼大事.

8. 這個時候可能你瞭解了MVC/MVT等等. 開始思考設計模式, 我要拆分, 讓架構更合理. 我就要推翻我過去寫的很多東西, 我準備重構了....

9. 重構過程很痛苦, 但是學到了很多. 然後設計模式也好, 設計思想也好, 漸漸的留在心裡. 以後再寫一個feature或者一個功能 會先跳出來很多為什麼, 我應該怎麼樣/不應該怎麼樣. 會發現程式碼越來越漂亮. 效率越來越高.

10. 開始吐槽同事的程式碼, 用法balabala. 既然吐槽了, 自己就不能太low對吧? 那對自己的要求就越來越高.

11. 開始閱讀大型的優秀專案的程式碼, 閱讀是很類很痛苦的. 程式設計師最大的痛苦是什麼? 看別人寫的程式碼. 你還要進入作者的角色, 考慮ta為什麼這麼寫這麼設計. 呃呃. 突然發現他的程式碼邏輯有問題, 本地測試一下果然, 然後心驚膽顫的提了個pr. 然後被接收了. 這個世界立刻不一樣了 - 你發現你原來沒有想的那麼差, 你可以吐槽你以為認為牛b的xx,yy了.

12. 越來越有信心, 看了很多專案的程式碼,也貢獻了很多. 學到了很多. 這個時候又再有了想法? python-我還有什麼不會的呢? 好多第一個蹦出來的就是--我還沒有讀過python原始碼, 好吧c我不會. 但是標準庫基本是python寫的. 看看我成天import的那些東西是怎麼寫的, 還有什麼奇葩的用法.

這個過程很費時間, 我第一次讀大概有40%沒懂 或者忘記了. 但是已經有一種感覺 - 一旦想到一個需求就能想到python標準庫裡面有沒有已經實現了的,如果有可能記不清在哪裡-這就是挽回記憶的時候了. 我有一段時間在重構這部分, 把我寫的一大段一大段刪掉 換成`from x import y`. 然後我又一個認識-python最好的用法, 最nb的功能其實都在python標準庫裡面的. 我建議每個學python得都要看一遍標準庫. 而不是看python官方文件而已. 好吧 我順便給標準庫貢獻了點程式碼-我真的很想貢獻很多, 發現英文閱讀能力, python庫的測試覆蓋很高,程式碼的作者們都很nb,造成我很費勁的只貢獻了幾行而已.

13. 從此之後, 設計一個專案我就有了新的角度 - python標準庫有沒有對應部分的實現. flask是怎麼設計的. 我能借用到什麼? celery這麼組合的, 那些我覺得不適合我這裡. 我怎麼調整? 我的這個東西在xx裡有什麼樣的作用和位置

14. 繼續給喜歡的專案貢獻程式碼, 順便讀讀它的程式碼. 覺得我不喜歡的它的用法. 我fork一個. 做成我想要它成為的樣子.

15. 突然發現用了很幾年的web框架, 現在雖然用什麼都沒問題, 也可以現學現用. 但是發現一個根本點? 我為什麼一直在用別人寫的框架. 不如自己寫一個. 好吧我正在寫....

16. 推薦下我自己建立的Python學習交流群935711829,這是Python學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享乾貨,包括我整理的一份適合零基礎學習Python的資料和入門教程。

希望對大家有幫助