2019的年中

記一個年中總結。

畢業工作滿四年了,這四年作為一個前端工程師也是略有心得,最近尤其有感觸,畢竟已經過了25歲,不敢再說自己對未來毫無想法。

為什麼是前端?

前端可以說是一個很雜的東西。

讀大學時學校並不會系統的「教」你如何成為一名前端工程師。我在學校裡學C++、C#、JAVA、資料庫、資料結構、網路式分佈、編譯原理……唯獨沒有javascript和前端各種包羅萬象的框架及工具。

我前端的的知識和技術基本上是在我進入社會以後才掌握的。

我一開始就是想成為一名前端工程師嗎?當然不是。我讀書的時候前端並不是一個熱門的選擇,當時後端當道,大家都覺得寫後端是件了不起的事,而那時不少的前端可能還在用Dreamweaver做版面,框架基本只用jQuery。會接觸前端的原因說白了是工作需要,於是往這方面走,畢竟剛出社會的我沒有什麼選擇的餘地。而如今我很開心我做的是前端,儘管今天的前端日新月異,新的概念、新的框架和新的工具層出不窮,要做的「雜事」不止一兩件,你必須時時刻刻增進自己才不會被淘汰。但這確實讓我感覺到自己正向前走。

什麼契機讓我想脫離

直接原因是,我認為自己沒有前進的空間了。

我看著鏡子裡日漸增多的白髮,想到自己到了不惑之年仍端坐螢幕前、敲著鍵盤與代碼打交道的場景,著實心生恐懼。思索著自己還有什麼可能性。

給自己兩個月的空白期,停下來休息,想想職業生涯。

停下來的這段日子

兩個月比我想像中還要短暫,日子一下子就過去了。

我曾嘗試著找不同跑道的工作,當然幾乎以零經驗失敗而告終。於是我回頭審視我的前端本行,認為自己四年的開發經驗足夠讓我再從這一行做起,往更廣一點的相關方向發展,例如SE或者PM。事實證明我高估了自己。

我的認知是,小公司偏向廣度,大公司注重深度。

一直以來我都在小公司裡,一個人可能同時要負責多個專案,例如我就從web系統做到了手機app;一個人也可能同時要擔當不同的角色,我做前端的同時也寫過後端、參與過DB的設計、參與過系統分析和系統設計。我有自知之明,知道自己主要做前端,其他接觸參與過的部分,只是為了讓我在做前端時更順利。

然而,偏向廣度的背後則是時間分配的不足,導致深度被嚴重忽略。

這也是我錯估自己能力的主要原因。一直以來由於接觸得廣,讓我忽略了自己深度嚴重不足的事實。

用過ReactJS?那解釋一下virtual dom的原理吧。

callback的弊端是什麼?Promise是怎麼實現的?

http, https, http2 的區別?

說說看 event delegate 的原理。

咦?我好像都用過,但我怎麼好像一個問題也答不出來。至此,我才意識到深度的重要性。以前開發專案時,有時卡了很久的問題,如果我在底層方面懂得夠深,我也許不會花那麼多時間去解決;或是在function寫法的方面,能夠以更優秀的寫法去優化系統的性能,提高響應的速度,給用戶更好的使用體驗。

廣度很重要,但如果深度不夠,好像都略懂略懂,終究是得其門而不得入。

意識到這一點,其實是很痛的一個過程,突然有一種「我這四年來到底在做什麼?」的感覺。換一個角度想,如果當初我沒有選擇給自己這一段空白期,好像就不會這麼清楚的認識自己。

往後

工作這四年裡,我很感謝我的主管(後來變成我老闆XD)和同事們,不厭其煩地把一個菜鳥拉拔成能獨立完成一個系統的「還算過得去」的前端工程師。會說是「還算過得去」就如前面所說,是深度不夠的問題,而所謂的深度,還得靠自己鑽研與精進。

知道自己的不足,是一種能力,過了某個水準之後才有的能力,在那之前,人很容易覺得自己擁有全世界

如今的我還是對未來充滿了很多幻想和抱負,我還是覺得自己擁有很多種可能,仍然會想嘗試不同的新事物。唯一的前提是要有資本,基礎夠扎實,對你所正在做的東西一清二楚。

願未來的自己可以再更成熟,心態更好,保有初入社會時的上進心。