> 原文出處:https://github.com/getify/You-Dont-Know-JS/tree/1ed-zh-CN/up%20%26%20going
# 序
你學的最后一個新東西是什么?
也許是一門外語,比如意大利語或德語。或者可能是一種圖像編輯器,比如 Photoshop。或者是一種烹飪技術,木工活,日常鍛煉。我想讓你回憶一下你最終學會它時的感覺:醍醐灌頂的時刻。當事情從模糊不清變得豁然開朗,正如你掌握了如何使用臺鋸,或者理解了法語中雄性名詞和雌性名詞的區別。那種感覺怎么樣?非常美妙,對吧?
現在我想讓你再多向前回憶一些,找到你學會新技能之前的那一刻。它 感覺如何?可能有點兒嚇人,也可能有點兒沮喪,是吧?在某一個時刻,我們都還不知道我們現在知道的事情,而這完全沒問題;我們是從某處開始的。學習新的東西是一次激動人心的冒險,特被是當你想高效地學習它時。
我教授過許多面向初學者的編程課程。上我課的學生們經常試著通過閱讀博客或者拷貝粘貼代碼來自學HTML或JavaScript這樣的東西,但是他們都沒能真正掌握能夠使他們編寫出自己渴望的結果的技能。而且,因為他們沒有真正把握關于編程的特定問題的內在和外在,他們不能編寫強大的代碼或調試自己的程序,因為他們沒有真正地理解發生的事情。
我總是相信教授我的課程的正確方法,意味著我教授Web標準,語義標記,良好注釋的代碼,和其他的最佳實踐。我使用一種徹底的方式講解問題來闡明如何做與為何做,而非通過復制粘貼來倒騰代碼。當你努力理解你的代碼時,你就在創造更好的成果,并在編程上變得更加純熟。代碼不再僅僅是你的 工作,而是你的 作品。這就是為什么我喜愛 入門與進階。Kyle通過深入講解語法和術語給我們帶來了一個對JavaScript的全面介紹。這本書不是淺嘗輒止,而是讓我們真正地理解我們將要編寫的東西。
能夠在你的網站中復制JQuery代碼段是不夠的,就像在Photoshop中僅僅學習如何打開,關閉和保存一個文檔是不夠的一樣。確實,只要我學會了一些關于編程的基本我就可以制造并分享一些我的設計。但是沒有合理地了解這些工具和它們背后的機制,我又如何定義一個網格,或者建造一個合理的類型系統,或者為Web優化圖像呢?JavaScript也一樣。不知道循環如何工作,或者如何定義變量,或者作用域是什么,我們將不能寫出最好的代碼。我們不想安于這種次優的狀態 —— 這畢竟是我們的作品。
你對JavaScript探索得越多,它就變得越清晰。閉包,對象,和方法這樣的詞現在可能看起來與你還有些距離,但是這本書將會幫你搞清楚這些術語。我希望你在開始閱讀這本書時保持學會東西之前與之后的那兩種感覺。它看起來可能有些令人望而卻步,但是你已經拿起了這本書,你開啟了一個了不起的旅程來磨練自己的知識。入門與進階 是我們理解編程之路的開端。享受醍醐灌頂的時刻吧!
--: Jenn Lukas
jennlukas.com, @jennlukas
前端顧問