【明報專訊】「軟件設計師,某程度上就是要學會如何跟電腦『溝通』。」 「掌舖」聯合創辦人兼執行長吳家嘉Eric在訪問中展示了一個滿是程式碼的頁面,行外人看來只是密麻麻的數字和文字,在軟件設計師眼中,卻是跟電腦溝通的「語言」。
工作不斷重複 除錯挑戰大
「(一般網頁設計)先有設計師設計好介面的外觀,再由軟件設計師(將不同介面)變成可以運行的網頁。初級軟件設計師會獲分配設計(網頁)其中一部分,他不會知道網頁的全貌。完成各個部件後,交由資深的軟件設計師整合,看看(網頁)能否順利運行。」Eric以社交平台facebook為例,說明網頁運行的原理,「你在facebook搜尋『貓』,手機軟件程式就會傳輸一堆程式碼到伺服器,然後伺服器會把搜尋結果——可能是圖片、文字、影片,變成指令碼傳送到手機,手機軟件再轉換成圖文。而編寫這套手機軟件程式和伺服器都能讀懂的『語言』(程式碼),就是軟件設計師的工作」。
軟件設計師的工作重複性高,但當中不乏挑戰,如「debug」(除錯、修正漏洞)過程就常為軟件設計師帶來難題。Eric說有時完成編程項目,系統顯示「無法運作」,通常有兩個原因,「一是輸入時打錯了程式碼,這時需要從頭檢查所有程式碼;不過(設計師)很難發現自己的錯誤,通常會以兩人為一隊,互相做『peer review』,互相檢查對方寫的程式碼。二是整個程式碼的設計出錯,有邏輯漏洞,那就要花點時間debug」。他說,雖然一個頁面的程式碼動輒成千上萬,但其實不少是「現成」的API(application programming interface 應用程式介面),即既定的編程設定,軟件設計師通常只需把不同的程式碼組合,「有時只是做copy and paste的動作」。
加入初創公司成趨勢
Eric在香港中文大學念計算機科學,畢業後加入雅虎香港擔任軟件設計師;2008年離開工作了8年的崗位,「往外闖」創立軟件設計公司,「第一次的創業經歷並不成功,直至2011年才成立了自己的初創公司,主要業務是替手機應用程式編程。『掌舖』則是我第二間初創公司」。Eric認為,加入初創公司是編程行業的新趨勢,雖然薪酬、福利不及大公司,但工作自由度較高;而隨茈肮◇民芧q子化,愈來愈多企業需要借助網絡來營銷,對軟件設計師的需求也不斷增加。
不少人會開設「IG shop」,在社交平台上售賣產品。Eric最滿意的一項設計,就是把「掌舖」的頁面跟Instagram連結,「簡便、快捷,這是我們設計程式時最希望達到的效果。像facebook、Instagram這些大公司有自己一套API,我便從他們的『字典』(程式碼數據庫)揀出適合的程式碼,放進自己的軟件編程」。
要有準備「對code多過對人」
「其實不一定要讀programming(軟件編程)才能入行,我見過許多念相關學系的大學畢業生,實際上並不懂得編寫程式,只會紙上談兵。因為許多人把(資訊科技)相關的課程視為『水泡科』,入讀的學生並非對這行感興趣。」Eric建議,若同學將來有意入行,可嘗試自行編寫程式,見工時向僱主展示自己的作品,比一紙學歷更有說服力。「不過大家也要有心理準備,畢竟這行是『對code多過對人』,例如我們公司的上班時間是『朝九晚六』,即是連續七八小時都在寫code。」
Eric理解並非每人都熱中編寫程式,所以不少軟件設計師累積一定年資後,會轉職成為項目經理,負責與客戶溝通,這也是香港編程行業的發展趨勢,「其實也是好事,因為有編程經驗的人會知道客戶的要求能否實行,在第一階段(與客戶溝通)就能商議出較『貼地』的方案,避免到了軟件設計的部分時,才回覆客戶方案不可行」。不過在外國,例如美國矽谷等重視科技發展的地區,大部分軟件設計師皆選擇繼續編寫程式,他形容一些「神級」的軟件設計師,不但編程準確、快速,甚至能夠發明一套新的編程語言,這也是他的事業目標。
◆部分相關課程
Eric畢業於中大計算機科學(現為工程學其中一科主修科目,學生可於二年級主修此科),以下為部分相關的課程:(見表)
■個人裝備圖(圖)
職業技能值(圖)
晉升階梯(圖)
文:韓祺疇
圖:蘇智鑫
[明路—生涯規劃 第49期]