2018暑期五倍紅寶石實習心得
“You never know what future holds for you.”
前情提要: 除了成就感get,也讓自己思考下一步…
“下一步”在看到五倍紅寶石(以下簡稱五倍)公告徵求暑期實習生訊息的那一刻,大概花了8.7秒就做出決定,於是轉頭跟當時公司的老闆說我要去寫code了,bye!
選擇挑戰五倍實習機會作為轉職第一站,除了因為想延續在五倍學習Rails的開發經驗,也相當喜歡五倍的文化與環境。
得知自己獲得實習機會的那天,大概可以用one of the best days of my life來形容當下喜悅的心情;然而,同時也告訴自己:開心,一天就夠了。非本科出身、起步也較晚,需要更積極地補強技術空缺。
Warm Up: Rails 教材實做
實習開始的第一個挑戰是,按照指定規格與步驟實作,並部署一個Rails任務管理app。憑藉過去半年的大量練習所累積的經驗, 教材中以規格面來說,對自己而言整體不算太難,而在這階段收穫最大的則是開發流程、撰寫測試、與code review。
過去開發網站的經驗,比較偏向使用者思維並以頁面為單位的方式規劃功能與資料庫,對於小網站來說或許還行得通,但對於資料關聯複雜的專案,常發生需要回頭修改資料庫結構與資料關係的狀況。在這個區塊的學習領悟是,無論專案的大小,從規劃初期就要以全面性的角度思考、規劃資料結構與關聯。
至於測試,恩,就是個過去在龍哥的Rails課程學過、但總有千萬個理由沒有動手實做過的東西。過去也因為沒有撰寫測試,常發生越補越大洞的情勢發生,就算沒有立即發現新的洞,也是債留子孫。但是等一下…子孫不就還是自己嗎?!
Code review,可說是提升程式開發能力最有效率的方式。透過前輩的經驗學習,好處顯而易見。這個階段,五倍將這好處加倍,每一次的pull request,都要通過兩位內部工程師的review,除了學習撰寫出更精進的程式碼邏輯與風格外,一些與程式碼無直接關聯的細節,也在這個階段中有了潛移默化的助長。
Lock & Load: 內部系統+商業案
通過了第一階段教材考驗後,有幸獲得參與五倍內部系統與一個商業案的開發機會,也可說是場震撼教育。
過往接觸過的所有專案,從建立專案到完成都是獨立作業。接觸到五倍內部系統與商案時,第一時間感受到的都是「我真的寫過Rails嗎?」。相較之下,自己的作品就像是躺在游泳池裡寫出來的,不只是潮到出水的程度而已。(註:”潮到出水“是Don’t Repeat Yourself (DRY)的反義,是個你不會想收到的評價。)
除了需要花大量的時間理解前輩寫的程式碼與邏輯,因為專案都是已上線服務,code review也更加嚴謹。想當然爾兩個專案內Rspec測試都是標配,其中一個專案更追加了RuboCop、ES-Lint以及SCSS-Lint規範與自動化檢查 coding style。
吃了這碗加班三寶飯,不會每次考試都得100分,但的確幫助自己開始培養一致性與良好程式碼撰寫風格的習慣。
“Stay hungry, stay foolish”
回頭看這一年,從第一次打開編輯器到寫出第一個前端網頁、從第一次打開終端機到寫出第一個Rails網站、從一個程式麻瓜到成為五倍後端實習生,覺得有點不可思議,但卻又是如此真實。
當初做出轉職決定後,周遭親友大多不能理解為什麼會在這時間點放棄過去的工作經歷;或是,已經到這方年紀才開始學習,不會太晚嗎?…等疑問。
對於種種外來投射的問號,在回覆時,我總是用「堆積木」來形容寫程式:"用一塊一塊的小元件、在沒有任何既定模式和固定方式的情況下,組合出自己想要的東西,是一件快樂而有趣的事。"
在走到下個交叉路之前,先經驗一場對自己未來有益,且能持續帶以熱忱的那一條路,no?