標籤:

學個Python爽一把

現在Python已經在編程屆家喻戶曉了,有各種各樣Python從入門到精通的文章,每個軟體公司里也都至少有一個會Python的人。

以後會編程應該作為一個基本的技能,就跟會上網聊天打字一樣,無論從事什麼職業。

各種類型的編程語言那麼多,為什麼選擇Python?雖然各種各樣的人已經表達過各種各樣的觀點,我還是要表達一下自己的看法。

從本質上來說人願意花時間精力去學習一個東西是要求回報的,這個回報可能是精神上的,也可能是物質上的,可能是短期的,也可能是長期的。如果某個人說做什麼事情不求回報,那麼「不求回報」本身就是一種回報。

舉一個最簡單最常遇到的例子,同學A需要使用計算機對一堆數據做一個二次處理,由於處理過程相對複雜,已有的軟體提供的界面根本不能滿足要求。A需要學習一門編程語言,然後寫少量的代碼來完成這個任務。

A去Google了一下「編程語言學習」,發現各種各樣的語言不下50種,每一種都有自己號稱的各種各樣的優點和推薦清單。作為從來沒有接觸過編程的A來說如何快速完成數據的處理才是關鍵,簡單的就是最好的。

A需要考慮幾點:

  1. 寫完代碼直接運行就能出來結果

  2. 語法簡潔,完成功能需要的代碼越少越好

  3. 內置數據結構和第三方庫豐富

  4. 安裝運行方便,入門教程多,上手快

A嘗試了各種各樣的「Hello World」後選擇了Python。

上面當然只是一個故事,一個Hello World當然不能說服A去花時間精力探索一門新語言。要知道對於初次接觸編程的A來說,第一門編程語言的作用除了完成數據處理的任務之外,還要解決後續更重要的信心和興趣問題。

  1. 最最重要的是0基礎多長時間可以學會(能夠解決自己的短期需求即可)

  2. 有沒有好的集成開發環境,寫代碼和調試起來更加順暢

  3. 學習過程中能否不斷的感受到編程帶來的快感

  4. 有沒有很多別人的代碼可以參考

  5. 運行時遇到了問題是不是很容易解決

  6. 遇到無從下手的地方是不是有人可以請教

  7. 學會之後能不能解決更多通用問題以及大型問題

實際情況是基於上面六個問題根據自己幾年的編程經驗和學習經驗我向A鄭重推薦了Python。

理由如下:

  1. 每天堅持三個小時學習時間,只需要持續兩個周就可以解決數據處理問題

  2. IDE有PyCharm,可以方便查看各種第三方庫的實現

  3. Python有各種各樣的第三方庫,只要想到的有意思的都有現成的可以直接拿來用,你和快感之間就差一個想法了

  4. Github和Stackoverflow上幾乎可以搜到能夠想到的任何example

  5. Python已經好多年,你絕對不是第一個遇到這個問題的人

  6. 現在Python的各種社區和論壇以及聊天群非常多,99%的人樂意為你解答

  7. 從物聯網到大數據分析到網站製作到處都有python的影子和成熟解決方案

我個人推薦的學習方法是從寫一個簡單的Python爬蟲開始,爬自己感興趣的網頁的信息,比如對電影感興趣可以爬豆瓣電影的評分,對美女感興趣可以爬各種號稱人體藝術的網站,吃貨可以爬美食的網站......對爬到的數據N次加工後再用Python做一個簡單的網站展示出來。

這一套完整的堅持擼下來初步估計在十五周時間,在這個過程中可以學會Python的基礎語法,HTTP協議,網頁的解析,資料庫的操作,數據處理,Web後台開發,Web前端開發以及整個數據流從伺服器採集到瀏覽器展示的流程。

如果能夠堅持到這裡,那麼可以說編程入門了,能夠優雅的應付平時大部分簡單的需求了,已經對編程有感覺了。

後面想在Python編程方面繼續提高,強強強強力推薦「500 Lines or Less」,看看真正的大牛用不到500行的代碼展示Python之美。


推薦閱讀:

TAG:編程 | Python |