我透過自學成了前端工程師

註:原本為兩篇,新版微調後合併。


從 2015 夏天自學到 2017 年三月底,終於得到了前端開發的工作。

之前的履歷一直都在履歷階段就遭到拋棄。連面試都沒有。在 Meetup 抱怨這件事之後,朋友給我推薦了 NicLin 的網站。
我接著和 NicLin 通了信,請他指引一下。在修正履歷以後,我發現有了點改變──卻沒有發現改變得如此巨大。

來講講幾家公司的面試過程吧。

  1. 第一家在太平的素料公司。 過程:說穿了,那公司要的是懂 Photoshop 與 Dreamweaver 的行政雜工:面試官開門見山的說了雜務很多,碰電腦的時間不到半天。雖然我的條件其實不該挑剔太多,不過我還是問了些如為什麼需要招人之類的問題。

    感想:……嗯,希望網頁能自己掌握很合理、認為網頁再重要也沒訂單重要也很合理。如果認為前者合理,就該徵人專門維護網頁;如果認為後者合理,就該把網頁外包給專業的人。而這兩個如果合在一起,就十分不合理。
    回去之後,覺得那些懂 Photoshop 與 Dreamweaver 而走掉的人十分合理……
    這次的結果:無聲卡

  2. 第二家在七期的 CBD 時代廣場大樓裡面(朝富路上,楓康大門對面那棟小蠻腰就是了),似乎在替客戶維護。 過程:面試官甲對我 CSS 預處理器的理解印象深刻,這方面聊得算是愉快。「為什麼要用預處理器」我也答得出來。
    只是,當他們談到自己的技術架構是 SCSS + Vuejs + webpack 時有點麻煩: SCSS 我懂,但是 Vuejs 我當時沒有碰、webpack 更是完全沒聽過--不過面試官甲說「懂 Angular 的話 Vue 也是可以入門的」 當時鬆了一口氣。
    不過更大的麻煩還在後面……
    面試官 B 看到資料表,自然先問了我的大罩門:也就是學經歷。雖然我有告訴他們我完全自學的成果可以應付前端、而我對自己在 CSS 預處理器的回答頗滿意,但是在詢問「為什麼要踏入這一行」的時候,我開始有點鬆懈地回答「因為自己喜歡在電腦面前」 ……結果面試官 B 接著問了「所以,你和人溝通不良囉?」……只好勉強回答下去。
    感想:我挖了個大坑自己跳,而裡面還有個炸藥。
    另外我回去以後玩了一下 Vuejs,我發現 Vuejs 的 MVVM 的確會讓使用 MVW 的 AngularJS 開發者感到熟悉。

    這次的結果:口頭上說是_第二次面試_,但接著卻是不錄取的電話與信件回覆。

  3. 第三家在台灣大道上,長榮酒店對面的遠雄大樓,做軟體開發的。 過程:面試方先給了一份前端筆試,另外還有 IQ 測驗?好像是第九個圖片應該是什麼的。說實在答筆試不太容易,不過對面的朋友說我寫得很多,害我一開始有點信心。
    做完以後開始了面試。來面試的是一位技術人員、以及他的主管。 那位工程師問我有沒有作品,我給了他 Github 的網站……看完後,他回答說我做的網站不夠複雜、也沒有完整功能的網站、CSS/JS 應該沒寫多少。另外,沒有朋友也是致命傷,因為有朋友在,可以勝過自學好幾年。云云。

    感想:……很嚴苛的評價呢。我不期待結果了。
    回家以後,我開始懷疑這幾年的意義何在。但能突破同溫層,得到嚴苛的評價也是好事。

    這次的結果:無聲卡,但我早就不期待了。

  4. 最後這家位於興富發鼎盛大廈(老虎城旁邊),公司(應該是)做第三方支付的。
    過程:首先當然又前端筆試。雖然比第三家容易些,不過我其實沒有信心。 另外還有一份……紙筆版的智商測驗吧?某某某是誰、什麼英文的中文是什麼這種。感覺題目有點像是以前中科作業員那樣。接著是面試。技術人員說沒有時間看我的作品,叫我直接給他當場看。我正好又有平板。避免了上一家悲劇的我真的很幸運。接著技術人員要我寫一份小程式。關於這份小程式,請直接參見我的 AngularJS 筆記
    再度聊了一下問題……嗯,發現自己問了不少技術人員無法回答的問題。和老闆面試之前,我向他要分數,原本因為上一家的關係,我以為只能拿個 40~60 分,但結果是……80 分以上。不過,這也要感謝技術人員,不斷提示我各種回答上的缺陷。
    這次和老闆面試了。印象最深的大概只有兩件:一是學經歷、二是結果。
    因為在第二家回答學經歷的時候大自爆,在這裡我就小心翼翼地回答:自己發現前端不是 `用用就好、而前端可以透過網頁,很快地驗證自己想法結果云云。
    第二件事情是結果:當我問了例行性的「什麼時候通知」時……老闆看到我在「何時報到」勾了「隨時」。 沒錯,就是這麼急。 「你勾了隨時可以上班,那你可以明天就來報到嗎?」
    我愣了半秒,因為上次這個問題,是在兩年前的冬天。 半秒後我回答了:「是」。然後就去行政那邊聽了報到事宜。
    那天的夕陽很美很美。
    感想:回答程式題的時候,把大括號、分號之類的寫進去會很有幫助。除了爭取思考時間以外,也能給面試官嚴謹的印象。

    這次的結果:不用說,當場錄取、第二天報到。

講了這麼多,這段就講謝詞吧。 首先我要感謝 Rails 臺中:碰上了 Rails 臺中以後,終於實現了這一切。
也要感謝 NicLin:你對我履歷的意見十分有用。
另外,還要感謝六角學院也給了我一點履歷的意見。

以後再找時間談談自學的一點心路歷程?


之所以想寫這篇,是因為看到了講「年薪百萬」的電腦補習班廣告,說矽谷程式員多有錢多有錢的。
但我的看法,這些人其實是有著深厚的技術底、又找到了營利模式優良的公司,才能拿到如此高薪。
但技術底這樣的東西,電腦補習班其實少有人教。要找到營利模式優良的公司更不容易。

我自己則很少想過薪水,寫程式純粹是興趣使然而已:如果我最後沒辦法靠寫程式吃飯,說實在的,我都不知道自己還喜歡做什麼。

因為想做,所以做了。
如此而已。

離題了。總之講一點自學的故事吧:

最初,我是從 code.org 看到一小時編程,玩了一下覺得很有趣,就開始想學程式。
之後無聊在 codecademy 學起 Python,接著慢慢把裡面的項目,一個接一個的學起來。

中途拿到了 CCNA 證書。那是一切的開始。

可是 CCNA 的證書,卻什麼工作也不能保證:我當時一直在應徵電腦的修理、維護與網管,機會卻從未降臨到身邊。無可奈何,只好先去做其他工作。不過,有幾件事情改變了我的想法:

  1. 我抱著把握任何機會的心態,去應徵寫網頁的工作,結果很快就被打槍了。離去前問面試官要如何改進,答曰:「想清楚自己到底想要做什麼」。
  2. 應徵某份網管的工作,面試官問我會不會寫 Flash──我當然不會,但其實也不需要會:時值 2015 年的 Flash 已經有很多人不想用了,而且手機也不支援 Flash。
    接著面試官問我「那麼要如何實現滑鼠移動到哪裡,就放大到哪裡」特效時,我好像也沒有回答清楚。不過回去看以後,發現可以用一個當時我第一次看見,現在卻很熟悉的名詞:jQuery。不過以現在的眼光來看,其實純 CSS 的動畫效果也行......
  3. 應徵行政助理,面試官問我會不會用 Dreamweaver──我當然會,那有什麼難的。我還能寫個官網給你看。
    可是回去以後卻發現公司的官網是用 <table></table> 排版,看起來十分痛苦。從那天開始,我決定要學好用 <div></div> 配 CSS 的排版。

工作期間,我還是靠著網路學習,來完成自己的作品。後來朋友們稱讚我的作品不錯,使我鼓起勇氣辭職。
不過這一步卻落空了。我投遞了太多太多的履歷,卻有太多太多的失落。直到 2016 年底的前端聚會,一切才有了極度巨大的改變W。
改變的過程就省略了,來講講學習程式的心得:

  1. 決定動機
    1. 問自己為什麼:如果有著能願意做一輩子的理由,你才能在拿到年薪百萬前,透過興趣克服無數的苦痛。
      對了,如果你是因為喜歡在電腦面前沒日沒夜晚的做事,那怕是玩遊戲也好,都是很好的學習理由----但若想靠這個理由找程式員,就會有困難:因為寫程式也需要某種程度的溝通。而且你也需要足夠的睡眠時間,才能好好工作。
    2. 問自己想鑽研的領域:你想要寫哪方面的程式?手機?網站?遊戲?嵌入式?
      不同的程式需要不同的工具和語言:想寫自己的手機程式,比起 C++,學 Java 更容易達成自己的目標。
      還是沒有譜的話,就去投身網站開發吧:無論前端後端,要投入的門檻都不算太高。
    3. 真心想做的話就去做:只要想想如果自己要做討厭的事情一輩子、心態會多扭曲就知道了。我不覺得扭曲心靈的工作能做多久。
    4. 背景不會是卻步的理由:有很多初階工作不需要懂太多演算法之類的東西,何況演算法也能在未來回學校學。但想回學校,我認為要先在業界一段時間才行。無論是因為籌學費、還是因為想培養進一步的基礎。
  2. 參與社群
    1. 交幾個同好或業界人當朋友
    2. 參加資訊方面的聚會
    3. 找個開源社群看看:在考慮自己的要不要怎樣前,你會有很多疑問:
      1. 你真心討厭目前的工作嗎?
      2. 你真心想靠你喜歡這件事一輩子嗎?
      3. 這種事又有沒人願意花錢找你做......?這一切疑問,其實會有很多自己看不見的盲點,這也是很多人覺得「夢想不能當飯吃」的原因。你需要朋友給你指點迷津。
        另外,聽聽別人那些夾帶著喜怒哀樂的閒聊也能讓你發現,這件事情是不是值得你克服無數的痛苦去做。
  3. 培養自己的語言能力:資訊的世界以英文構成,你也需要每天去上網查資料。另外,對語文的掌握,也是踏入程式設計的敲門磚。
  4. 寫作品:比起證書,一個自己寫的網站,更能看出實力。

最後,感謝各位把這篇看到最後。