不論是大公司還是start up ,金融業還是零售業,每間公司也需要軟件工程師(Software Engineer)。究竟他們是何方神聖?入行容易嗎?晉升的階梯又難行嗎?小編請來一位軟件工程師Shummy來跟大家分享,逐步了解軟件工程師的入門之路。他在5年前畢業於城市大學電腦科學系,現職零售公司軟件工程師。軟件工程師的工作原來分為三大基本類別,而寫Code不是日常,設計工作也少不了。入行要求除了必要的學歷,更重要的是融匯貫通軟件工程的概念。
軟件工程需要為軟件進行研究、設計和開發,亦要編寫和測試編碼,運用編碼知識使軟件能正常運行。而當中的工作細分了:前端(Frontend)、後端(Backend)和全端(Full Stack )的軟件工程。Frontend的工作主要負責編製使用者看到的界面(user interface),需要考慮使用者的體驗,編製出一個順暢的介面;
Backend就負責後台工作,即是使用者看不到的地方,透過編寫指令去讓伺服器作出回應,除了要coding還要建設軟件的資料庫,需要具備批判性思考和懂得分析;而Full Stack 就是由0至100由你負責,綜合了Frontend和Backend的工作。
Shummy算是公司的全端軟件工程師,但他笑說自己其實不是想像中全能:「只是因為我在細公司工作,所以要一腳踢,就稱為Full Stack,有些公司甚至不會分前端後端,統一叫做Programmer。特別是在香港,IT的發展相比起外國仍是比較緩慢,所以Software Engineer和Programmer的工作內容相若,只是不同公司有不同叫法,行內人都知道大家是coder。若真的要說出兩者的分別,就是Software Engineer要兼顧軟件的前期設計和開發,Programmer就較專注寫code。」
Shummy分享在香港想入行的話,學歷有一定的要求:「最好修讀有關電腦科學、電腦工程或資訊系統的學位課程或高級文憑。香港與外國很不同,外國有很多start-up,Software Engineer供不應求,所以即使你只參加過bootcamp,入行也不難,但在香港就行不通。」白紙一張怕無人請,求職期間就要自學:「剛剛畢業是沒有工作經驗,但你也可以透過自學寫code來豐富自己的CV,學多幾個程式語言和了解IT的最新動態。Youtube有很多寫code的教學片,你也可以上Udemy或Coursera,參加不同的學習課程,積極備戰。」
在求職廣告中,公司會在工作要求中列出一連串的程式語言(programme language),是否代表學懂愈多語言就愈容易獲聘?Shummy就搖頭說不:「即使你只懂得一兩個語言也不是太大問題。很多language也是大同小異,只是寫法不一樣,你能理解背後的概念才是最重要。最常用的concept例如是OOP和MVC。OOP(Object-oriented programming)是指將程式內的東西變成以物件的方式去呈現;而MVC(Model View Controller)是一個design pattern,將應用程式分成Model、View、Controller三層,透過MVC可令你編寫的程式看起來更清晰。當然見工時你要有更詳細的解說。」在面試時清楚表達你對編碼概念的理解,才能顯示你的實力。
▪ 工程系有咩出路?3名畢業生踩界金融、設計、寫Code更滿足
▪ 免費考車牌、讀大學、學寫code?各大網上平台助你自我增值或轉型
Shummy分享他每日的工作有三分一時間也要開會:「一個Project的開始,首先你要知道公司的要求。例如公司希望在網站上加一個購物的功能,它期望界面的feature有什麼?若果要記錄使用者的購買行為,背後的database如何處理?每個細節也要傾清楚。」開完會就可各自開工,除了編寫,還要debug、retest:「不停debug再試,直至軟件能正常運作。寫code也不是盲目背書,要考慮當中的testability、readability和安全性問題,還有code review,以提高編碼的質素。」Shummy笑說很多時公司或客人都不太理會你的code寫成怎樣,他們着重成果,最緊要成品能正常運作。
In House是指在公司內部的IT部門,Vendor就是一間專責為其他公司提供IT solution的公司,Shummy坦言在in house工作比起在vendor輕鬆:「做In house要用到的技術不會太大突破,而且好多時code base較舊,IT只是公司的一個小小部門,壓力不太大。做Vendor超辛苦的!但好多人都說後生仔要去Vendor搏殺幾年,因為在Vendor工作會用到較多知識,你要以不同技術處理不同客人的project。但同時客人亦會要求多多,好聽就當成學習機會,實情是日日要OT。」但他也承認吃得苦自然有回報,在vendor轉出來,叫價也可叫高一點,因為行內人知你有豐富實戰經驗。
不論是In house還是Vendor,因為社會對IT人才的需求愈來愈大,業內人士流動性高,轉工時即使職級不變,人工也會增加。Shummy同意IT入行比其他行業的起薪點高:「初入行的起薪點大約1.8萬至2萬,當你儲夠四至五年經驗,就可試升資深軟件工程師,人工有三至五萬,而能升到上Project Manager也有六七萬。」
▪ 熱血手機App開發員:「起步時,我對寫code完全零好感。」
▪ 前景可觀!資訊安全工程師IT Security Engineer工作做啲咩?入行必備咩條件?
不要以為有足夠的年資就可上位,入行時要自學,即使做了十幾年,想升職也要不停進修:「十年前你要在公司放一大個server;現在個個也用Cloud Computing了。IT行業比其他行業的資訊來得快走得快,你不可能做六七年也只是懂得寫一兩種code,可能你今日學了新的技能,過幾日這個技能就已過時,但其他行業較少出現這個情況。」除了coding,知識的領域也要夠深和夠廣:「最好要對System Analysis和Cloud Infrastructure等的其他範疇有一定認識,現在不少人也會修讀AWS(Amazon Web Services) ,擁有與雲端相關的學識絕對會加分。」
擁有紮實的知識,Shummy認為更要有軟實力才可幫助你成為管理層:「你要有良好的溝通技巧,一個Project不只是由你一人負責,好多時寫code前你要寫design document,要花時間與不同人討論設計問題,溝通很重要。在in-house工作,你要與User同事溝通;而做vendor就要不停與BA周旋。當有一定的年資,就可以嘗試帶領新人,在一個project中擔當領導的角色,分配工作,訓練他人同時訓練自己的領導才能,為將來成為Project Manager鋪路。」
IT行業在世界各地的發展也愈來愈蓬勃,可算是現今的另一類鐵飯碗,對軟件工程師有進一步的了解後,不知道你會否有興趣入行分一杯羹呢?
圖片來源:Freepick.com
此文章由原作者及Jobsdb HK撰寫/編輯。如欲刊登於其他網站或刊物,請電郵至[email protected]與我們聯絡。如有發現侵犯版權,原作者及Jobsdb保留採取法律行動的權利。