在網路的職缺上常常可以看到工程師的分級,常見的分類有:實習 Back-End、Junior Back-End、Senior Back-End、Middle Back-End(有些會直接稱為Back-End),先將這些等級粗略的分級完會對於求職新人看到職缺後能更快速的評斷自己是否能勝任。
實習生 Back-End
如果是剛入行的新手遇到實習生這種職缺那真的是蠻幸福的,這代表公司完全不期望面試者原本就會什麼技能,公司根本就是花錢請人來上課學技能啊!通常只要邏輯清晰、能溝通、積極度夠強,在沒有競爭者的狀況下很容易就能面試上,但入職後可能會發生每天都在打雜這種狀況,但只要積極度夠強,願意在完成基本工作內容後向前輩求教,相信很快也能融入後端的工作模式,進入Junior Back-End 的程度。
Junior Back-End
到了 Junior 之後就會開始被指派小型功能開發,這時候的程度有極大的可能性在寫小功能的時候也都會卡關,但我相信只要自己有好好思考過整個邏輯,並且有上網找過答案,就算沒辦法解決時去找資深一點的工程師,我相信對方也會很樂意解答,而 Junior Back-End 最常見的開發就是協助主力開發者寫 Unit Test 或是 Feature Test ,熟悉程式語法及框架的同時還可以認識商務邏輯,此時這個時段會是職涯中最充實變強曲線最快速的一段時間。
Middle Back-End
隨著肝硬化的程度,人類終於進化成了 Middle Back-End ,這時需求下來已經可以不論過程但至少可以完成功能,而且許多的旁枝技術也會跟著變強。資料庫的設計、Git 的操作、Linux 環境部署、甚至部分的前端技能都略懂略懂,此時學習曲線就會開始趨緩、有時會迷茫為什麼每天都在做一樣的東西,因為我自認也處於這個階段的 Back-End ,所以我給自己設立了幾個目標。一是開始開發屬於自己的作品,盡量以不用 Copy & Paste 大法的方式開發給需要使用的人,例如我有玩天堂W,所以我就替我的血盟成員開發分鑽系統,我有家人有小型電商的需求,所以就開始開發後台系統並找一個前端工程師搭配串接,每一次的重新做差不多的功能,都會獲得不一樣的體悟,如此一來基礎就會變得更深厚。二是發展更廣域的旁枝技能,例如開始接觸其他端點的內容,不僅能讓自己開發出來的功能能讓他人更方便使用,也能讓自己的職涯有更多的可能性。三是建立更多的人際關係,隨著開發效率變得更快速,可以神遊的時間就會開始增加,此時的我沒事就會去搭訕隔壁的同事了解一下對方的工作內容,拓展人際關係不只對身心靈都有幫助,也許某一天在軟體這個領域也能互相幫助也說不定。
Senior Back-End
這種傳說等級的攻城獅的領域是我還沒有辦法觸及的,所以我也只能遠觀其皮毛、耳聽其牙慧,曾經我見過仙人打架,設計模式如長江滔滔不絕,一張嘴便是驚濤駭浪。一句生命週期便讓我頭昏腦脹,程式撰寫的速度更如千手觀音般讓人讚嘆不如,僅只使用 Vim 就能打出英打3000+的程式碼,但奇妙的是我所遇到的仙人都有其強烈的個人風格,如有幸能遇到此等神靈實在三生有幸妙哉妙哉,如果能拜其門下必然能進步神速少讀十年書。
以上就是我對於各個等級的工程師的見解,期望有一天我也能轉升 Senior ,薪水跟著直衝天際。明天就會開始分享我當實習面試官的奇聞軼事了。
frontend, backend指前端與後端,文中應該是要使用programmer或是engineer嗎?
工程師確實是 programmer 或是 engineer 來稱呼沒錯,但因為我個人只專精在 Back-End ,並不了解 Front-End 的生態,所以不對於 Front-End 多加評論。
而我待過的公司都是用 Back-End 或是 Front-End 來直接稱呼工程師,當然這只是比較口語化的用法並不代表文法或用字正確。