想學程式設計?這樣開始
去年九月我寫了一篇挺受歡迎的博文,叫 《想學Rails? 這樣開始》。 許多讀者看完文章後,當面或用Email向我提了大量問題;也有很多人真正投入到了Rails學習中。我也很自豪地向很多人推薦了這篇文章,因為其中的內容真的具有可操作性,並且對讀者真的有幫助。從那之後到現在,我的程式設計功力又長進了幾個甲子,於是又有了下面這篇文章,記錄我對“如何學程式設計”的再次思考。
這篇文章是寫給那些真心要程式設計的人看的——那些憋著一股狠勁兒,一定要做出個什麼真東西的人;而不是那些“聽說程式設計好玩”的人。在我看來,這些人都不太可能真的整出個像樣的東西來。
1. “只用晚上、週末的業餘時間學習”很不靠譜
無論從我個人經驗,還是眾多訪談的結論來看,只用晚上和週末等業餘時間來學習程式設計是十分糟糕的辦法。斷斷續續的學習方式,你的腦子根本沒機會養成程式設計式的思維方式,你很難把之前學習的內容撿起來。一定要把你的時間儘量多的利用起來。
一種改善的方法是參加“程式設計訓練營”之類的專案;你不但要花整整九周時間,還要花費一筆不小的學費。這些付出可以對你有所約束,督促你學到東西。你必須全情投入,否則錢和時間就打水漂了。
2. 忘掉 Codecademy.com
“我用 Codecademy 學會程式設計了!”
不知道有多少人這麼說過了。但是如果持續的觀察六到八個星期之後,這些人就都歇菜了。
我告訴你們為什麼用Codecademy學習不長久:
- 你永遠只是在瀏覽器裡、在Codecademy網站裡程式設計;學到JavaScript、Python、Ruby的語法是挺好,但是從課程裡你也只能學到這些;其實這些你從別處也都能學到。
- 你不會學到如何搭建開發環境。就憑你在Codecademy學到的那點兒東西,哪怕你只想做一丁點兒的小專案,你都不知道該從哪兒開始。
- 對於只有一點點程式設計經驗的人來說,搭建自己的開發環境是很有挑戰性的一件事兒。你需要自己把這件事兒搞定。
3. 做一個真正的、你想做的專案
在你想做的專案裡,先找一個小的來做。我做的第一個專案叫做“今日所學”。軟體裡只有一個文字輸入框,你每次輸入一些文字,軟體按照時間降序來顯示輸入內容的列表。僅此而已。
你的第一個專案一定就是一坨屎。但是它是完整的專案,而且是你完成的。這才是最牛逼的地方。
4. 你的程式碼要建立在你之前做過的專案之上
我每天寫程式碼,我都會把當天所學的一兩個知識點放進去,這樣我下一次程式設計時就會寫的更好。你會不斷的從你的程式碼庫裡引用老程式碼,或從網上扒來的程式碼。一旦你真的懂了這些程式碼,你就能把它們用起來。
5. 別拷貝貼上別人的程式碼!
Tommy Nicholas去年12月寫的部落格裡也提到了這個觀點。只有你把程式碼敲出來,你才能真的學到東西,你才能發現你對某些程式碼還沒弄透,也希望你去google一下你的疑問,這樣才能越到越來越多的東西。
6. 別在別人面前得瑟“我在學程式設計呢!”,除非面對一個高手,你要求教。
開始學程式設計之後,你要為自己找到一兩個程式設計老師帶著你學,但別學了一點就在那些不會程式設計的朋友面前窮顯擺。
我一直相信,如果你把想做的事兒說了出去,那事兒就永遠只能停留在你嘴上了。所以除非對方是你可以請教的老師,不然就閉上嘴,低下頭,老老實實編你的程。
空談誤國啊!
7. 程式設計就是失敗無數次後弄清為什麼。很痛?很挫敗?很正常。
程式設計就是要重複的犯錯誤,犯重複的錯誤,弄清楚錯在哪兒,再改正錯誤。下次再碰到相似問題(你一定會碰到的),你就會想起之前蹂躪你的那些程式碼和你的對策,吃N塹,長一智。
當然,搞定程式設計的成就感也會讓你爽到內傷。“那東西是我想出來滴!”的快感是我活著的動力!我為之著迷!但獲得快感的路也灰常艱辛。不斷尋找你的動力,不斷前進!
8. 別再糾結應該學什麼,開幹!
我一朋友的朋友總是沒完沒了的問我各種磨唧問題。他試圖在正式開始前看清所有可能會搞不定的地方。
這是一種最操蛋的學習方式。正確的方法是:選門語言(Ruby 或 Python)、買本剛出版的書、把自己當個白痴、立馬開始學!立馬開始第一章!有必要就把第一章再看一遍!你根本沒法想象有多少知識是你不知道的!不過沒關係,你會慢慢都搞明白的。大家都是這麼過來的。
祝你好運。
英文原文:Zack Shapiro,編譯:@張飛alex
相關文章
- 想試用Linux,這樣開始(轉)Linux
- 想學程式設計並不難 這樣做就可以了程式設計
- [譯] 我想學習程式設計, 但不知道從哪裡開始程式設計
- Java程式設計師想拿百萬年薪?你只需要這樣做!Java程式設計師
- 新手學程式設計,從哪裡開始?程式設計
- 我想開始學習javaJava
- 剛開始學程式設計?這幾款小工具能讓你事半功倍程式設計
- 風變程式設計,幫助你從零開始學習程式設計程式設計
- 如何開始函式程式設計的學習?函式程式設計
- 為何開始教中文女友學程式設計程式設計
- 想學一種語言入門程式設計 選擇Python開發怎麼樣程式設計Python
- 程式設計師這樣寫程式碼程式設計師
- 沒上過大學想學IT?建議你先從這幾門程式語言開始
- 越早開始程式設計,程式越長程式設計
- 學半年程式設計才知道“物件導向”可以這樣理解程式設計物件
- 想學程式設計要些啥基礎?程式設計
- 為什麼你該開始學習程式設計了?程式設計
- DirectX程式設計技術 --- 想學遊戲程式設計嗎?必讀 (轉)程式設計遊戲
- 學web前端從哪裡開始學起呢-好程式設計師Web前端程式設計師
- 你們不能這樣招聘程式設計師程式設計師
- 程式設計師是這樣練字的程式設計師
- 雜想程式設計師程式設計師
- 想成為一名頂級程式設計師,17歲開始學程式設計晚麼?程式設計師
- 程式設計師:開始程式設計生涯的5個建議程式設計師
- 想學設計模式、想搞架構設計,先學學UML系統建模吧您設計模式架構
- 想幫助使用者做決定?你的APP可以這樣設計!APP
- 漫談程式設計師系列:程式設計師的生活就這樣嗎程式設計師
- 翻譯 | 新手開始學習程式設計的正確姿勢程式設計
- 7種從頭開始免費學習程式設計的方法程式設計
- 驚歎!這個盲人程式設計師是這樣寫程式碼的程式設計師
- 程式設計師都這樣哄老婆的嗎?程式設計師
- 6個程式設計實戰網站,想學程式設計的你不能錯過!程式設計網站
- 程式設計思維隨想程式設計
- 程式設計師如何開始新的工作程式設計師
- 小學生都開始學的Python程式設計到底是什麼?Python程式設計
- 網易的這款沙盒遊戲,想嘗試不一樣的長線設計遊戲
- [譯] 想幫助使用者做決定?你的APP可以這樣設計!APP
- 想學西jive原始碼,應該從那開始???原始碼