前言
你最近學習的新東西是什么?
可能是一門新語言,比如意大利語或者德語。或者可能是一個圖形編輯器,比如Photoshop。或者是烹飪技術,木工藝,日常鍛煉。我想讓你記住你最終掌握它的那種感覺:類似燈泡點亮的那一刻。當一個事物從模糊不清變得像水晶般清晰,當你掌握了臺鋸的使用,或者理解了法語中的陰陽性名詞的差別。感覺怎么樣?非常棒,不是嗎?
現在我想讓你稍微讓時光倒流下,回到你掌握新技能之前,那時的感覺是什么樣的呢?或許是有些恐慌,有些挫敗,是嗎?我們曾經一度并不了解我們現在熟知的事物。這并沒有什么,我們只需要從某個地方開始啟程。學習一種新鮮事物是一段令人興奮的旅程,尤其是你追求的是高效地學習。
我教過很多入門級的編程課。上我課同學們經常嘗試通過看一些博客或者復制粘貼代碼來學習HTML和Javascript,但是他們并沒有能夠真正掌握一些東西,來達到理想的地步。他們沒有抓住這些編程主題的實質,并不明白發生了什么,以至于寫不出強大的代碼或者debug代碼。
我經常在我的課上教一些通用方法,比如web標準,語法的加成,有良好注釋的代碼以及其他一些最佳實踐。我講一些主題時會用全面透徹的方式解釋清楚怎么做以及為什么,而不是緊緊拋出代碼來復制粘貼。當你去追求理解你的代碼,你的工作會越做越好。你的代碼再也不是你的"工作",而是你的"匠藝"。這就是我為什么喜歡Up & Going。Kyle帶領我們深入語法和術語,事無巨細地介紹了Javascript的方方面面。這本書并不是只停留在表層,而是真正使我們理解我們寫代碼時的一些概念。
正如你在學習Photoshop時只會打開,關閉和保存文檔,復制一些 jQuery片段到你自己的網站是遠遠不夠的。在學習一些編程基本概念后,你就可以創造并分享自己的設計。但是如果不能理解工具背后的知識,你怎樣做到定義一個表格,描繪清晰的類型系統或者優化網站的圖片?如果不清楚一個循環怎么工作,怎樣定義變量或者什么事作用域,我們不可能寫出最好的代碼。我們不能委曲求全——總之,這是,我們的匠藝。
你挖掘JavaScript越深,你會越來越清晰。一些概念,比如閉包,對象和方法對你來說可能遙不可及,但是這本書將會幫助理解它們。我希望當你開始看這本書時記住之前提到了兩種感覺——學習一些東西之前與之后。一開始可能會令人畏懼,但是拿起這本書你會開始一段令人驚嘆的旅程。Up & Going是我們學習編程的開始。
享受燈泡點亮的那些時刻!
Jenn Lukas
jennlukas.com, @jennlukas
前端顧問