Jess MacQueen 目前是科技公司 Chartio 的工程師。在取得這份寫程式的工作之前,她是 Youtube 的分析師。在前往矽谷知名程式設計學校 Hack Reactor Coding 訓練營密集學習三個月之後轉職為工程師。許多人向她詢問這份難能可貴的轉職經驗,以下是她的建議。(以下文字以 Jess 第一人稱撰寫)
- 先確認你對程式的愛
你想像中的程式設計師也許像這樣:輕鬆地在拿鐵與鍵盤之中找到程式碼的宣洩口,每天花上少少的幾個小時就完成工作。
對於某些天才來說也許如此,不過對於那些剩下的人來說,事情完全不是那樣的。而你、我與大部分人大多屬於那剩下來的人。我們可能需要花上整整 8 個小時來 Debug、花上許多個小時完成短短的程式碼。雖然成功地 debug 是世界上最美妙的事情之一,不過我想有很多初學者並沒有辦法克服所遭遇的挫折。
如果你能克服寫程式的工時與成就感極度不平衡的情況,並可以在這之中找到樂趣,那我想當個工程師也許還算適合你。
- 慎選補習班 / 訓練營
好好的確認求職市場上的 Post,深入地了解求職市場所需求的程式語言與技術。你必需要了解取得這些工作所需的要求,並確認你所選擇的補習班 / 訓練營是否可以提供你所需的相關知識。想盡辦法搜尋補習班的所有相關資料,不管是在 Quora 上、過往學生的部落格,弄清楚準沒錯。
我選擇是 Hack Reactor,因為 Hack Reactor 的課程十分緊湊,在學習的三個月內,我一個星期上 6 天課、一天花超過 11 小時的時間。這樣緊湊的課程實在是很難不學到東西。
- 自學也不失為一種辦法
有許多很棒的工程師並沒有 Computer Science 的學位(資訊工程)、也從未到補習班學習,自學成為工程師當然也是一個可行的方法。畢竟透過網路文獻與資料自學,甚至從錯誤中弄懂複雜的事物對工程師來說是個非常重要的技能。
不過如果你有時間壓力,我仍建議你找個補習班或訓練營,我在訓練營 Hack Reactor 的三個月內所學習到的東西,比我過往工作之餘學習的還要更多。
- 事前做些準備
在進入課程前先做好準備,以 Hack Reactor 來說,他們希望學生自己本身願意努力,並已經基礎。就算你所選擇的補習班並沒有這樣要求,我想在事前先自我做些訓練必定有些幫助。除了可以幫助你更快進入 課程之外,你也可以在這些課前練習好好省視自己是否真的喜歡這類工作。Coderbyte、Codecademy 都是非常棒的練習地,至於書籍方面可以參考 Eloquent JavaScript、JavaScript: The Good Parts、Learn Python the Hard Way are。
- 了解課程
在 Hack Reactor 的時光對我來說是一次非常瘋狂的經驗。不斷在學習全新的事物,甚至沒有時間可以好好複習,幾乎全部的課程都需要自己動手實做,一天也許需要寫超過 10 個小時的程式。這三個月的經驗非常難以用言語形容,我每天至少花 10 ~ 12 小時的時間在一間小房間裡寫程式,而裡面有 25 個跟我相同努力的人。
我曾經在過去有過相同的經驗,那時我在厄爾瓜多學習西班牙文,為期兩個月非常緊湊的課程。我想這兩件事情的相同之處,除了偶爾發做的 Impostor syndrome(冒牌者症候群:明明有能力卻自我懷疑)與令人作嘔的花生醬三明治之外,這兩段時光都是人生中非常棒的體驗。
- Get a job
關於找工作我只能給你一個建議:多找一些工作,就算那些工作看起來一點都不有趣。
你永遠不會知道下一個工作是否適合你,就算你跟該工作地點的人都聊過了,你也僅能窺視到未來的一小角而已。面試有可能非常可怕,就連那些真的很棒的 工程師都有可能會害怕的那種可怕。你會被問到許多相似的問題,你也會開始了解到大部分的公司並不期望你第一次就把事情做得盡善盡美。
如果你真的還不知道怎麼辦 Gayle Laakmann McDowell 所寫的 Cracking the Coding Interview(有中文版:來自程式的試鍊),可以讓你做一點心理準備。
- 總結
雖然 Jess MacQueen 的這份建議看起來有點像是「我的專業來自 Hack Reactor」,不過像該訓練營如此密集的課程,一星期六天、每天 10 小時以上也不是普通人可以忍受的。從這個 Jess MacQueen 的故事中我們可以知道,想成為一個好的程式設計師,只要肯付出努力,就一定可以達到目標!