2020年7月5日 星期日

過了試用期來回顧一下!

新工作過了試用期了,該是來回顧一下蜜月期的種種。


根本沒有蜜月期啊!這份工作與上份工作最大的差異就是需求是無盡的,上一份工作進去後需求寥寥可數,大多數時間都在精進自己的技能,現在回過頭看是很美好的事QQ,不過這也是我自己選的,畢竟物極必反,有不爽才知道爽。


回顧第一份工作,大多數的時間都是在第一次實作功能,也就是所有的東西都是新的,光是了解 android 原生套件跟第三方套件的使用就佔去大多數時間,對於需求的評估也是完全沒有概念的,老闆提了個需求第一件事就是「我 survey 一下!」,公司內也沒有高手可以帶,所以完全屬於一個自由發展的情況,雖然很努力,但感覺進步有限,又由於自信不足所以待了快兩年才找下一份工作,這時候期待下一份工作可以有團隊可以討論,且對各種設計模式很感興趣、也很想接觸 MVP、MVVM 的開發架構。


第二份工作幸運地找到一個 mobile 團隊有八個的公司,android/ ios 各占一半,維護兩個 app。不幸的是進去後幾乎需求都消化完了,新的需求又難產,搞得我一整年沒做幾件事。不過在這間公司我除了團隊的需求有達成,技術上的期待也是有些斬獲,像是熟悉了MVVM 架構,且對 android jetpack 那些新的東西都有了解與實作到專案上,同時也大量練習 kotlin 語言,公司的專案也漸漸轉變為 kotlin 與 java 並存的模式,只是有個資深工程師蠻抵制哈哈。

在第二份工作中,學了一大堆東西,但能用上專案的其實也不多,畢竟也沒有什麼需求,所以開始動念想要讓所學有所發揮,那時候希望下一份工作可以有DI、rxjava、unit test...等等的技術環境,還有全 kotlin 的開發環境。


所以就來到了現在,印象很深刻的是,面試的工程師都問一些很老的技術,相較我上一份工作學的都是最新釋出的工具,面試時問的是 sqlite、IPC、AIDL、古老的異步調用,也有問到 memory leak 的問題,跟徵才網頁上寫的不太一樣阿XD,反覆考慮後,雖然覺得要重拾那些古老的東西會有點辛苦,但是我又不想過太爽,錢也差不多有給到位,所以就接受了。


所以在這三個月以來,過得還真是辛苦QQ,第一是架構雖然是MVP,但是!!!就是不統一,就像上一份工作明明用的是MVVM,就有人喜歡把所有的 code 都塞在 UI 層,想說不久待就算了,反正也沒有改動的必要。這份需求都是大項目,幾乎每一個頁都有重大的改變,就得額外花時間去處理那些爛 code,真心覺得很誇張。專案中有用到 dagger 跟 rxjava 是我本來沒有預期的,所以碰到了也挺開心,只是!!!他老兄用的也是 free style,一點都不嚴謹,可能也跟有裝 leakcanary 有關,一開 app,各種 memory leak 通知不斷,搞得我快崩潰。


大多數時間都在跟爛 code 搏鬥,抱怨實在寫太多,點到為止。


總之在技術面,這份工作可以讓我好好磨磨 rxjava,期望可以到達一個精通的程度,且在 custom view 的部分也有可學習的地方。因為有使用 dagger ,要寫 unit test 就比較有機會,雖然有看前人遺留的 unit test ,但不知道在哪一代斷掉了。有裝 leakcanary 也算是一個亮點,畢竟前公司沒有的都是好的,在解 memory leak 的同時,也讓我回頭注意這些細節。


歷經三份工作,每份工作都可以學到新的東西,同樣的目的有各種達成方式,去看不同人的實作就有不同的心得,這是如果我一直待在同一間公司無法體驗的,且不同公司所使用的工具差異也很大,如果繼續待第二間公司,我的 rxjava 跟 DI 的部分不可能在專案上實現,在這間公司卻是基本,讓我感受到生命的美好。


雖然是這樣,還是蠻累的。



沒有留言:

張貼留言