新手學習程式設計的最佳方式是什麼?

青牛發表於2015-03-15

回答這個問題是我最近兩年來唯一的關注點。我覺得此處提及的許多資源儘管都很不錯,然而我卻注意到,成功的學生,無論使用哪種資源,往往都會在以下三個方面,比其他人有著更好的表現。

  • 聚焦習慣而不是目標
  • 獨自學習非常痛苦
  • 專案實踐

聚焦習慣而不是目標

聚焦習慣而不是目標聽起來似乎不合常理,但是請聽我把話說完 - 這是一個有關平衡的問題。凡是和我共過事的人都知道,我有時就像傻子一樣,在一天內,引用《蝙蝠俠:俠影之謎》中 Ra's Al Ghul 的話多達 3-4 次。

Bloc 公司的投資者們對於我在董事會上頻繁地引用《蝙蝠俠:俠影之謎》中的片段作為開始,早已經煩透了。

R'As 告訴 Bruce:

“(當你的胳膊快要凍僵的時候,)按摩你的胸口,你的胳膊自然會暖和起來。”

如果你將精力放在在每星期程式設計 20-30 個小時的習慣培養上,成為一名 Web 開發者的目標很快就可以實現。如果你將目標設定為在數月內成為一名 Web 開發者,在什麼時候能可以達成目標以及距離目標還有多遠等不確定性的壓力之下,你反而可能會一無所獲。聚焦於習慣而不是目標。按摩你的胸口,你的胳膊自然會暖和起來。

因此,你現在應該做的是:在你的日程安排上,每天花15分鐘時間用於程式設計。不要多於15分鐘,每天只要15分鐘就夠了。如果你能在一星期之內堅持做下來而不找任何藉口,請試著把時間延長到一天20分鐘。不要試圖通過每天一小時的程式設計來過度擴充套件自己的能力,程式設計就是一場 10,000 小時的馬拉松,因此我們應該將精力集中在培養習慣上。與其在一天內花費大量時間學習程式設計,不如每天花費少量時間,但是能夠天天堅持,因為這樣更有效。

獨自學習非常痛苦

當我在學習 Web 開發時,在我的學習過程中,擁有一位導師和加入一個社群是兩個最大的組成要素。

  • 擁有一位導師

大學期間,我曾在一家名叫 merge.fm 的小型創業公司工作。暑假期間,我與該公司的一位聯合創始人一起工作,我在此期間學到的東西比我之前一年在大學學到的還要多。跟隨一名經驗豐富的專業人士一起工作,可以真正地加速你學習的速度,你會了解到他們如何思考問題的,同時,也會發現自己的不足之處。這就是為什麼師徒制通常成為學習一門新技藝的預設標準的一個原因吧,因為它非常有效。

  • 加入一個社群

我加入了的兩個社群,一個是 Illini Entrepreneurship Network(我們學校的一個學生組織),另一個是 Hacker News(一個面向黑客和創業者的大型線上社群)。

我沒有從 Hacker News 學到任何有關物件和類的知識,但是我學到了一些別的東西。我知道了沒人喜歡 JavaScript。我知道了 Ruby 程式設計師是程式設計領域的潮人。我還知道了 Bret Taylor, Rich Hickey, and John Carmack 都是程式設計世界的領袖人物,還有就是,那些真正關心員工的軟體公司,它們公司的廚房看上去就像興奮劑實驗室。

總之,我學會了如何說行話。當你和其他程式設計師一同工作的時候,這一點非常重要,也正因如此,才使你覺得自己就是一名程式設計師。

專案實踐

在學習 Web 開發的第一年,我動手實現了以下專案:

  • 一個 Digg 的克隆版(來自 Sitepoint書上的 Rails 例子,我想現在它已經過時了)
  • 一個線上購物應用程式(來自 Agile Web Development with Rails 4)
  • 一個 GeekSquad-esque 應用程式(個人專案)
  • 一個實時線上課堂應用程式(個人專案)
  • 一個外語學習應用程式(課程專案)

我認為構建真實專案之所以非常重要的原因有很多,就我而言,最重要的一個原因是它充滿了樂趣。這恰恰是在傳統教育中嚴重缺失的,也正因如此,它才成為了諸多原因中最重要的一項。尋找如何開展專案實踐的參考資源,http://ruby.railstutorial.org/ 是一個不錯的選擇。

要具有“小強”精神

對於那些能堅持讀到此處的讀者們,我偷偷地增加了第四項內容。 Paul Graham 曾經對 Airbnb 的創始人說過:

“你們這些傢伙是不會失敗的,因為你們就像打不死的’小強’一樣”

一段時期,你可能會有放棄學習程式設計的想法。就像任何具有同樣價值的事情一樣,學習程式設計真的很難,有時你會覺得自己真的很笨。這就是為什麼第一項策略如此重要的原因 - 不要過度擔心是否已經取得進步,或者需要花費多長時間達成目標。你要做的就是每週堅持10-30個小時的程式設計。就像執著的’小強’一樣,你就不會失敗。

多年以前我說過一句話 - “成功貴在堅持(註解:亦可譯為‘生活中80%的成功源於堅持’)”,這句話經常被其他人引用。人們常常向我提及,他們想編寫一個劇本,他們想製作一部電影,他們想撰寫一本小說。那些最終成功實現目標的人,80%的做法是先行動起來。那些最終失敗的人,他們連這一點都做不到。這正是他們不能做成一件事情的原因,他們沒有去做。一旦你去做了,如果你真地去編寫電影劇本,或者撰寫小說,實際上,你的成功之路已走過大半。這就是我可以告訴你的我人生最大的成功經驗。其它的都是失敗的教訓。

-- Woody Allen(美國好萊塢著名電影導演)


作者:Roshan Choxi,美國線上程式設計學習公司 Bloc 聯合創始人/CEO

原文: What are the best ways for a complete beginner to learn programming

感謝: Jodoo 幫助審閱並完成校對。

P.S. 如果您喜歡這篇文章並且希望學習程式設計技術的話,請關注一下 復唧唧

相關文章