《TO》導讀:原文作者 Jennifer Dewalt 來自美國,本身背景是學藝術的,後來也有創業。該文來自她 2013 年時決定用製作網站的方式來學習 coding 所寫的心得。
我要在 180 天裡通過建立 180 個「網站」來學習寫程序。今天是第 115 天。
4 個多月前,我決定要學學 coding。
請無視我以前沒有寫程式的經驗,在學校也從來沒有上過任何「技術」課程。我決定要在 180 天裡建立 180 個「網站」,一天不落。
今天是第 115 天。
(圖片來源:Twitter
  • 背景
我是學藝術的。吸引我學習藝術的緣由是它可以探索人們如何向外界表達他們自己。我們穿什麼衣服,我們的興趣愛好,還有溝通方式。過去的日子裏我嘗試着用繪畫和雕刻來捕捉這種自我投影。
然而如今是 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 模式到執行模式的切換不是無縫連接的。但是這個項目裡最難的部分,在某種意義上來說,是我每天都感到一敗塗地。
走出去的每一個網站都是半成品。因為我是個完美主義者,重做或者擴展網站的誘惑力對我來說相當強。前進的路不是一直縫縫補補和東敲西打來完美它。前進的路應該是移步到下一個概念並做出來。
  • 網站
Day 114  Image Palette
Day 113  Window Master
Day 112  Check Sketch
Day 111  Down the Weight
Day 110  Effects
Day 109  ColorWorks
Day 108  Algae Tank
Day 107  Serious Question
Day 106  Wish
Day 105  Infinite Descent
Day 104  Emergency Off
Day 103  Word Clock
Day 102  Drying Paint
Day 101  Globulator
Day 100  Song Machine
Day 99  TOS
Day 98  No One Is Watching
Day 97  Text to Braille
Day 96  PostBored
Day 95  Sparklers
Day 94  Mastermind
Day 93  Swivel
Day 92  Typing Test
Day 91  Pinwheel
Day 90  Skinny Drinks
Day 89  Hourglass
Day 88  Quick Words
Day 87  Countdown Clock
Day 86  Snare
Day 85  Fishy Friend
Day 84  Liquor Likes
Day 83  Hollywood
Day 82  Text Scroller
Day 81  Capture
Day 80  Tiny Notes
Day 79  Present Value Calculator
Day 78  Hangman
Day 77  YourSpace
Day 76  PixShow
Day 75  King of the Comments!
Day 74  Page View Graph
Day 73  Keep It Up
Day 72  Make A Dude
Day 71  One Page
Day 70  Click Counter
Day 69  Leave A Note
Day 68  Metronome
Day 67  World Time
Day 66  Alien Attack
Day 65  Fade
Day 64  Screen Flood
Day 63  Memory Orbs
Day 62  Confused Robot
Day 61  Fix It
Day 60  Fizz Buzz
Day 59  Bubble Wrap
Day 58  Fireworks
Day 57  Bug Blaster
Day 56  Hooray
Day 55  Paratroopers
Day 54  Calculator
Day 53  Circle Invaders
Day 52  Etch A Sketch
Day 51  Memory
Day 50  Color War
Day 49  Weather Now
Day 48  Static
Day 47  PONG
Day 46  Snake
Day 45  Color Perception Test
Day 44  Analog Clock
Day 43  Seeing Spots
Day 42  Magnetic Poetry
Day 41  Light Bulb
Day 40  Popping Bubbles
Day 39  Pixel Painter
Day 38  Type Attack
Day 37  Bouncy Balls
Day 36  Little Dude
Day 35  Buttons!
Day 34  Maneki-neko
Day 33  Random Word Generator
Day 32  Particle Waves
Day 31  Endless Throbbers
Day 30  Silly Kitty
Day 29  Magic 8 Ball
Day 28  The Click Challenge
Day 27  Rain Maker
Day 26  Simon
Day 25  SCRAMBLED !
Day 24  What is Your Email’s Impact?
Day 23  Stopwatch
Day 22  Keep It Straight
Day 21  Teleprompter
Day 20  Smushing Fireflies
Day 19  How Much of an SF Hipster are You?
Day 18  Building Blocks
Day 17  Party Time?
Day 16  Caterpillar
Day 15  Dropping Boxes
Day 14  Tough Love
Day 13  Rock Paper Scissors
Day 12  Dice Roller
Day 11  Color Clock
Day 10  Sushi Jiggler
Day 9  Bouncing Ball
Day 8  More Drop Shadow!
Day 7  Technicolor Boxes
Day 6  Day Tracker
Day 5  Secret Message
Day 4  Paint a Mondrian
Day 3  Get a Random Color Background
Day 2  Make a Deal!
Day 1  Homepage
(本文轉載自合作夥伴《伯樂在線》;未經授權,不得轉載;圖片來源:hackNY,CC Licensed)