學(xué)習(xí)任何一門(mén)語(yǔ)言都是從入門(mén)(1年左右),通過(guò)不間斷練習(xí)達(dá)到熟練水準(zhǔn)(3到5年),少數(shù)人最終能精通語(yǔ)言,成為執(zhí)牛耳者,他們是金字塔的最頂層。雖然萬(wàn)事開(kāi)頭難,但好的開(kāi)始是成功的一半,今天這篇文章就來(lái)談?wù)勅绾伍_(kāi)始入門(mén) Python。只要方向?qū)α耍筒慌侣愤h(yuǎn)。
設(shè)定目標(biāo)
當(dāng)你決定入門(mén) Python 時(shí),需要一個(gè)清晰且短期內(nèi)可實(shí)現(xiàn)的目標(biāo),比如通過(guò)學(xué)習(xí)找一份初級(jí)程序員工作,目標(biāo)明確后,你需要了解企業(yè)對(duì)初級(jí)程序員有哪些技能要求,下面是我從拉勾網(wǎng)找的一個(gè)初級(jí) Python 工程師的任職要求:
- 熟悉 Python 及常用的 Web 開(kāi)發(fā)框架;
- 至少熟悉一種數(shù)據(jù)庫(kù)的使用,如MySQL、mongodb、redis等;
- 熟悉 Linux 操作系統(tǒng)及常用命令;
- 良好的編碼習(xí)慣和文檔編寫(xiě)習(xí)慣;
做 Python 開(kāi)發(fā)除了熟悉語(yǔ)言本身之外,還需要掌握很多相關(guān)聯(lián)的技能,好比打NBA,你不光要學(xué)如何投籃,還要練習(xí)力量、技戰(zhàn)術(shù)等一整套東西。所以,一個(gè)普通 Python Web 開(kāi)發(fā)工程師需要掌握的技能包括至少一個(gè)Web框架,比如:Django、Flask、Tornado,做業(yè)務(wù)系統(tǒng)離不開(kāi)數(shù)據(jù)庫(kù)的支撐,另外,還需要對(duì)Linux系統(tǒng)的基本操作和常用命令有所了解,因?yàn)橐院竽銓?xiě)到程序基本上都會(huì)運(yùn)行在Linux平臺(tái)上。
接下來(lái)我從以下幾個(gè)方面逐一介紹
Python3?
不少新手總是糾結(jié)是學(xué) Python2 還是 Python3,就像手里同時(shí)有包子和饅頭,不知道先吃哪個(gè),這種糾結(jié)完全就是徒增煩惱,因?yàn)樗鼈兪峭环N語(yǔ)言,只有少部分地方語(yǔ)法不兼容,盡管目前大部分公司還在用 Python2,但是 Python3 逐漸成為主流已是不爭(zhēng)事實(shí),畢竟后者性能方面更占有優(yōu)勢(shì),官方也在力推Python3。所以毫不猶豫地選擇 Python3 吧,最多花一天的時(shí)間能把 Python2 中特有的內(nèi)容搞懂。
開(kāi)發(fā)工具
工欲善其事必先利其器,做 Python 開(kāi)發(fā)的 IDE(編輯器)層出不窮,我只推薦 Pycharm 和 Sublime,它們的學(xué)習(xí)成本非常低,網(wǎng)上找一篇教程看了基本就能上手,Vim、Emacs 這樣的遠(yuǎn)古神器還是放以后再去了解吧。另外,今后你所遇到的 90% 的問(wèn)題都有可能通過(guò)Google和StackOverflow來(lái)解決。
學(xué)習(xí)資源
網(wǎng)上入門(mén)資源琳瑯滿(mǎn)目,一本好書(shū)能為你指點(diǎn)迷津。快速了解 Python 可以看一下 Learn Python in Y minutes 這篇文章。但千萬(wàn)不要被標(biāo)題所迷惑,一門(mén)語(yǔ)言不可能幾分鐘就能學(xué)會(huì),看完之后應(yīng)該會(huì)對(duì)Python 有個(gè)初步的印象,照著示例操作完之后,你就要選擇一本合適入門(mén)的教程,《A Byte of Python》是一本值得推薦的書(shū)籍,來(lái)說(shuō)說(shuō)我推薦這本書(shū)的理由。
《A Byte of Python》的中文名叫《簡(jiǎn)明 Python 教程》,這本書(shū)的最新版已經(jīng)是第10版,基于 Python3.5,所以不擔(dān)心是否知識(shí)落后的問(wèn)題,其次,這本書(shū)的厚度152頁(yè)非常適合入門(mén),涵蓋了 Python 入門(mén)所有內(nèi)容,相對(duì)那些五六百頁(yè)的大部頭書(shū)來(lái)說(shuō)非常精簡(jiǎn)了,2個(gè)星期能啃完。還有最重要的一點(diǎn),這本書(shū)是免費(fèi)的,在公眾號(hào)回復(fù) "byte" 免費(fèi)獲取《A Byte of Python》不同格式的電子書(shū)。
這本書(shū)看完之后,你應(yīng)該能設(shè)計(jì)出簡(jiǎn)單程序出來(lái)。再推薦一本書(shū)《Python學(xué)習(xí)手冊(cè)》作為進(jìn)階學(xué)習(xí),內(nèi)容相對(duì)要更深入,適合有一定編程基礎(chǔ)的人閱讀。
做Web開(kāi)發(fā),HTML、JS、CSS 是必須有所了解的,作為前端技能,不一定要深入了解,做到能寫(xiě)基本的HTML代碼就夠了,此外,你還需要了解 HTTP 協(xié)議(推薦《圖解HTTP協(xié)議》)。目前比較主流的Web框架有 Django、Flask、Tornado,各自都有各自的特點(diǎn),Django 文檔豐富、Flask 短小精悍、Tornado 異步并發(fā)。這里推薦使用 Flask,推薦書(shū)目《Flask Web開(kāi)發(fā):基于Python的Web應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》
Linux 推薦《快樂(lè)的 Linux 命令行》,同樣是一本非常經(jīng)典的入門(mén)迷你書(shū),沒(méi)有太多理論,范圍也不太寬。
MySQL只推薦一本《MySQL必知必會(huì)》,不到250頁(yè)的小冊(cè)子,實(shí)踐性很強(qiáng),沒(méi)有什么艱深晦澀的理論堆砌,看完這本書(shū)基本入門(mén)數(shù)據(jù)庫(kù)了,購(gòu)買(mǎi)地址
最后
只看書(shū)不會(huì)進(jìn)步,思考和實(shí)踐才有成長(zhǎng),自學(xué)編程是一個(gè)比較枯燥的過(guò)程,如果沒(méi)有正向反饋,學(xué)習(xí)的積極性很容易被打壓下來(lái),所以你應(yīng)該積極參與到相關(guān)的技術(shù)圈子中去,嘗試去解答力所能及的新手問(wèn)題,向圈子中的大牛們尋求幫助,善于總結(jié)自己所學(xué)到的東西,分享給更多的人,記住,你不是一個(gè)人在戰(zhàn)斗。