Skip to Content

【入行系列】Programmer 分多少種? (2022/23 年版)

【入行系列】Programmer 分多少種? (2022/23 年版)
Alex Lau
2022-11-22

【入行系列】Programmer 分多少種?

心思思想入行成為 Programmer/IT 業界的你,其中一個一定會問的問題,就是到底 Programmer 的月薪是如何!不過打開一個又一個的薪酬報告,Programmer 的職稱好像十分「多樣化」,很多人以為就是 Programmer 嘛!但偏偏又有什麼 Analyst Programmer,又聽聞有一個叫 System Analyst,沒有 Programmer 這個字是否代表不用寫 Program 呢?!

作為只打算入行、對 IT 行業未有充足了解的你,看著這堆名字時必定充滿著問號,所以今次就讓我們逐一為大家解釋每個職位相同和不同之處,讓你更清楚了這個行業之餘,亦讓你大概了解自己的前途可以怎樣選擇!

JobsDB 2022 年薪酬表

從這個表,除了 Programmer 外,你能看得出哪些其實都是 Programmer 的職位嗎?我們會在文章最尾揭曉答案!

先認識一下這幾個同義詞:Programmer, Software Engineer, Developer

一般人第一刻想到的當然 Programmer 就是 Programmer 啊,殊不知其實有另外兩個職位跟 Programmer 大同小異,它們就是 Software EngineerDeveloper。這三個職位在 IT 行業中,其實都算是同義詞,都是指寫程式的人,但是在某些國家和公司,這三個詞的用法會有些許的不同,例如在美國的大企業,Software Engineer 中 Engineer 的字眼的確指明職位的內容會比較偏向於工程師的角色,多數較賺錢的職位都稱為 Software Engineer,而 Programmer 和 Developer 則是較偏向於軟體開發者的角色。

你亦可能曾看過某些 blog post 長篇大論去分辨這三個職位的差別,但筆者多年的經驗,真正會仔細分辨這三個崗位公司其實真的非常非常少,畢竟都是聘請寫程式的同事,所需要的技能都是一樣,箇中分別是在公司的期望、個人的心態、解決問題的方式等等略有不同,難以一概而論,若然單單憑著職位就去判斷工作內容,恐怕偏差甚多!

所以,如果你是一個新手,真的不用太在意這三個職位的差別,而招聘廣告中就單單寫著 Programmer, Software Engineer 或 Developer 的,多數都是 Junior 職位,你的入行目標就放在這三個職位的工作就可以了!

若然你是打算在香港轉行為 Programmer,更加不用分得這麼細!因為在香港的 IT 行業,對於這三個職位的用法,其實都是一樣的,而且會使用 "Software Engineer" 這個名銜的公司也不是多,所以連 JobsDB 的 Salary Report 也沒有這個位置出現呢。

工作的分別:Mobile App, Cloud, ML, Web, Frontend, Backend, Full-stack, DevOps

當我們理解到有以上三個同義詞,再看一看那些薪酬表,是不是突然發現這些表都有不少重覆的職位呢?但是,在一些職位前邊,偶然會看到 "Frontend Backend Full-stack" 這些字眼,其實這些就是說明實際寫 Programming 的平台或焦點,例如 Mobile App Developer 就顧名思義是寫手機程式的 Programmer,Cloud Developer 就是在雲端服務上作開發,ML Developer 其實是指 Machine Learning,專門作人工智能開發相關的工作,但其他字眼卻不易理解!那就讓筆者在這裡一一解釋。

Web/Frontend Developer

先來看看 Web/Frontend Developer,這個職位比較易明,他的工作內容就是寫網頁的程式,而且是網頁的前端 (Frontend),也就是你在瀏覽網頁時看到的畫面、流程、外觀,例如 Facebook 的畫面,你可以點擊畫面上的按鈕,或者按下 Like 之後的動畫,這些都是前端的工作。以前的前端工作比較容易,所以薪酬較低,但近年的網頁應用程式越來越複雜(例如 Canva, Figma 等等都是網頁程式啊!),所以 Frontend Developer 的要求和薪酬都有上升不少。

Backend Developer

Backend Developer 就開始難懂一點,後端 (Backend) 其實是你在瀏覽網頁時看不到的部分,例如你在 Facebook 上按下 Like 按鈕,這個動作會傳送到 Facebook 的伺服器,然後伺服器會在資料庫中更新你的 Like 狀態;又例如你訂閱的 Netflix,要怎麼每個月從你的信用卡收費,收費不了時又要通知你要更新信用卡資料,還要封鎖你的帳戶,這些通通都是 Backend Developer 的工作。一般而言後端的內容會比較複雜,一來大部份都是看不見的東西,新手入門會較難,而且需要處理的資料量通常較多,工作要求上對邏輯思維和解難能力都較高,所以薪酬上也普遍高一點。不過,正如上段所說,前端 (Frontend) 的工作內容亦日漸複雜,兩者的差距其實越來越少,甚至有些 Frontend Developer 會更值錢。

Full-stack Developer

了解 Frontend 和 Backend,有一個看似最型的職位,就是 Full-stack Developer (全端開發者)!就最簡單而言,Full-stack Developer 的工作就是同時包括 Frontend 和 Backend,而香港普遍公司亦是以這個想法來定義 Full-stack Developer。

但是,這個職位的定義其實很模糊,有些公司可能其實沒有那麼多預算分別聘請 Frontend 和 Backend Developer,又或者 Project 的規模沒有需要那麼多人手,所以便定出 Full-stack Developer 的職位,希望一兩個同事便能完成整個 Project。但隨著科技日新月異,挑戰越來越多,一個 Full-stack Developer 未必單純就把 Frontend Backend 兩者結合那麼簡單,還需要配合很多其他工作內容,並不是單靠 Full-stack Developer 就能完成 Project (下文還會繼續介紹更多職位!)。

筆者常常跟本校的畢業生笑說,如果剛剛畢業便拿到一個 Full-stack Developer 的職位,恐怕工作的複雜程度也不會太艱深,而兩方面都只是淺嘗的話,學習得到的未必有如單單 Frontend 或 Backend 的那麼多。至於人工呢?其實入門級的 Full-stack Developer 和其他職位都相差不大,若然希望入行的話,不用太執著一定要作 Full-stack。

DevOps Engineer

哈!最後 DevOps 這個字是其中一項最難讓新手明白的一個職位,一來這是近十多年才興起的職位,二來這個職位的工作內容並不是一般大眾看得見的東西。

DevOps 的全寫是 Software Development (Dev) + IT Operations (Ops),聽起來也仍然一頭霧水。簡單而言,在軟件開發過程中,都會出現一些重重覆覆的動作,例如要把編寫好、更新好的程式放到網絡上,或者是每次完成開發後,總是先測試才公開使用,這些重覆工作既耗時又會有人為錯誤,於是 DevOps Engineer 這個角色就是把這些重覆的工作自動化,好讓其他 Developers 在工作的時候更順暢,減省他們作重覆事情和減少人為出錯的機會,某些公司的 DevOps 更要制定公司的開發文化,在一些具規模的公司確實是不可或缺、舉足輕重的部門!

由於這個職位對工作知識、軟技巧等都有十分要求,所以一般來說,DevOps Engineer 都是有一定經驗的工程師,或者是有一定經驗的工程師想要轉職的人,才會選擇這個職位,所以人工普遍仍較高。當然幸運的時候也會見到 Junior DevOps Engineer 的招聘,若然有興趣的話,必定要把握機會!

人向高處望:Analyst Programmer, System Analyst

不知大家看了那麼多薪酬報告,有沒有發現,在香港很少見到 Senior Mobile Programmer 或者 Backend Lead Developer,難道在香港就沒有升職的機會嗎?其實不是!在業界之中,當 Programmer 要升職,很多時候會按以下的路線:

Programmer → Analyst Programmer (AP) → System Analyst (SA)

有時候聽到我們說的術語例如 AP 或 SA 就是指這些職位,從名字之中可以看到,隨著 Programmer 的升職,工作內容除了大家可預期的「寫 Program」之外,還漸漸包括了 "Analyst" 的成份,要分析 Project 的要求和佈局,而再升職更要從整個 "System" 之下去分析。

那為何不直接稱呼 Senior Programmer 就罷了啊?其實以上名稱都是因為香港政府定下的薪級表所產生出來的名字,在外國會較少會見到 "Analyst Programmer" 這個稱呼,而且有些公司亦不是按著上方的資深程度去招聘,有些公司都會聘請 Fresh Graduate 成為 System Analyst,但工作上就的確是要做分析的工作,編寫程式的時間就少一些。

作為新手的你,看到這裡都必定十分混亂!所以簡單起見,你可以按以下準則來判斷人工的水平:

  • 0 年經驗:就是 Programmer
  • 1-2 年經驗:升職到 Analyst Programmer
  • 3-4 年經驗:升職到 Senior Analyst Programmer
  • 5-7 年經驗:升職到 System Analyst
  • 8-10 年經驗:升職到 Senior System Analyst

當然,以上的升職樹還要看你的職涯之中所涉獵的工作崗位和 Project 難易度,在你的職涯中曾接觸過越具挑戰性、越大規模、越複雜的 Project,就能夠更顯得出你的薪價!

答案揭曉

最後,再看一次那個 JobsDB 薪酬報告表,你能看得出你將來的仕途發展嗎?都符合你的人生目標嗎?希望這篇文章能夠讓你有更清晰的資訊,在你的職涯之中,能夠選擇適合自己的職位,並且能夠在未來的工作中,有更多的成長空間!

答案

屬於 Programmer 相關的職位:

  • Developer: $28,000
  • Programmer: $28,000
  • Analyst Programmer: $33,000
  • System Analyst: $41,000
  • Senior System Analyst: $55,000
  • Project Manager: $52,000 (有些 Programmer 會中途轉到這個職位,人工不一定會高一點!)
  • IT Manager: $58,000 (有些 Programmer 升到一些階段不寫 Program 了)
  • IT Director: $78,000 (到最後公司的 IT 都歸你管了!)

Disclaimer

最後一個小彩蛋和申報一下,本篇文章部份內文由 GitHub Copilot 的人工智能協作完成,報讀 Tecky 的全日制課程可以免費獲得 GitHub Copilot 免費使用權一年,詳情請參考 Tecky 的課程啊!

Comments

Read More

【入行指南】我應該學習哪種 Programming Language?

【入行指南】我應該學習哪種 Programming Language?

【入行指南】我應該學習哪種 Programming Language?
Alex Lau
2022-08-16

不知不覺間,開辦編程課程已經近五年了,親身培訓及提攜投身科技界的畢業生都超過 500 人,回想起每一個同學在最初學習階段,對一些常見的問題都一頭霧水,同事建議我寫幾篇關於新手入門的文章,讓有意投身業界的朋友先找到一個正確方向。


【入行系列】免費資源學習編程和入行成為 Programmer? (2022 更新)

【入行系列】免費資源學習編程和入行成為 Programmer? (2022 更新)

【入行系列】免費資源學習編程和入行成為 Programmer? (2022 更新)
Alex Lau
2022-08-19

承上篇,提到開辦編程課程已經近五年了,同事建議我集合過往的經驗,寫幾篇關於新手入門的文章,讓有意投身業界的朋友先找到一個正確方向。這篇緊接著上一篇說明不同語言的分別,介紹一下不同語言的入門方法。


Request Syllabus
Please check your email after submissions.
hello@tecky.iot.me/TeckyAcademy
+852 9725 6400+44 07570 549084+1 (647) 556-3084
Caring Company 2019-2022
TQUK Approved Centre
aws_partner
Reimagine Education Challenge Award
© 2022 Tecky Academy Limited