想學程式設計?這樣開始
去年九月我寫了一篇挺受歡迎的博文,叫 《想學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
相關文章
- [譯] 我想學習程式設計, 但不知道從哪裡開始程式設計
- 學習程式設計從遊戲開始程式設計遊戲
- 風變程式設計,幫助你從零開始學習程式設計程式設計
- 剛開始學程式設計?這幾款小工具能讓你事半功倍程式設計
- 如何開始函式程式設計的學習?函式程式設計
- 想學一種語言入門程式設計 選擇Python開發怎麼樣程式設計Python
- 沒上過大學想學IT?建議你先從這幾門程式語言開始
- 越早開始程式設計,程式越長程式設計
- Java程式設計師想拿百萬年薪?你只需要這樣做!Java程式設計師
- 學半年程式設計才知道“物件導向”可以這樣理解程式設計物件
- 硬體設計還可以這樣學?
- 想學程式設計要些啥基礎?程式設計
- 自學程式設計的朋友,我想給你們這 5 個建議程式設計
- 你們不能這樣招聘程式設計師程式設計師
- 學web前端從哪裡開始學起呢-好程式設計師Web前端程式設計師
- 小學生都開始學的Python程式設計到底是什麼?Python程式設計
- 翻譯 | 新手開始學習程式設計的正確姿勢程式設計
- 程式設計零基礎應該如何開始學習Python?程式設計Python
- 程式設計零基礎應當如何開始學習 Python?程式設計Python
- FPGA程式設計從零開始 使用VerilogFPGA程式設計
- 35歲的人還可以學習程式設計,從事程式設計師這個行業嗎?前景怎樣?程式設計師行業
- 6個程式設計實戰網站,想學程式設計的你不能錯過!程式設計網站
- OpenSNN推文:從零開始學程式設計 新手小白的全面指南程式設計
- 從 React 架構開始講解 useState、useEffect 程式設計設計React架構程式設計
- 想學設計模式、想搞架構設計,先學學UML系統建模吧您設計模式架構
- 女程式設計師是這樣被惡搞的程式設計師
- Photon物聯網程式設計從零開始程式設計
- 如何正確的開始用 Go 程式設計Go程式設計
- 程式設計師談薪技巧公開,這樣談比預期高30%程式設計師
- 從零開始理解 Laravel 的設計哲學Laravel
- 《Python程式設計從零開始學(影片教學版)》資源免費下載Python程式設計
- Web 程式設計師開始學習遊戲開發的第一步Web程式設計師遊戲開發
- web前端程式設計小白應該從哪個環節開始,這裡來解析!Web前端程式設計
- 好程式設計師Python教程從零開始學Python系列-第2講程式設計師Python
- 學Python的程式設計師,程式設計能力都“退化”成什麼樣了?Python程式設計師
- 學生黨學程式設計,有這個開源專案就夠了!程式設計
- 年終了,程式設計師應該這樣談加薪!程式設計師
- 百萬年薪挖大學教授做程式設計師,學生變成上司,這樣好嗎?程式設計師
- 併發程式設計從零開始(十一)-Atomic類程式設計