想成為後端工程師,到底需要哪些軟、硬實力呢? 是否需要做其他準備? 工作後會遇到哪些情形?
以下分享自己找到後端工程師工作前後所做的準備與心得,給大家參考:
*************************************
找到後端工程師工作需具備的軟、硬實力:
1. 軟實力:( 難以量化的主觀性技能,通常指溝通能力、團隊合作能力、時間管理能力、耐心與毅力......等個人特質 )
(1) 後端工程師在個人特質上,需要愛好挑戰,並對於工作有自己的堅持,喜歡邏輯性規劃、安排,能有不找出這個bug不睡覺的執著與積極性。
並且建議在撰寫履歷與面試中,要能傳達出這樣的特質,以利順利通關!
(2) 個人作法:自己在履歷與面試中描述個人特質時就有列出類似的特點(如:愛好挑戰。對工作項目都會分每日安排、長程安排,主動回報進度,並在期限前提早有效率地完成。遇到資安事件或系統異常,自己的處理方式。利用個人時間進修程式與相關系統課程。若遇到需要耐心找錯時,自己的態度與做法等),並每個都舉出具體的例子闡述。
2. 硬實力:( 可以量化的客觀性技能,透過後天練習能越來越卓越,例如:程式設計能力、語言能力......等實質技術 )
(1)後端工程師的工作技能則是五花八門,這時就要依據自己會的程式語言、系統相關知識與技術,去匡列職缺,並觀察該職缺定的條件有哪些,並以此去磨練、加強。
先過濾並找出自己有興趣的職缺,將裡面對面試者的就職條件列下來,評估自己與這份職缺的契合度,超過60%就可以考慮,並針對自己還未有自信或符合的項目加強練習。
通常對於後端工程師會有技術面試,一關到三關不等(筆試手寫考卷、線上程式解題考試、現場白板題解題),依據各家公司要求不同,會有不同的關卡與考試範圍。
首先可以在網上搜尋是否有該公司相關職缺的分享,並對於找的職缺的程式語言非常熟悉,做密集的訓練,至少每一題選出答案或找出癥結的時間在2分鐘內;若需要考作業系統、計算機組織、演算法,也必須花時間精讀比較常考的單元概念,或是做解題訓練。
(2) 個人作法:例如,我會Java、Python、JavaScript、Php、HTML、CSS與相關的框架、平台、DB(Spring、SpringBoots、Tomcat、JQuery、MYSQL、SQL Server Management、Oracle Developer),但是專精於Java(從基本語法、相關應用開發到實務常用框架都熟悉),其他語言是有涉獵,但是只會做出小作品,要作為職務還須熟悉應用開發與實務框架等,就會優先尋找Java工程師職缺。
對於Oracle DB有相關操作經驗,但是更熟悉MSSQL,理想職缺中常用前者,我就會加緊練習相關操作指令。或是如果會敏捷開發、懂AWS是加分條件,我也會花時間釐清概念,並做點技術練習。
技術面試的部分,我做了Java基礎語法的考題練習(一些就職平台上也有程式語言測試),並練習LeetCode(資料結構與演算法應用解題)。剛好面試的公司沒有考作業系統和計算機組織,但據我所知,比較大的臺商公司,會考這兩者,小夥伴們可以作為參考。
*************************************
找到後端工程師工作的其他準備:
除了軟、硬實力外,還有兩項也非常重要──
1. GitHub作品集:
無論是何種電腦工程師,會使用Git版本控制,知道commit、push、pull、merge、團隊使用規矩(先pull後push,在commit欄輸入fix、feat、perf、test、revert等,做精簡說明後再commit),並把自己得意的作品放在GitHub上,是至關重要的事。
沒有這一項,可能面試的機會會較少。
2.參與程式競賽、進修證明,或是程式證照:
這一項算是加分項目,沒有沒關係,但是有相關的事實可以佐證,就能為自己爭取到更多進入面試官考量的機會!
在不認識所有面試者的前提下,除了技術考試、學經歷,有具體的程式競賽經驗(證明書、作品、獲得獎項)、進修證明,或是國際程式證照,能客觀地表示自己有可以量化的程式撰寫能力。
若技術考試分數差不多,學經歷也差不多,作品集和這一項就會是最有力的錄取利器!
*面試官考量錄取後端工程師的優先順序:
1. 技術考試分數(通常擺在第一關,若沒有通過,也不會進入第二關、第三關面試),或是面試白板題解題表現。
2. 工作經歷、作品集、程式競賽經驗、畢業專題/論文,以及個人面試中展現的特質與表現。
3. 國際程式證照、進修課程經驗、學歷。
*************************************
後端工程師工作中會遇到的情形:
1. 有小夥伴詢問,後端工程師是否常接觸到系統端,與是否需要很熟悉Linux?
對於這兩個問題回覆是肯定的喔,後端工程師的日常職務範圍跟系統端密切相連,若是開發網站或系統,會處理到資料庫管理與串接程式、系統與網站上架前的環境建置,也必須熟悉主機、網路、資安的一些概念, 才能處理網站突發的異常情形,或是駭客攻擊。
Linux指令則是看公司使用的系統,但是會使用常用的Linux指令,對於管理虛擬主機、Oracle資料庫、Docker容器,非常有幫助,建議有空的話可以熟悉一下。
2. 從以往和各種工程師合作、自己成為工程師後的經驗來看:
後端工程師的職務範圍相對沾得廣,要會一點前端程式(JavaScript、Php)與標籤語言及資料交換格式(HTML、CSS、XML、Json、Ajax),有RWD概念,才能很好地團隊合作,並要有系統、網管相關概念,跟後端程式技術,因此建議想往後端走的小夥伴們如果有時間這些都可以涉獵,不需要專精,但要會基礎,或是有相關概念。
因為若不在分工精細的大公司,基本上後端工程師跟全端工程師就是全包處理網管、駭客攻擊與系統異常情形。前端工程師有時有前後串接的問題也會請問後端工程師,因此不能不會。(據業界前輩建議,能比較弱的是CSS)
(不喜歡硬體端的小夥伴可以三思,走前端、資料分析或走App~~XD)
*************************************
P.s:
後端工程師最需要的就是積極耐心找錯、研究新出來技術的熱情,與寫出簡潔程式碼的個人堅持,至於知識與技術都是做中學、學中做,因此如果對後端程式有熱情,知識和技能都是可以培養的!
‧另外,推薦《無瑕的程式碼》、《高手思維》,對於成為工程師是經典寶典。(許多業界大老與前輩都很推薦這兩本書)
*************************************
以上~~~
若有需要修正之處請不吝指教!
也歡迎跟我交流心得,或是詢問、討論喔~
*************************************
💦相關ig: ITBroccoli讀書帳