還記得那位180天做180個網站自學程式設計的妹子嗎?

S.發表於2013-10-12

半年前,只有藝術背景的她,決定開始學coding。怎麼學?180天做180個網站(網站和網頁這裡就不區分了XD)。

幾個月前,她做到一百多天的時候,這件事情開始在網上火起來。有人潑冷水,更多的人點贊。他(她)們說,真是女漢子,我也要學coding!還記得嗎?

幾天前,她完成了第180天的任務。她寫了一篇總結blog。她說:

做完了180個網站,我準備下半輩子都當碼農

by Jennifer Dewalt

我在180天裡做了180個網站,藉此學會了程式設計,現在我好期待放個假啊!

過去的六個月,我無數次熬夜,在失敗邊緣焦慮。但是為了實現目標,一切都是值得的。

關於這些,詳細情況可以看看這篇部落格(長文慎入)。脫水版:我之前沒編過程,然後決定學程式設計。我沒有跟著課程或者培訓班學,而是選擇了直接硬著頭皮上,給自己定下三條規矩:

  1. 每天建一個新網站, 連續堅持180天!
  2. 每建一個網站,都必須寫一篇相應的部落格。
  3. 我寫的所有程式碼,都必須放在GitHub上(開源),大家都能看到。

choose your weapon

(這是作者在此期間做的某網站的截圖。下面的截圖都如此,不再一一標註。)

背景

我是學美術的。美術之所以吸引我,是因為通過它,我能探索人們是如何相互溝通、相互影響的。過去,我探索人際交流的方式是雕塑和繪畫。不久,我便開始考慮技術。

技術,尤其是網際網路,開啟了各種各樣神奇的交流渠道,讓我們有機會傳播、吸收海量資訊。網際網路真的很神奇,通過計算機與人交流真的很cool,我都有些沉迷了。不過,並非每個人都像我一樣對網際網路充滿激情。那麼,我怎樣才能讓他們看到網際網路有多麼cool呢?我意識到,我怎麼畫畫,都畫不出網際網路的力量。我要真正參與其中,親手搭建網上的交流渠道。

enter image description here

學習之旅:CSS->Javascript->Rails->Node

最開始,我只用一點點CSS和JavaScript,做非常簡單的網站。很快,我開始折騰複雜的CSS動畫。到了第37天,為了學<canvas>元素,我開始鑽研js。第69天,我做了第一個Rails網站,從此我踏入了全新的網站世界——人們可以在站上相互交流。第119天,我做了第一個backbone app,不過我得承認,我其實沒怎麼搞明白。在這個自學程式設計專案結束的時候,我已經做過遊戲玩具類應用還有工具。藉助InstagramTwitter之類公司提供的API,我用到了外部資料。利用Node.js,我也做出了實時動態交流的app。

enter image description here

我是怎麼做到的?

我有一條很重要的個人原則:從小做起,堅持到底(Start Small. Keep Building)。我開始實行這一專案的時候,心裡很清楚,自己想學的是編寫動態互動的網站,但是自己對程式設計基本上一無所知。所以,我沒有試圖一上來就搭建完整可用的複雜的社交網站,攻克一個又一個艱辛的任務,相反,我邁出了小小的第一步。我把一點兒html和CSS拼湊在一起,做出了第一天的網站,也就是這個專案的主頁

那時候,為了一點點標記,我就要Google一整天。當然,我本可以跟著書本或者課程學習,但是我沒有。在完成整個專案的過程中,我在Stack Overflow、MDN、CSS Tricks、各種blog和demo網站上,找到了所需的一切。為了實現更復雜的想法,我還用到了一些非常棒的線上新手入門指南,比如Rails Tutorial就很贊。

目標很小,隨之而來的問題就很小,我都能想辦法解決,因此,我得以一步步走向新的小目標,應對更多可解決的小問題。等到我解決了足夠多的小問題之後,我眼裡“小問題”的概念就變了。舉個例子,第100天的“小問題”,比第1天的“小問題”,要複雜得多。我就是這樣一點一點地前進,最終學會搭建動態網站。

enter image description here

還有什麼經驗?

我嚴格要求每天都是deadline,這對於保持進步速度也很有效。每天都要做出東西來,這就不允許我在一個問題的原理細節上糾結太久。新手很容易困惑,長時間死磕一個概念。在我看來,學程式設計有點像玩巨幅拼圖,你當然可以拿起一小塊,非常仔細地觀察它,但是這並不怎麼能幫你瞭解它的位置以及整幅圖的樣子。你必須收集一堆拼圖塊,把它們拼在一起,這樣才能開始摸清全域性。

enter image description here

有什麼教訓?

專案剛開始的時候,我給自己很大的壓力,強迫自己追求完美。我太看重每個細節,如果沒達到預期效果,我就覺得非常失敗。我簡直要瘋掉了。把自己的所有作品都擺出來給大家看,這簡直太嚇人了。但是我必須學著允許自己不完美。世上本來沒有完美可言,何況我還處在學習階段。不完美並不代表失敗。在專案進行過程中,我時常一心想著把所有功能全塞進去,為了十全十美而熬到凌晨三點。我甚至會因為擔心無關緊要的小功能而失眠。

enter image description here

下一步呢?

繼續coding!180天做180個網站的專案結束了,這標誌著我下半輩子的碼農生涯正式開始了。當然,這個專案並沒有讓我全面充分地理解軟體開發,不過也算打下了大致的基礎。我打算做幾個更復雜的網站,一天之內做不完的那種,以便查漏補缺。等我覺得差不多了,我希望加入一個小團隊,找到和我一樣充滿激情、喜歡實現神奇想法的人一起工作。與此同時,我會繼續寫blog記錄我的學習歷程,繼續把程式碼都發在GitHub上。

相關文章