fbpx
Photo by Hitesh Choudhary on Unsplash

前言

這是一系列我參加完鐵人賽的整理,
最近也透過 火箭隊軟體工程師培訓計畫(高雄) 的場地,
舉辦一系列實體的讀書會導讀,
已經進展到一半了,每次約 3 小時,一週一次已經連續約一個月左右。

透過實際寫過文章、實際講過 YDKJS 這個系列,
這次回顧,把一些真正重要的「大綱」整理出來。

這部分主要會分享一些「自己」的看法,
如果想知道 YDKJS 作者 Kyle Simpson 對於 JS 的想法,
可以參考我的鐵人文章。


大神有很多種,有些是業內經驗豐富,有些樂於教學分享。

YDKJS 作者 Kyle Simpson,屬於偏向「教學型」的程式教育大神,
其知識整理的全面性與對於 JavaScript 語言的理解都非常深入,
而這次鐵人賽的材料,具體上有不少:

  1. You-Dont-Know-JS :
    這是一套全書開源的材料,切換分支(branch)可以看到有簡體中文,再配合新同文堂套件可以轉成繁體。
    我有翻過台版翻譯,對照細節台版翻譯比簡體中文還要流暢且舒服,不過可惜台版翻譯並沒有開源,所以我也沒有推薦繁體了。
    自己的觀點:
    有錢想收可以收繁體書,或是去各大圖書館借即可。
    不過繁體書非常熱門,很難借到整套,建議還是以開源資源閱讀即可。
  2. 線上收費課程 Deep JavaScript Foundations, v3 (@ frontendmasters):
    這一套系列課程更新過不少次,這次看的是第三版,也是非常近期的版本(Published: April 3, 2019),
    與其說是鐵人賽,換個角度看也是這套課程配合書籍的筆記 30 天。
    值得一提的是,這套課程雖然沒有中文翻譯,但有英文字幕及逐字稿,聽習慣之後用 1.6 倍速度看也沒有問題,Kyle 的發音以大學多益沒 600 的小弟來聽,依然能夠非常清楚理解。
  3. ECMA-262, 10th edition, June 2019 ECMAScript® 2019 Language Specification
    因為 Kyle 理解 JavaScript 的方法既簡單又暴力:「讀 Spec.」。
    所以這套系列,很多時候都是在和文件奮鬥,但讀習慣之後很快能了解整個段落在說明的意圖。
    這也是最好且唯一能夠確定 JavaScript 這個語言的方法。

整體比例大概 4 這種感覺

額外補充:
我有寫在我的鐵人賽裡面,但其實不完全是 JavaScript 或是說 YDKJS 的範疇,
反而屬於所有寫程式的工程師對於 coding 這件事的理解。

一樣影片有逐字稿,可以多認識 YDKJS 這個系列的作者,
能夠更貼近、理解這套書籍的思維方式(mindset)。

https://frontendmasters.com/teachers/kyle-simpson/code-is-for-humans/

我自己認為比較多幫助的部分:

  1. 很多新手寫 code ,遇到問題會想要 masking the problem ,或是透過很多 workaround 來快速跳過問題核心,這樣的後果就是,問題累積到一定程度,你就會想要換工作了,因為你知道你沒有能力解決(Kyle 自己的例子)。
  2. 很多人不夠理解自己的 code ,很多地方完成的時候,應該要能很確切知道結果,而不是夠過不斷 debug 或是調整來完成。
    那樣硬生堆疊的程式,就像是天氣預報「猜測」一樣,有時候會對,有時候會錯。
    工程師不應該是猜測人員,任何新功能、bug 修復、細節調教都應該是很有目的性且專業的方法,而不是「猜測」。
    一段結果確切,意圖明顯的程式碼片段,才能避免每次有 bug 都會「被重寫」的惡性循環。
  3. 過去的六十年前,程式的效能需要非常計較,任何對於 register 的細節掌握都是關鍵。
    但現在已經 21 世紀了,程式不應該是以寫給電腦為目的了,應該寫給「人」看!
    寫程式更多的目的,應該是 「我們用程式碼來彼此交流想法
    一段每個人都能讀懂的程式碼,和只有非常少數人能理解的程式碼,很顯然是「一段每個人都能讀懂的程式碼」更為重要。
    所以,與其思考迴圈用 i++ 或是 ++i 哪個對電腦的效率高,又或是炫技式的方法 i -= -1 ,你更應該思考的是「別人」。
    那個別人,很大的機會是 1個月或是 3 個月後的「自己」。
    因此,一小段程式的註解,對於「溝通意圖、溝通想法」有幫助的註解,都是非常重要的。
    不要寫出這種註解 :counter++ // counter 加 1
    很明顯的,這沒有幫助,不如寫說「為什麼」是 1 ,不是 2 或 3 。
    更不應該出現下面這種,就不多做解釋了。
    /*** @description 不要修改,不然後果自負 ***/

to be continued …


好文轉自作者 Ashe Li 《跟著 YDKJS 作者 Kyle Simpson 打造全新 JavaScript Mindset : 序 (一)》,如果你喜歡他的文章,歡迎回到原文看更多: )

Leave a Reply