最近公司來了一個實習生妹子,在讀商科碩士,平時我會讓她做做數據清洗的工作,她工作倒是賊認真,但對電腦屬於一竅不通,不會寫SQL,Ecxel也很菜,對於很簡單的取數往往會花很多的時間。
她向我倒苦水說,她在學校裏嘗試學過資料庫、SQL、Python、R,但沒有一個入了門,基本是學個兩三天就開始懷疑自己能力不行,屬於編程絕緣體那種。 我大概知道她的困惑,其實原因也很簡單,她太缺乏練習了,一直用意念學編程,這哪夠呢?
就拿Python來說,Python是典型的入門簡單、深入套用難的程式語言,想要精進Python,唯一的方法就是練習,保證每天都有一定的程式碼量,不斷地寫指令碼、做計畫,切勿只看不做。
很多人盤桓在初學階段,沒多久就放棄了,就是沒領悟到「編程是一門實踐的藝術」。
如何去練習Python?
首先在新手階段,Python書籍、教程裏的每一段程式碼都要親手去敲一遍,體驗程式碼從輸入到輸出的閉環邏輯,這樣能讓你快速理解編程是怎麽回事,不至於一直抽象的去感受。
當你過了新手階段,也就是會安裝python、會使用IDE、了解基礎語法後,就扔掉教程,去解決具體問題。
Python能套用的場景很多,比如爬蟲、數據建模、機器學習、視覺化、搭建web、量化分析、辦公自動化等,你總能找到自己的痛點和需求。
舉個例子,你想爬取某電商商品數據,那麽就立馬幹起來,不要覺得python還不熟悉沒法做。
首先定位好需求,為什麽爬數據?爬哪些數據?什麽頻率爬?爬取的數據存在哪?爬好數據怎麽用?
接著確定技術方案,用request+xpath解決靜態網頁,用selenium解決動態網頁,或者其他工具。
這些技術用到的第三方庫可以即用即學,不會的去搜尋去看部落格,不要執著於語法細節,務必把鏈路跑通。
整個案例操作下來,你會對以前不熟悉的語法有更深的認知,也會掌握相關庫的用法,最重要的你有了使用python解決問題的意識,也知道怎麽去檢索。
所謂輸出倒逼輸入,深度套用即深度學習。
「抄襲」並不羞恥,copy才是毒藥
可能有人會說,遇到技術問題總是想不到好的程式碼思路。
這很簡單,去「抄襲」,去模仿,但不要copy。
你可以把別人的演算法、指令碼親手敲出來,放到自己的程式碼裏。這個過程需要加入自己的理解,因為程式碼可能需要微調、最佳化。
GitHub 上有無數成熟的python程式碼模組,你可以大膽地去模仿、借用,久而久之你也能寫出優秀的程式碼。
新手去哪裏找Python練手計畫?
Python作為目前最主流的程式語言之一,很多網站、比賽都能找到大量的開源計畫,比如github、kaggle、gitee、kecsi、tianchi等等。
這裏重點講講Github,Github是綜合的程式碼網站,擁有世界上最多的python資源。
如果你用Github搜Python,會出現兩百多萬個結果,也就是說這麽多repository都和Python有關
這是什麽概念呢?這個數位幾乎是所有程式語言中最多的,而且遠遠超過C++、JavaScript等
簡單推薦幾個Python倉庫,初學者沒事可以多去瞅瞅。
Awesome Python
這個計畫收集了Python生態中各領域核心第三方庫,內容包括:Web 框架、網路爬蟲、網路內容提取、樣版引擎、資料庫、數據視覺化、圖片處理、文本處理、自然語言處理、機器學習、日誌、代分碼析等
比如說數據視覺化領域,就有matplotlib、seaborn、dash等庫,包含其文件連結及簡要介紹
這個計畫還有中文版
Python-100-Days
這是一個中文版python學習計畫,名叫Python - 100天從新手到大師。
作者以100天為周期,把Python從入門到進階的知識點分門別類,做成教程形式。
當然,這個教程不光有Python語法,還有爬蟲、數據分析、機器學習、資料庫、軟體測試、web開發等各種套用層知識,足夠讓你跨入Python世界的大門。
作者對於Python學習和就業的建議也非常中肯,這裏摘抄給大家參考。❝
計畫開頭給初學者的幾個建議,也值得好好體會
1、Make English as your working language. (讓英語成為你的工作語言)
2、Practice makes perfect. (熟能生巧)
3、All experience comes from mistakes. (所有的經驗都源於你犯過的錯誤)
4、Don't be one of the leeches. (不要當伸手黨)
5、Either outstanding or out. (要麽出眾,要麽出局)
❞My Python Examples
這是一個python指令碼案例大集合,作者總結了日常工作中的實用指令碼,包括檔整理、圖片處理、視訊下載、數據轉化等各種程式碼。
作者也說,他不是程式設計師,整理這些指令碼只是為了更方便快捷地解決問題。
我想這也是很多人學習python的訴求,為解決問題而學習,這是最高效的。
free-programming-books-zh_CN
這是一個免費技術書籍分享計畫,作者收集了IT領域各類主流中文/英文技術書,部份含有下載路徑或者電子書連結。
這其中主要是github和stackoverflow推薦的書籍,層層篩選,相信不會辜負讀者。
計畫裏你可以根據索引來選擇某種語言的書籍,其中python書籍非常豐富,包含了cookbook、thinkpython等經典書籍。
語法&第三方庫&套用
HelloGitHub
這是一個非常受歡迎的開源計畫分享計畫,作者每周都會篩選github上流行的計畫,按語言型別匯總成一個雜誌式看板。
該計畫內容包括:有趣、入門級的開源計畫、開源書籍、實戰計畫、企業級計畫等,包括Python等各種語言。
裏面的很多Python計畫非常有意思,大家可以去看看,模仿好東西是怎麽開發出來的。
其實網上到處是Python的學習資源,你想要自學,壓根就不需要去買什麽課程,如果這點學習和檢索能力都沒有,那還怎麽工作幹活啊。說到底,練習是學習編程最重要的能力和基礎,脫離了練習,其他的努力都是空中樓閣啊。
加入知識星球 【我們談論數據科學】
600+ 小夥伴一起學習!