我要在 180 天裡通過建立 180 個「網站」來學習寫程序。今天是第 115 天。

4 個多月前,我決定要學學 coding。

請無視我以前沒有寫程式的經驗,在學校也從來沒有上過任何「技術」課程。我決定要在 180 天裡建立 180 個「網站」,一天不落。

今天是第 115 天。

我是學藝術的。吸引我學習藝術的緣由是它可以探索人們如何向外界表達他們自己。我們穿什麼衣服,我們的興趣愛好,還有溝通方式。過去的日子裡我嘗試著用繪畫和雕刻來捕捉這種自我投影。

然而如今是 2013 年,我們不再受制於物理媒介。我們有網絡!網絡很棒,因為它把過去阻礙我們溝通的屏障打破了。溝通的門檻如此低,以至於我們為了溝通和相互交流而被迫建立虛擬身份。

我覺得這種虛擬的交互太不可思議了,但我並不滿足於做旁觀者打打醬油。我想要建立起溝通的通道,使得這些交互成為可能。

學習寫程式最好的途徑是什麼?

冥思苦想了很長時間,我決定就他 * 的直接開始做吧。但是不能只是漫無目的地開始,我下決心堅持一種簡單而又嚴格的結構:

1. 每天建立一個網站,連續 180 天。
2. 每個網站必須要發一貼。
3. 我寫的每句 code 必須在GitHub(開源)上公開,這樣大家都能看到。

把自己學習中的錯誤和誤區都公開是很讓人沒面子的。但事實上,如果你想學習寫程式,你就要準備犯很多錯誤。不要認為僅僅因為你的 code 可能看起來有點蠢,就意味著應該停止寫程式。還有你不必成為某類人,你不必成為數學奇才,不必要任何預備知識,因為編譯器並不介意你蠢。你需要的只是敲下鍵盤。

不上速成營(Bootcamp),不用參考書

當我決定了要學 coding,第一步就是解決如何著手的問題。有很多選項可供考慮。有無數課程可以學習,有無數速成營可以註冊,但是它們都不是我要的。我認為學習編程很像學習輪滑。你可能需要人幫你扶上溜冰鞋,但是獲得真正的技巧你得自己走兩步。

我認為最好的學習方法就是解決實際碰到的問題。這就是我決定不去遵照課程和參考書的主要原因。通過遵循自己的路徑,我能夠以最符合邏輯的順序,也就是我恰好遇到問題的時候,處理新鮮概念和問題。當我遇到難題時,我就去 Stack Overflow 上搜索。如果我要邁出一大步,像開始一門新的語言或者平台,我只會找參考書做一下引導,到我能邁過去就可以了。

日復一日

在家工作的主意可不怎麼高明,因此我絕大多數的程式是在 SoMa 的一個相當不錯的共用辦公室中完成的。這裡提供我一個辦公桌,能夠給家裡打電話,除此之外,我還有免費的可樂喝,還有果凍豆吃。硬體方面,我用 13 吋的 Macbook Pro,連接兩個顯示器,因為如果要說有什麼是我鍾愛的,那一定是大螢幕。我桌上還有一個小 Jambox 揚聲器,晚間舞會上會用。

我每星期的開始會寫一篇部落格文,總結一下上個星期的感想。我每天把代碼推送到 GitHub,部署當天的網站,然後發一個每日帖。做完之後,我通常會在讓網站上線前修正無數先前留下的 bug 和錯別字。目前這樣已經做了 114 次了。

從 CSS 到 Javascript 再到 Rails

起初我的網站十分簡陋,一點 html、一點 css 還有數行 javascript。隨著時間的推移,它們變得越來越複雜。我做過遊戲、計算器、時鐘,還有傻喵星人。現在我十分愜意地使用 CSS,流利地用 javascript 做開發。最近,我開始用 Rails 來建立動態網站,這樣可以讓人相互溝通,還可以創建個人檔案。

用 Rails 編程超有意思,因為它允許我從做遊戲和玩具過渡到構建實際工具上。我不確定下一步接著嘗試什麼技術,或者項目最後我要用什麼平台,反正非常酷就是了。

這個項目還沒有一個清晰的路徑,讓我探尋那些能發揮我想像力的某種觀念。我要在下一步從事的工作似乎很大程度上受我當前正在從事的工作的影響。比我當初猜想的程度還要更甚。項目早期,我想製作一個很簡單的天氣 app,我需要找到怎樣查詢天氣數據的辦法。出乎意料的是我對 API 開始產生興趣了。但是 ajax 不能工作在跨網域上,所以這讓我轉向 JSONP。老實說,我從來沒有想到我會對 JSONP 產生興趣。到後來,因為支持 JSONP 的 API 極度缺乏,我突發靈感,事不宜遲開始工作在 Rails 上。

何不這樣做?

當我告訴人們我正在做的,他們經常是立刻開始挑漏洞。我被問到過很多類似這樣的問題,「為什麼你不休息一天,然後明天做兩個?」我知道大家是好意,但是這計劃沒有任何漏洞,因為我定下的規則,就是要保證一天不漏。

這個很難

每天做出新的東西很難。新概念的挖掘會枯竭,brainstorming 模式到執行模式的切換不是無縫連接的。但是這個項目裡最難的部分,在某種意義上來說,是我每天都感到一敗塗地。

走出去的每一個網站都是半成品。因為我是個完美主義者,重做或者擴展網站的誘惑力對我來說相當強。前進的路不是一直縫縫補補和東敲西打來完美它。前進的路應該是移步到下一個概念並做出來。

資料來源:伯樂在線

分享本文 | Share This Page