學習任何一門語言都是從入門(1年左右),經過不間斷練習達到熟練水準(3到5年),少數人最終能精通語言,成爲執牛耳者,他們是金字塔的最頂層。雖然萬事開頭難,但好的開始是成功的一半,今天這篇文章就來談談如何開始入門 Python。只要方向對了,就不怕路遠。前端
當你決定入門 Python 時,須要一個清晰且短時間內可實現的目標,好比經過學習找一份初級程序員工做,目標明確後,你須要瞭解企業對初級程序員有哪些技能要求,下面是我從拉勾網找的一個初級 Python 工程師的任職要求:python
- 熟悉 Python 及經常使用的 Web 開發框架;
- 至少熟悉一種數據庫的使用,如MySQL、mongodb、redis等;
- 熟悉 Linux 操做系統及經常使用命令;
- 良好的編碼習慣和文檔編寫習慣;
作 Python 開發除了熟悉語言自己以外,還須要掌握不少相關聯的技能,比如打NBA,你不光要學如何投籃,還要練習力量、技戰術等一整套東西。因此,一個普通 Python Web 開發工程師須要掌握的技能包括至少一個Web框架,好比:Django、Flask、Tornado,作業務系統離不開數據庫的支撐,另外,還須要對Linux系統的基本操做和經常使用命令有所瞭解,由於之後你寫到程序基本上都會運行在Linux平臺上。linux
接下來我從這幾個方面逐一介紹程序員
很多新手老是糾結是學 Python2 仍是 Python3,就像手裏同時有包子和饅頭,不知道先吃哪一個,這種糾結徹底就是徒增煩惱,由於它們是同一種語言,只有少部分地方語法不兼容,儘管目前大部分公司還在用 Python2,可是 Python3 逐漸成爲主流已經是不爭事實,畢竟後者性能方面更佔有優點,官方也在力推Python3。因此堅決果斷地選擇 Python3 吧,最多花一天的時間能把 Python2 中特有的內容搞懂。redis
工欲善其事必先利其器,作 Python 開發的 IDE(編輯器)層出不窮,我只推薦 Pycharm 和 Sublime,兩個工具均可以避免費使用,並且它們的學習成本很是低,網上找一篇教程看了基本就能上手,Vim、Emacs 這樣的遠古神器仍是放之後再去了解吧。另外,從此你所遇到的 90% 的問題都有可能經過Google和StackOverflow來解決。mongodb
網上入門資源琳琅滿目,一本好書能爲你指點迷津。快速瞭解 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頁的小冊子,實踐性很強,沒有什麼艱深晦澀的理論堆砌,看完這本書基本入門數據庫了
只看書不會進步,思考和實踐纔有成長,自學編程是一個比較枯燥的過程,若是沒有正向反饋,學習的積極性很容易被打壓下來,因此你應該積極參與到相關的技術圈子中去,嘗試去解答力所能及的新手問題,向圈子中的大牛們尋求幫助,善於總結本身所學到的東西,分享給更多的人,記住,你不是一我的在戰鬥。