在瞭解的Python的基礎後如何尋找小項目程式來學習?哪些網站社區相關的資源比較多?
回複內容:
感謝 @壯壯 妖. 我覺得這基礎離寫程式還不夠,就算看也只能停留在小指令碼這個水平. 遇到複雜的文法或者調用了模組還是搞不定的. 我個人建議買本或者去讀. 讀的過程體驗它的例子, 還可以在讀的過程中或者看完之後去嘗試寫一些程式. 程式是和自己的工作或者興趣相關. 可以先實現, 然後最佳化/加feature. 過程中出現困難或者不知道改怎麼進行思路可以去google/github/stackoverflow上面找類似的問題或者項目, 嘗試理解並且‘搬’到自己的項目裡面.
提高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. 對我來說就發生到這裡,之後的還不知道
希望對大家有協助新手推薦一下自己喜歡的 Dive Into Python 3
。
- 通過很多執行個體進一步學習 Python
- 每個章節末尾會有 further reading,進行更深入的學習
另外該書這裡(Where to Go From Here
)有各種進階主題的資料推薦。https://github.com/Yixiaohan/show-me-the-code
http://www.pythonchallenge.com/
http://www.fullstackpython.com/best-python-resources.html
http://pbe.lightbird.net/
http://www.lightbird.net/dbe/
https://github.com/karan/Projects
http://www.reddit.com/r/Python/
https://www.hackerrank.com/
根本停不下來。謝邀。GitHub看書的話,從下面的列表中選一本。
https://wiki.python.org/moin/AdvancedBooks
做項目的話,發揮想象力,不要一味模仿,否則編程就沒意思了不是嗎?很多人問過類似的話,我的回答見 關於Python編程的一些問答
中“怎樣學習Python”小節。三個方向:
① 動手開發小項目,比如樓上說的爬蟲網站;
② 瞭解學習一些進階用法,列表解析式,裝飾器之類。
③ 學習python源碼,看看C語言是怎麼實現對象機制,怎麼做記憶體回收。
播放地址
https://github.com/pythonpeixun/article/blob/master/python_shiping.md
迪艾姆python培訓_python編程思路1.flv
迪艾姆python培訓_python編程思路2.flv
迪艾姆python培訓_python培訓_python爬蟲.flv
迪艾姆python培訓_python培訓_while迴圈.flv
迪艾姆python培訓python培訓編程思路三.flv
迪艾姆python培訓python培訓函數抽象.flv
迪艾姆python培訓python培訓類抽象.flv
迪艾姆python培訓python培訓嵌套函數.flv
迪艾姆python培訓python培訓執行個體對象.flv
迪艾姆python培訓_sublime text配置.flv
迪艾姆python培訓_tornado之hello world.flv
迪艾姆python培訓_web.py之hello world.flv
我把我的學習方法說給你聽聽吧
首先是掌握基礎知識,網上有很多基礎知識,比如這個網站就有Python全套的視頻教程,可以去看看:Python視頻教程_Python開發實戰視頻
而且裡面還有很多項目教程,掌握基礎知識之後可以練練手
然後掌握基礎知識之後,就是每天打代碼,練習,從練習中不斷熟練,也能發現自己沒掌握的,或者新的知識點
最後就是找些小項目練習,根據練習中掌握一些人家的思維,以後遇到大的項目,也能從很多方面思考。題主可以結合openCV,然後往映像方向搞搞,很有意思