所以,FEDC

July 17, 2018
大約是今年 3、4 月的時候,我在 Front-End Developers Taiwan 社團看到了 FEDC2018 Taiwan(以下簡稱 FEDC)的廣告。講座的部分,幾乎是當下就決定要去了。但這將會是我第一次參加 Conference 以及 Workshop(很明顯地於公於私都不會有人揪我一起去),我對兩者會是怎樣的形式都沒有明確的概念。Conference 比較單純,在我的想像中就是人手一台 laptop(87%是 macbook)聽台上發表一些神奇新技術,但 workshop?會是小組合作嗎?有個主題?有個時限?我曾在 Medium 看過"Why you should attend workshop"之類的文章,內容不外乎作者並非高手,但經過一連串的洗禮之後得到了許多實戰經驗,非常建議大家也參加,下略五千字。嗯,我很確定那些人與會當時的程設程度都比我好(應該啦),我是個基礎沒打好的非本科生,更何況 Workshop 的介紹可寫著「建議具備 React 基本知識」啊。事實上,這句話就是一切的出發點。
我知道 React 是現在的熱門框架,許多職缺都指定需要 React 能力。不會 React 並不是我猶豫的地方;不會 React 學就是了,學到一個程度可以參加 workshop,之後求職還會有不小的機率派上用場,這不是很棒嗎?但這就是我的問題。我甚至不知道在這個時間點,我該不該學 React。原因也很單純,新手(特別是沒基礎的新手)忌諱直接開始碰框架而忽略了基礎,這是一個很常見,而我也非常理解與接受的論點。由於 workshop 翌日還有其他行程,如果我想要參加兩場 workshop 就得搭早上八點的飛機回家,在這個情況下我有了四個選擇:
  • 不參加需要 React 的下午場,享受悠閒的假日,早睡準備大清早出發
  • 不刻意學,佛系工作坊,緣分來了就能學到東西
  • 一個月內能學多少是多少,在準備最充足的情況下參加工作坊
  • 學什麼框架,回去打基礎啦
我不抗拒學習以及比較緊湊的行程。思考這些選項時,我腦內浮現了 Medium 風格的農場文:
How did I got a React developer job in 6 months? Well, I had no React experience at all, but I saw a React workshop that will be held in a month, and I studied React LIKE CRAZY.
這很像是那些經歷過生存者偏差在 Medium 上寫了他們成功經驗然後被我瀏覽到的情況,但我無法否認,這個階段的我最需要的就是努力了。唯一的疑慮,就是我不知道這個時間點是不是該把時間花在 React 上。所以,我去請教了認識的工程師,而他給了我參加的答案。Let’s do it then I guess.
我有大概一個月的時間讓自己「具備 React 的基本知識」,但我得先從 Node 開始。非常幸運地,我在 Udemy 找到了一個簡直就是為當時的我量身訂做的 Node 課程。這個講師預設觀眾都是幾乎完全不懂程式的智障,然後鉅細靡遺又簡單易懂的把用 Node 寫伺服器端 code 所需要的所有知識,包含 JS 的 scope、IIFE、module 的原理、Node 的架構、server-client 的架構全部都講解了一遍,猜到某些名詞可能讓人聽不懂時還會特地放慢速度,然後才開始進入使用 Node 架後端的教學。這對基礎不穩的我來說是最需要的東西,事實上我覺得在 Node 以外的部分得到的收穫比學到 Node 本身還多。由於我實在太感謝這個課程與講師了,我決定在這裡宣傳一下: Learn and Understand NodeJS
由於課程詳盡,我實際能花在 React 的時間只有一星期。而老實說,直到 workshop 當天為止我也只學了最皮毛的部分,component 的概念,用 prop 與 state 傳送變數等。我甚至連官網的 tutorial 都沒完整跑完一遍(遊戲機制本身做完了,但是沒做 time travel),購票時覺得還很遙遠的 FEDC 就這樣到了。(一個月感覺很短,但大概是 Node 的課程聽講說實作少,體感上那段期間蠻長的)
FEDC 第一天的部分,除了 PureScript 的部分幾乎全都聽得懂。當然偏向具體探討技術的部份,就算聽得懂等到我實際應用都不知道是幾個月幾年後的事了,但至少概念跟得上,讓我不致於感覺自己走錯了地方。技術軌 TensorFlow.js 的講座我果斷放棄跑去了 Pitch space,剛好碰上 Simon 帶來的海外工作經驗分享,其中「努力累積作品集,差不多了就行動,不要一直想著準備到完美才出手,永遠不會有那一天的」這句話給了我很多動力與安心感,我想這句話是完全命中了心中的不安。另外,最後前端論壇時關於「如何避免 burnout」的提問,Vibert 所分享的「尋找自己的核心價值」以及「給自己一大堆 To do list」,也是很打中我心中的點的一句話。在這條自學逐夢的路上,能得到走得比較快比較穩的一些前輩的分享,確認自己的方向沒有錯,還是非常重要的。只要知道方向沒有錯,腳步就能再快再肯定一些,也就更不會失去動力了。
第二天 workshop 並沒有分組(鬆了一口氣)。感謝講師易懂的講解,無論是上午場的 AMP 還是下午場的 GraphQL 結果都跟得上。GraphQL 的部分帶有大量的實作,雖然我不敢說照著講義自己做需要多久,但至少 code demo 的當下是完全跟得上講解的速度的。結果那臨時抱佛腳的皮毛程度派上了用場。更甚,workshop 結束之後我私底下請教了講師 Jeremy,請他以資深業界顧問的角度給予今後 roadmap 的意見。畢竟我對 React 的短暫需求已經結束了,規劃的短期學習計畫也在 workshop 這一天正式結束,之後我又面臨了打底或學習業界實戰工具的分歧。而請教得到的答案,果然還是回到基礎(剛好前一天到天瓏爆買包含資結與通訊協定在內的書籍)。
所以,FEDC?
我從一開始就抱著聽到的講題、技術內容不會是我立刻會運用到的程度的心理準備。會決定兩天都參加,有三成還是回到給自己一個期限與方向,密集學習後透過 workshop 觀察結果的目的。剩下七成?當然是與 community 交流。而兩個目的都達成了,我認識了一些 routine life 不會有機會認識的大神與前輩,也得到了寶貴的建議,受到了很多很多刺激,看著一些比自己年輕的人已經達成遠超越自己的事情;跟自己同年的人已經有資深開發經驗、比自己年長的人,已經強到我聽不懂他在說什麼了。
回頭看看,能有一個階段性目標真的是很不錯的事情。雖然學一學會覺得,我花了半年(就算扣掉花在 Java 上的兩個月也還是花了四、五個月)JS 程度才從零開始學到會用 Node 架一個 multi-client real time chat web app 或是用 React 寫圈圈叉叉,這進度是不是他媽的有點慢,但回頭看看決定參加 workshop 開始學的那一天 ── 途中不管是 server-client 架構、Node、websocket 的概念、收發 request 跟 response、React 都曾挫折過覺得自己是智障 ── 還是會覺得:
啊,比起當時,我的確是多懂了一點。
所以,FEDC?
Fucking worth it.