我的 2 年 Developer 生涯

從 Fresh Grad 到 Developer 

無意中看到 我的2年 programmer ( web developer ) 生涯故事 ﹣ 沉重代價 一文,感觸良多,所以都想寫一篇自己畢業至今兩年當 Developer 的心路歷程,回顧這兩年的得著,以及展望一下將來。

2016 年 ----- 初出茅廬 

畢業前到過兩間公司面試,第一間面試了一個月都沒有回音,聽聞陸續有人收到該公司的 offer,便知道自己落選了,所以就嘗試申請第二間。send 了幾封 cv,誤打誤撞找到了一間 agent,幫我安排了一間大公司的面試,糊里糊塗就去了面試。面試完感覺比上次好,踏出那座大夏的時候,大約 11 點,陽光普照,天空亦很藍,心想:「雖然過海番工比較遠,但公司工作環境尚算不錯,如果有 offer 就一試無妨」,結果大約 2 天後就收到 agent 的電話,叫我上公司簽約。好慶幸自己未畢業就已經收到一間大公司 Developer 的 offer,考完試就馬上番工,但現在好後悔當時太早番工,沒有玩盡佢...

從學校走出來的時候就像一張白紙,對 IT 這行業是零認識,沒有接觸過現實世界中的 IT project,最多只是做過學校的mini project 及 FYP (Final Year Project)。記得第一天上班,SA (System Analyst) 給予一個 demo project 讓我試煉身手就已有點怯,對比學校剛剛完成的那個 project (Web Application Development) 顯得大型很多。當時連學校 project 也只能勉強應付的我,開始擔心自己有沒有能力完成 SA 所吩咐的工作,以及未來 developer 的路⋯⋯SA 簡單講解了 project 的架構,有點像幫我重溫 Web Application Development 那一科所教的東西,然後我就開始嘗試 study 一下那個 project。經過 SA 及隔離同事的指導,終於用幾天的時間掌握並完成了那堆工作(都是一些基本CRUD),這時候才鬆了一口氣,感覺腦袋有點「通經開竅」。

大約一個月後,SA 開始讓我學習一個沒有上線的真實 project,由於功能不多,所以與 demo project 相比也不是大型很多,感覺不難上手。書展這段時間 SA 比較繁忙,都沒有時間理我們,所以我只是自己 study project,也更能掌握當中的技術。 

後來便開始接觸已上線的 project ,由於 designer 遲遲未完成 UI design,所以有好一段時間都是沒有工作。PM這時買了Google Cardboard 希望我們有時間就研究一下,所以我就開始研究VR,嘗試跟網上教學用 Unity 寫了一些 VR app。

大約 11 月的時候才收到 designer 的 UI,由於已經研究了幾個月 Spring MVC,所以 revamp 過程大致上沒有問題,大約用了一個多月就完成 revamp 的工作,看到 revamp 後的 project 很快就上線了,有種興奮的感覺,沒有想過自己可以幫手整完一個網站,就好像畫家見到自己辛苦完成的作品那樣感動。

12 月,PM 為我增添了一部 Mac mini,開始了我 iOS developer 的生涯,隨後幾個月我都在學習以 Objective-C 開發原生 iOS app。由於在學校沒有學過 Objective-C,剛開始看 Objective-C 語法的時候不太習慣,有好多 syntax 及特性都好陌生,例如 method call、interface、protocol 等,後來看得多才逐漸習慣。掌握了基本 Objective-C 語法後,就正式開始學習開發 iOS app,首先學習 iOS app 的 life cycle (viewDidLoad, viewWillAppear...) 和 Interface Builder,在 xib 上拖拉一些 UIButton、UILabel、UIImageView,建立一些 IBOutlet。然後是比較中階及常用的 UITableView,implement UITableView 的 Delegate,嘗試在 TableView 中加插一些廣告。

2017 年 

大約3月份,需要 revamp 另一個網站,由原本 PHP revamp 成跟之前那個網站一樣,用 Java、Spring MVC,歷時約一個月。今次 revamp 的網站相對簡單(只有Read), 我所負責的部份亦不多,沒有什麼大得著。

4、5月份比較清閒,主要是fix UAT 的 bugs 及 feature。

6月份,再 revamp 第一個網站,可能之前的 UI 未夠好,這次又用了一個月 revamp。由於有同事 resign,所以除了要 revamp 我之前所負責的,還做了他負責的部分。

7月,主要fix UAT 的 bugs 及 feature。

自此之後,revamp 網站的工作便告一段落,我由 Web Developer 變為 iOS Developer 了。

隨後幾個月,我主要工作是維護公司已上線的 iOS app,例如改善介面、加插廣告、加新 feature,透過呢 d 加加減減,我睇多左之前既人寫落既 code,對 iOS 開發亦都逐漸掌握。中間約有一個月在研究 Google Cloud,因公司想把其中一個較簡單的網站放上 cloud。 

喺呢個 moment,我已經不知不覺工作(扮工)了一年有多,revamp 過 2 個網站,我覺得係時候嘗試自己建立一個網站,鞏固自己的經驗。 

所以大約 8 月份的時候,我在 Udemy 報了 Laravel 的 course,剛巧有朋友想重整他的網站,我就利用自己在 Udemy 所學的幫他建置了一個網站,由 HTML、CSS、Bootstrap 到 Laravel,全程都是自己一個做,然後再自己買 Domain、租用 Linode 的 vm ,把網站 deploy 上 Linode。整這個網站令我獲益良多,雖然 HTML、CSS 這些我一早已經學過,但我之前並沒有試過一手一腳去用 HTML、CSS 砌出整個網站,所以一開始的時候我很擔心自己咩都整唔到,連 UI 也砌不出,到最後在瀏覽器輸入網址見到自己寫的網站的時候,真的很感動。

2018 年  

有了用 Laravel 建立網站的經驗,我對自己開始有點信心,年頭為自己訂立了目標,希望學到 React 然後跳槽。好巧合地,1月尾做 appraisal 的時候,project manager 希望我可以學 React,然後我就名正言順地在翻工的時後學 React 了。我報了 Udemy 的一個 course : Stephen Grider 的 Modern React with Redux,發現他的教學幾詳細,所以也報了他另一個 React Native 的課程。上完課程後,給 SA 看了一些 demo,然後就叫我嘗試用 React Native 重寫一個已上線的app,由於呢個 app 尚算簡單,所以都好快整左個初版。

而工作以外既空餘時間,我都在學 React,而且用 React 整了一個網站,打算面試可以向面試官展示自己的 side project。

得著: 

學了用 Java、Spring MVC、Hibernate、Freemarker 開發 web app
學了用 PHP、Laravel、Bootstrap 3 開發 web app
學了用 Objective-C、xib 開發 native iOS app
學了用 Swift、Storyboard 開發 native iOS app
學了用 ReactJS、Redux、Redux-Thunk、Node.JS、Mongoose 開發 full-stack web app
學了用 React Native、Redux、Redux Saga 開發 iOS / Android app

展望: 

經過一年 web developer 和一年 iOS developer,發現自己比較喜歡做 web,所以會搵 front-end 或 full-stack web developer 的工作,希望可以進一步提升自己的編程技巧,學到更多新技術。 

後記: 

工作兩年,除了得到人工和學到一些技術,就是疲勞的身驅。有一段時間肩頸非常緊,這股疲累及後廷伸至腰部及臀部,感覺有重物壓著腰部及臀部的神經線,造成劇痛。原因我想是長期坐著、加上坐姿有問題,導致肌肉勞損。我知道是時候要做運動改善身體,所以就開始跑步,鍛煉自己的肌肉,幸好跑了一段時間,腰部及臀部的痛楚消失了。所以在此奉勸各位即將加入社會大學的 fresh grad,不要因為工作而把自己的身體健康犧牲了,身體是你最重要的資產,工作後一定要常做運動,甚至買醫療保險或危疾。

留言

這個網誌中的熱門文章

政府T-Contract vs Vendor vs In-house