現(xiàn)在還不能說(shuō)你是一個(gè)程序員。這本書(shū)的目的相當(dāng)于給你一個(gè)“編程棕帶”。你已經(jīng)了解了足夠的編程基礎(chǔ),并且有能力閱讀別的編程書(shū)籍了。讀完這本書(shū),你應(yīng)該已經(jīng)掌握了一些學(xué)習(xí)的方法,并且具備了該有的學(xué)習(xí)態(tài)度,這樣你在閱讀其他 Python 書(shū)籍時(shí)也許會(huì)更順利,而且能學(xué)到更多東西。
我建議你看看這些項(xiàng)目,并嘗試用他們創(chuàng)建一些什么:
- Learn Ruby The Hard Way 你學(xué)習(xí)更多的編程語(yǔ)言,你將學(xué)習(xí)到更多關(guān)于編程的知識(shí),所以試著學(xué)習(xí) Ruby。
- The Django Tutorial 嘗試使用 Django Web Framework 創(chuàng)建一個(gè) web 應(yīng)用。
- SciPy
Dexy
:如果你在科學(xué),數(shù)學(xué),工程領(lǐng)域,如果你想寫(xiě)出很棒的論文,使用 SciPy 的代碼- PyGame 看你能不能制作出一個(gè)帶音效和圖像的游戲
- Pandas 用來(lái)做數(shù)據(jù)分析和處理
- Natural Language Tool Kit 用來(lái)分析書(shū)面文本和寫(xiě)作比如垃圾郵件過(guò)濾器和聊天機(jī)器人。
- Requests 了解 HTTP 客戶端和 WEB
- SimpleCV 讓你的計(jì)算機(jī)看到現(xiàn)實(shí)世界中的東西
- ScraPy 網(wǎng)絡(luò)爬蟲(chóng)
- Panda3D 用來(lái)制作 3D 圖畫(huà)及游戲
- Kivy 用來(lái)制作桌面和移動(dòng)平臺(tái)的用戶界面。
- SciKit-Learn 用來(lái)制作機(jī)器學(xué)習(xí)的應(yīng)用
- 用來(lái)做互動(dòng)小說(shuō)類的游戲,有點(diǎn)像在本書(shū)中你做過(guò)的游戲,但是這個(gè)是有圖像的
- Learn C The Hard Way 在你熟悉 python 語(yǔ)言之后,嘗試用本書(shū)中的算法學(xué)習(xí) C 語(yǔ)言,慢慢學(xué) C 是不同的但很值得去學(xué)習(xí)的語(yǔ)言
選擇一個(gè)上面的源代碼,通讀他們的所有說(shuō)明手冊(cè)和文檔。當(dāng)你閱讀它的文檔和代碼的時(shí)候,輸入所有的代碼,并讓代碼運(yùn)行起來(lái)。我就是這么做的。也是所有程序員的做法。閱讀文檔并不足夠能使你學(xué)會(huì)它,你必須親手實(shí)踐。讀完他們的說(shuō)明手冊(cè)和文檔之后,嘗試做一些小東西,任何東西都可以,即便是別人已經(jīng)寫(xiě)過(guò)的。
Just understand anything you write will probably suck. That's alright though I suck at every programming language I first start using.?? Nobody writes pure perfect gold when they're a beginner, and anyone who tells you they did is a huge liar.只要你明白你寫(xiě)的任何東西都將是吸引人的。每當(dāng)我第一次開(kāi)始使用一種語(yǔ)言編程的時(shí)候。。?沒(méi)有人能在作為一個(gè)初學(xué)者的時(shí)候?qū)懗鐾昝赖拇a,如果有人這么告訴你,那他一定是個(gè)大騙子。
我將要教會(huì)你如何學(xué)習(xí)其他編程語(yǔ)言。本書(shū)的組織是基于我和很多其他程序員如何學(xué)習(xí)新的語(yǔ)言。我一般遵從一下流程:
1.找一本關(guān)于這門(mén)語(yǔ)言的書(shū)或者其他說(shuō)明資料 2.通讀這本書(shū),練習(xí)輸入這本書(shū)所有的代碼,并保證他們能正常運(yùn)行 3.練習(xí)代碼的同時(shí)仔細(xì)閱讀這本書(shū),并做筆記 4.用這門(mén)語(yǔ)言實(shí)現(xiàn)一些小程序 5.閱讀別人用這門(mén)語(yǔ)言寫(xiě)代碼,并嘗試復(fù)制他們東西
本書(shū)中,我強(qiáng)迫你用很慢的速度一小部分一小部分的完成這個(gè)流程。其他的書(shū)中不一定是相同的方法,這意味著你要自己推斷出我是如何讓你進(jìn)行這些步驟的去完成他們書(shū)中內(nèi)容的。最好的辦法是快速的閱讀這本書(shū),列出書(shū)中所有重要的代碼段。把這個(gè)列表按章整理成一系列練習(xí)題,然后按順序每次完成一個(gè)。
上面的流程同樣適用于一些沒(méi)有提供說(shuō)明書(shū)給你的新技術(shù)。對(duì)于沒(méi)有說(shuō)明書(shū)的技術(shù),你可以從網(wǎng)上搜索相關(guān)文檔或源代碼,并進(jìn)行以上流程。
每學(xué)一門(mén)新語(yǔ)言,都會(huì)讓你離更好的程序員更進(jìn)一步,你學(xué)的越多,他們對(duì)你來(lái)說(shuō)就越簡(jiǎn)單。通過(guò)你的第三或第四語(yǔ)言,你應(yīng)該能夠在一個(gè)星期內(nèi)學(xué)會(huì)相似的語(yǔ)言,陌生的語(yǔ)言花費(fèi)的時(shí)間要長(zhǎng)一些。現(xiàn)在你已經(jīng)學(xué)會(huì)了 python,那么你就能通過(guò)比較快速的學(xué)會(huì) Ruby 和 js。這是因?yàn)樵S多語(yǔ)言有著相似的概念,一旦你學(xué)會(huì)一種,它們?cè)谄渌Z(yǔ)言里也是一樣的。
你要記住的關(guān)于學(xué)習(xí)新語(yǔ)言的最后一件事情是:不要做一個(gè)愚蠢的觀光者。愚蠢的人旅游到另一個(gè)國(guó)家,然后抱怨食物不像家里的食物?!霸谶@個(gè)愚蠢的國(guó)家,為什么我不能獲得一個(gè)更好的漢堡!”。當(dāng)你學(xué)習(xí)一門(mén)新語(yǔ)言的時(shí)候,要堅(jiān)信它不是無(wú)聊的,它只是跟之前的不同而已,擁抱它,你才能學(xué)得更好。
在你學(xué)習(xí)一種語(yǔ)言之后,不要成為一個(gè)以語(yǔ)言的方式做事情的奴隸。有時(shí)候,人們竟然使用語(yǔ)言做一些白癡的事情,僅僅是因?yàn)椤拔覀円恢笔沁@么做的”。如果你喜歡你的風(fēng)格并且你知道其他人都這樣做,如果可以優(yōu)化一些事情,那么打破這個(gè)規(guī)則。
我真的很享受學(xué)習(xí)新的編程語(yǔ)言。我認(rèn)為自己是一個(gè)“程序員的人類學(xué)家”,并且認(rèn)為使用這些語(yǔ)言的程序員只洞察到這門(mén)語(yǔ)言很小的一部分。我正在學(xué)習(xí)一門(mén)大家都用來(lái)在電腦上互相交流的語(yǔ)言,我發(fā)現(xiàn)它非常迷人。再說(shuō)一次,我是一個(gè)奇怪的人,學(xué)習(xí)編程語(yǔ)言只是因?yàn)槲蚁雽W(xué)。
享受它們!真的很有趣!