學習任何一門語言都是從入門(1年左右),通過不間斷練習達到熟練水準(3到5年),少數人最終能精通語言,成為執牛耳者,他們是金字塔的最頂層。雖然萬事開頭難,但好的開始是成功的一半,今天這篇文章就來談談如何開始入門 Python。只要方向對了,就不怕路遠。
設定目標
當你決定入門 Python 時,需要一個清晰且短期內可實現的目標,比如通過學習找一份初級程式設計師工作,目標明確後,你需要了解企業對初級程式設計師有哪些技能要求,下面是我從拉勾網找的一個初級 Python 工程師的任職要求:
- 熟悉 Python 及常用的 Web 開發框架;
- 至少熟悉一種資料庫的使用,如MySQL、mongodb、redis等;
- 熟悉 Linux 作業系統及常用命令;
- 良好的編碼習慣和文件編寫習慣;
做 Python 開發除了熟悉語言本身之外,還需要掌握很多相關聯的技能,好比打NBA,你不光要學如何投籃,還要練習力量、技戰術等一整套東西。所以,一個普通 Python Web 開發工程師需要掌握的技能包括至少一個Web框架,比如:Django、Flask、Tornado,做業務系統離不開資料庫的支撐,另外,還需要對Linux系統的基本操作和常用命令有所瞭解,因為以後你寫到程式基本上都會執行在Linux平臺上。
接下來我從這幾個方面逐一介紹
Python3?
不少新手總是糾結是學 Python2 還是 Python3,就像手裡同時有包子和饅頭,不知道先吃哪個,這種糾結完全就是徒增煩惱,因為它們是同一種語言,只有少部分地方語法不相容,儘管目前大部分公司還在用 Python2,但是 Python3 逐漸成為主流已是不爭事實,畢竟後者效能方面更佔有優勢,官方也在力推Python3。所以毫不猶豫地選擇 Python3 吧,最多花一天的時間能把 Python2 中特有的內容搞懂。
開發工具
工欲善其事必先利其器,做 Python 開發的 IDE(編輯器)層出不窮,我只推薦 Pycharm 和 Sublime,兩個工具都可以免費使用,而且它們的學習成本非常低,網上找一篇教程看了基本就能上手,Vim、Emacs 這樣的遠古神器還是放以後再去了解吧。另外,今後你所遇到的 90% 的問題都有可能通過Google和StackOverflow來解決。
學習資源
網上入門資源琳琅滿目,一本好書能為你指點迷津。快速瞭解 Python 可以看一下 Learn Python in Y minutes 這篇文章。但千萬不要被標題所迷惑,一門語言不可能幾分鐘就能學會,看完之後應該會對Python 有個初步的印象,照著示例操作完之後,你就要選擇一本合適入門的教程,《A Byte of Python》是一本值得推薦的書籍,來說說我推薦這本書的理由。
《A Byte of Python》的中文名叫《簡明 Python 教程》,這本書的最新版已經是第10版,基於 Python3.5,所以不擔心是否知識落後的問題,其次,這本書的厚度152頁非常適合入門,涵蓋了 Python 入門所有內容,相對那些五六百頁的大部頭書來說非常精簡了,2個星期能啃完。還有最重要的一點,這本書是免費的,在公眾號回覆 "byte" 免費獲取《A Byte of Python》不同格式的電子書。
這本書看完之後,你應該能設計出簡單程式出來。再推薦一本書《Python學習手冊》作為進階學習,內容相對要更深入,適合有一定程式設計基礎的人閱讀。
做Web開發,HTML、JS、CSS 是必須有所瞭解的,作為前端技能,不一定要深入瞭解,做到能寫基本的HTML程式碼就夠了,此外,你還需要了解 HTTP 協議(推薦《圖解HTTP協議》)。目前比較主流的Web框架有 Django、Flask、Tornado,各自都有各自的特點,Django 文件豐富、Flask 短小精悍、Tornado 非同步併發。這裡推薦使用 Flask,推薦書目《Flask Web開發:基於Python的Web應用開發實戰》
Linux 推薦《快樂的 Linux 命令列》,同樣是一本非常經典的入門迷你書,沒有太多理論,範圍也不太寬,公眾號回覆 “linux” 免費獲取。
MySQL只推薦一本《MySQL必知必會》,不到250頁的小冊子,實踐性很強,沒有什麼艱深晦澀的理論堆砌,看完這本書基本入門資料庫了,購買地址
最後
只看書不會進步,思考和實踐才有成長,自學程式設計是一個比較枯燥的過程,如果沒有正向反饋,學習的積極性很容易被打壓下來,所以你應該積極參與到相關的技術圈子中去,嘗試去解答力所能及的新手問題,向圈子中的大牛們尋求幫助,善於總結自己所學到的東西,分享給更多的人,記住,你不是一個人在戰鬥。
同步發表於:foofish.net/python-101.…