Dewalt:完成180個網(wǎng)站之后,我準(zhǔn)備余生就做程序員
之前@deepfish 編譯了 Jennifer Dewalt 在第 115 天的博文。 記得她那篇博文當(dāng)時在 Hacker News 上是有 2000 多得分,引起熱烈討論。 9月份也去她博客查看她的最新進(jìn)度,發(fā)現(xiàn)到了 160 多個了。 9月27日,Jennifer 更新博客,說自己終于完成目標(biāo)了,非常非常高興和激動,有點難以言表。她的第 180 個小項目是 Hello World ,哈哈,這其實就是一個撒花的求贊的小程序。 180 天堅持下來,她自稱“相當(dāng)不堪重負(fù)了”,得花些時間來補(bǔ)覺,放松放松,還有消化之前所學(xué)的。下面內(nèi)容是她在10月3日寫的另外一篇博文,透露她在堅持180天后的想法。由@anthonyxoxo 翻譯。
我通過180天做180個網(wǎng)站來學(xué)編程,現(xiàn)在我好想放個假!過去的六個月中,我熬了無數(shù)個夜,經(jīng)常在失敗中精疲力竭,但這一切相比達(dá)到我的目標(biāo),都是值得的。
我說的這些細(xì)節(jié)都可以在這篇博文中找到,但是TL;DR的版本沒有更早的編程經(jīng)驗,我決定我要學(xué)編程。我沒有參加課程或者是訓(xùn)練營,相反,我選擇 JFDI 的方法,并遵循這三條規(guī)則:
- 在連續(xù)180天中,每天建一個不同的網(wǎng)站。
- 每個做一個網(wǎng)站必須同時寫一篇博客。
- 我所寫的任何代碼必須在GitHub上公共開放這樣每個人都能看見了。
(譯注:JFDI = ”Just Fucking Do It“;TL;DR = Too Long; Didn’t Read)
背景
我是學(xué)藝術(shù)的。吸引我學(xué)習(xí)藝術(shù)的緣由是,它為探索人們?nèi)绾螠贤ê徒换ヌ峁┝艘粋€平臺。在過去,我通過雕塑和繪畫來探索人際交流。但是很快我就開始考慮技術(shù)的方法。
科技,尤其是互聯(lián)網(wǎng),為我們開啟了無數(shù)驚人的溝通方式,我們可以傳播、消費大量的信息。在我看來,互聯(lián)網(wǎng)是很棒的,我有些癡迷于它可以通過計算機(jī)進(jìn) 行交流的方式。然而,不是所有人都像我這樣對互聯(lián)網(wǎng)充滿激情,那我該怎樣讓他們知道互聯(lián)網(wǎng)的魅力呢?我意識到我的繪畫并不能描繪互聯(lián)網(wǎng)的力量。我想要融入 其中,親手打造這些藝術(shù)的溝通方式。
從CSS到Javascript,再到Rails,再到Node.js
我在一開始我用一點CSS和JavaScript知識來做簡單的網(wǎng)站。很快我開始玩復(fù)雜的CSS動畫。到了第37天的時候,我開始研究<canvas>元素。第69天的時候,我做了我第一Rails網(wǎng)站,開放網(wǎng)站讓用戶可以互相交流。到第119天,我做了第一個后臺應(yīng)用,雖然我承認(rèn)這個東西我都不怎么明白。在整個項目期間,我做過游戲,玩具,工具。我涉獵了一些外部數(shù)據(jù),使用Instagram和Twitter這些公司的API,并用Node.js建立了實時動態(tài)通信應(yīng)用。
我是怎么做到的?
對我來說,最重要的一個準(zhǔn)則就是「Start Small. Keep Building.| 從小做起,不斷完善」。當(dāng)我設(shè)計好這個項目的時候,我就知道我要學(xué)習(xí)動態(tài)交互網(wǎng)站,但是我也知道我對寫代碼一點都不懂。比起建立一 個復(fù)雜、全功能社交網(wǎng)站所需要巨大工作量,我選擇先邁出一小步。我在第一天寫了一點html和CSS,建成項目的主頁。
我Google了一整天,就為了查找一點點標(biāo)記語言。我本可以用書或者看教程,但是相反,整個項目從頭到尾我都只在類似StackOverflow, MDN,CSS Tricks這樣的網(wǎng)站或者博客和實例上查找我需要的東西。我還使用了一些很棒的在線指導(dǎo),例如Rails Tutorial,幫助我一點點把復(fù)雜的網(wǎng)站從零實現(xiàn)。
完成小目標(biāo)也給了我易解決的小問題,這些小問題又引出新的小目標(biāo)和更小的問題。最終,當(dāng)我完成很多的小問題后,我的對小問題的觀念改變了。例如在我第100天的時候,小問題已經(jīng)不再是第一天的規(guī)模了。不積跬步,無以致千里,最終我完成了動態(tài)網(wǎng)站。
還有哪些必要因素?
保持嚴(yán)格的只有一天的最低期限,有助于保持快速的進(jìn)度。每天都要作出什么東西,這樣迫使我不要原地踏步去理解所有細(xì)節(jié)實現(xiàn)。作為新手很容易陷入這種 困惑,對一個概念糾結(jié)很久,嘗試去理解。我發(fā)現(xiàn)學(xué)代碼有點像拼圖游戲。你可以拿著一小塊仔細(xì)研究,但是它不會告訴你它應(yīng)該放在哪,也不會說整個圖片是什么 樣子的。你得找到一堆小圖片之后,拼到一起才能開始完成大的圖片。
哪些是不必要的?
在項目一開始,我給自己下了很大壓力,試圖做到完美。我過于關(guān)注每個細(xì)節(jié)是否正確,要是和我想象的不一樣,我就感覺徹底失敗了。結(jié)果就是我差點把自 己逼瘋了。把我所有的作品放到顯示器上根本都不能看,但是我必須學(xué)著讓自己接受不完美。沒有什么是完美的,特別是當(dāng)你在學(xué)習(xí)的時候,但不完美不意味著失 敗。在整個項目過程中,我發(fā)現(xiàn)我癡迷于加入所有特性,熬夜到凌晨三點,想把所有的功能都做好。我甚至?xí)驗橐恍┬」δ芏摺?/p>
接下來呢?
繼續(xù)寫代碼!180天180個網(wǎng)站的結(jié)束,就是我程序員生活的開始。這個項目并沒有給我一個軟件開發(fā)的綜合理解,但是它給了我一個寬厚的基礎(chǔ),可以 繼續(xù)進(jìn)步。我計劃研究一些兩天以上才能做完的復(fù)雜網(wǎng)站。做一些大的網(wǎng)站可以讓我在其過程中填補(bǔ)之前的遺漏。在我感覺查缺補(bǔ)漏差不多之后,我想?yún)⒓右恍┬F(tuán) 隊,和那些充滿激情,同樣熱衷于發(fā)明新奇玩意的人們一同工作。在這期間我會繼續(xù)寫關(guān)于我學(xué)習(xí)進(jìn)度的博客,并在GitHub上公開我的代碼。
伯樂在線補(bǔ)充
(穿紅裙的那位,就是本文主人公 Jennifer Dewalt。這是10月6日她和朋友在派對上)
(這是 Jennifer Dewalt 在 Github 個人主頁的“貢獻(xiàn)日歷”,從3月底開始,幾乎持續(xù)有貢獻(xiàn)。)
另外剛才也去看了 Jennifer 的推特,好多人在贊她的堅持,她(應(yīng)該)都在一一回復(fù)。在她的一條回復(fù)中,透露她想加入一個創(chuàng)業(yè)團(tuán)隊的想法。
原文鏈接:http://blog.jenniferdewalt.com/post/62998082815/after-180-websites-im-ready-to-start-the-rest-of-my