睇過 HKTV 導火新聞線嘅朋友,就算唔係做新聞既都應該知道新聞既標題要夠 Juicy 先吸引到讀者,今日我就被一篇報導吸引左。

IT人才荒:課程已過時 削港競爭力
IT人才荒,公司難請人!隨着互聯網普及,各大公司紛紛投放大量資源發展網上業務,IT人成為搶手貨,出現供不應求的情況,當中以電腦程式員及電腦保安員最為搶手。不過,在政府培訓不足下,有電腦保安公司主管大嘆本港IT人才青黃不接,資歷深及操兩文三語的人才難求,要從外地引入專才;會計公司亦指,長期招聘程式員等IT職位,但應徵者質素參差,大多未能附合職位要求。有電腦系大學畢業生坦言,大學課程過時脫節,要靠「自修」惡補。有學者促請政府「臨淵羨魚,不如退而結網」,盡快優化引入專才政策,並考慮以深圳作本港的人才庫,吸納更多IT精英;大專院校亦應檢討課程,配合未來發展,否則在IT人才不足下,勢削弱本港競爭力。

呢篇報導既標題 IT人才荒:課程已過時 削港競爭力,作為一個讀過下 Computer Science 嘅人當然有興趣想睇下究竟個課程有幾「過時」。

睇完段片睇埋段內文,原來得一句。

有電腦系大學畢業生坦言,大學課程過時脫節,要靠「自修」惡補。

從呢一句可以睇得出佢應該係「天生骨格精奇,係百年難得一遇既練武奇才」,只要佢得到本降龍十八掌秘笈,佢必定會橫行天下。至於我絕對唔係呢一類奇才,我需要既係先學好基本功,然後再上網搵秘笈修練。喺我角度,大學既 Programming 課程教嘅絕對唔係奇招怪式,而係最紮實嘅基本功,有咗紮實既基本功,哪怕有招式會學不會?

Programming就喺解決問題

講得Tech 一點,大學主要提升你在 Programming 層面嘅解決問題能力,如何分析問題、如何 Divide & Conquer、如何用利前人既 Algorithm 解決問題、如何設計一個 Time Complexity 最低的方案、如何利用 Design Pattern,然後再加啲 Low Level Programming Course 以及 Math Course 豐富你既大腦,最後你就可以有效地利用Program 解決問題。

所以我覺得大學嘅課程十分全面,但對於嗰啲一黎要想要降龍十八掌秘笈既朋友可能會覺得好過時。假設大學真係教哂你降龍十八掌、倚天切、屠龍斬等等既招式,花足三年時間教你,無基本功既人都唔能夠掌握重點,吹水可能吹到兩咀,一落手做既時候注定露饀。

IT 人才荒?真係因為唔夠人?

言歸正傳,係啲人力資源嗌哂救命話請唔到嘅同時,佢地究竟有無反思過自己用緊幾多錢請人?同埋請多個人係咪真係要請人先可以提高生產力?

我認為搞死香港IT有兩大原因:

1. 忽視提升員工工作效率的機會

有睇過 我個關於應該知道我其中一個座佑銘

工欲善其事 必先利其器

點解我突然咁講?又係時候講下故仔。


我有兩個朋友都係從事 Programmer 工作,兩個都係所謂 IT 大公司度做,有一次大家約出黎吹水,大家都係 IT 人自然會問下大家個工作環境,首當其衝緊係問公司部電腦既Config

Core 2 Dou e5800,  2GB RAM, 17吋 MON

另一位朋友B「我好你少少有 3GB RAM」

呢兩句說話,對於我黎講真係難聽過粗口。

然後我嘩然:「喂,呢個係八、九年前既Config 黎架喎,你點做野呀。」

朋友A: 「係架,開個 IDE 等成兩三分鐘,Complie 一次又等幾分鐘,有時做做下完全郁唔到,又係喺度等。」

朋友B:「所以我地嗰邊啲人多數用 Notepad++ 架。」

朋友A:「我嗰邊都係,有一堆開定左既 Notepad++,百幾個Tab,方便改野」

我:「都岩既,之前聽你地講用緊既 TECH都十年前係幾多人既,咁 八、九幾年前既機,用番十年前既TECH,好合理丫!」

我:「但係而家啲網頁愈黎愈大食,行好多 Javascript,又食 RAM,你都要 Google啲 Library 點用架,你部機點頂呀⋯⋯⋯⋯仲有而家用緊嗰啲 Tools 唔係 Fade Out 緊,係已經 Fade Out 左,做多幾年走唔到架喇喎!」


講真,如果我係老板,我絕對唔會比呢件事發生,一定會想盡方法提升員工嘅Productivity。

假設本身員工唔係冗員,以 10 人 Team 黎計。

每人買一部 Intel i5 4核電腦 8GB RAM廠機行 SSD + 21吋 Mon, 可能講緊 8000蚊有找。主機效能提升接近二十倍,Reponse Time 減少十倍,工作效率保守估計至少提升 30%。行Dual Mon,工作效率再提升 20 %。我請少一個人一年,己經夠付出呢一筆費用。花一兩日重新 Config 好部機,任得你點去演釋條數,新 Config 既呢九個人嘅 Productivity 一定比起舊 Config 既十個人高。

係另一個角度睇,Programmer 坐係公司 8個鐘,有邊個想對住哂八、九前既慢電腦?有 Project 想趕住出既時候都有心無力!如果有一部夠快既主機,有時行緊啲大食 Program 要等測試結果,都可以邊等邊上下網睇野,趕 Project 既時候可以盡情咁做,甚至可以話減低流失率。

加上如果今年請九個人做到你先前預算十個人做既工作,下一年要加呢九個人人工絕對唔係問題。

無錯,香港嘅IT業就係被嗰班,以為請多個人坐係公司就可以提高生產力既人玩死。

(後記:朋友B 已經跳槽去第二間大公司做,聽聞佢條 Team 嘅人好多做左4-5年都唔會跳槽走,佢而家用緊既機係 i5 2400 6GB RAM。)

2. 缺乏培育新人

新人(Fresh Grad)初黎報道,一開始當然就係睇下現有 System 嘅資料,睇下 Documentation,之後就開始有 Task 要寫 Code,好多時新人寫完 Code 自己試完無問題就交比 Senior 測試,Senior 測試後都冇問題就加入 System,去下一個 Task。你睇到呢度,係咪覺得成個 Process 好正常?

好可惜,成個 Process 漏左一個對新人極具重要性既 Code Review (一個 Senior 深入去睇你寫既 Code,然後憑佢嘅經驗指出可以改善嘅地方)。

Programming 就好似作文咁,理論上當行一個 Program 既時候篇文的確係作比電腦睇,但實際上當有人要 Maintain 呢個 Program 嗰陣,篇文就係比人類睇。試想下,一句句子就算文法正確都可以用不同的句子 Pattern 去更有效描述相同嘅事件;Programming 亦同出一轍,新人普遍用直觀的方式去做,所寫出黎嘅 Code 未必係最理想,絕對有改進空間。如果 Senior 只草草了事沒有進行 Code Review,只係測試過冇問題過到骨就算的話。由於寫出黎既 Code 冇運用什麼特別的技巧,做完都學唔到野,新人提升唔到 Programming 的技術之餘,更對往後嘅 Maintenance 添上沉重負擔。

相反,如果有做 Code review,Senior 可以即時糾正新人,新人能夠汲取新技術之餘,以及更快掌握整個 System 的運作。

另外有啲外國好出名有效培育新人嘅方法例如 Pair Programming、Peer review。方法多的是,但有幾多公司會認真培育新人?

對企業的建議

我覺得啲企業唔好一味係度話請唔到人,又話啲人又成日跳槽,又話啲新人未Ready 呢樣嗰樣。

第一步不如諗下你點樣提升你現有既員工既 Productivity,到左樽頸你至再諗請人啦。

第二步參考下外國既IT 公司係點樣培育新人,唔係話比一兩個Task 仔,比多啲時間你自由發揮就叫做「培育」至得架。

唔該你地唔好係度搞爛個市。