All posts by hevangel

搵電腦工,見工面試攻略

每年的這個時候,又是各大學準畢業生開始搵工的季節。身作為一個前線中層,面試實在是一份「苦差」,因為見的人多,請得落手的人少,難聽點說大部份面試都是浪費時間。最慘是面試是額外工作,在不影響手上企畫進度的前提下,要擠時間出來應酬小朋友。雖說口頭上說不喜歡面試,但請人可是公司發展的重要一環,任憑你如何天材如何勤力,也不可能一個人完成所有事,總要建立一隊可靠的團隊。挑選合適隊友的這個工作,絕不能假手於人,若果你不親自面試把關,HR求其空降個癈人給你,到時上面數人頭當你夠人用,實際能不能用則有苦自已知。要知道在一間凡事講制度的大公司,除非整間公司不景氣要大裁員,要把癈人員工送走並不容易,所以最初請對人十分重要。

以前考會考一定要讀marking-scheme,新仔畢業出來面試見工,一定要理解顧主想請什麼員工,才能夠在眾多面試者中突圍而出。請新人與請有經驗的高級職位很不同,電腦工這一行的行頭說大不大,說細不細,總會很神奇地搭上搭認識曾共事的人,做唔做到野在行內有口碑可尋,見工主要是看與團隊夾不夾得來。請新人則好像發掘一塊美玉,雖然每個畢業生看起來都是一塊石頭,但有沒有潛能打磨成器,在面試見工中還是有迹可尋。說到底電腦工請人,並不是要購買他的勞力時間,而是需要他腦袋裏的知識,看看他有沒有能力解決難題。

見工面試簡單可以分為三部份,最先是從眾多的履歷挑選出合適的應徵者,然後通過簡短一小時的電話面試,最後請到公司作一整天的密集式轟炸面試。以前經濟好景公司水浸時,會出機票包食宿飛應徵者來面試,不過現在要Google,Facebook這種大把錢的公司才有的待遇。揀履歷第一關通常有HR代勞,最起碼把九唔搭八的應徵者箍走,然後看看有多少時間可以見多少人,按履歷優劣排見工的先後次序。我挑選履歷的方針基本上不太注重學業成績,依我經驗只要成績不太差,工作能力其實分別不大,反而高分低能倒見過不少。當然有時也會有高分天材的意外驚喜,所以基本上超高分的一定會見,但這之後高分低分與請不請完全沒有關係,高分的唯一作用不過是幫你拿到面試的入場卷。看履歷除了看分數看修讀過什麼課外,最重要是看課餘活動,電腦人是有嗅到同類味道的直覺。上莊搞乜會物會的領袖活動,雖不會減分但亦不會加分,最加分是參加技術型的學會,如機械人比賽,太陽車比賽等等,就算只係自已寫下Apps,架建網站,玩下開源軟件等都會加分。最重要是對電腦和科技有與趣,有能力並喜歡學習新事物,可以丟個難問給他自已攪掂搵答案。

履歷可以寫到天下無敵,電話面試的最重要功用,便是找出履歷背後的真相,杜絕混吉的騙徒。轟炸式面試對公司的成本非高,要十幾個工程司放下手頭上的工作,每個人流輪接客陪他一個鐘,加起來的時間成本比飛他過來的機票食宿還貴。電話面試通常不會問太刁鑽的問題,因為答那些問題最好面對面用白板答。電話面試基本上我會順著履歷來發問,讓他自己介紹推銷自己,而這過一關的密訣,就是不要被捉到講大話。在履歷加入一些水份,好能通過HR的關鍵字filter,這點我能同情地理解,但吹水唔抹嘴是電腦人最憎恨的大忌。我試過有應徵者履歷寫他懂linux,我很簡單地問他一句,他用什麼distribution,便完全露出馬腳了。不懂的就直接說不懂好了,誠實地說那些關鍵字只略懂皮毛也不緊要,只要其中一兩樣關鍵字是真材實料,可以滔滔不絕地說你做過什麼project,寫了什麼code,遇到什麼難題,有什麼解決方法,學到什麼體會,這就已經是十分好的賣點了。課外活動固然重要,課本的基礎知識也不能缺少。我會看看應徵者讀過什麼科,隨機地問他課本應該學過的問題。原本只是隨口問問,不問尤自可,有時答案可以令人很震驚,讀EE的可以不懂PN-juction,讀CS的可以不懂pointer,讀通訊的可以連TCP/IP係兩個唔同layer都唔識。我不禁懷疑他們到底有冇返過學,考試點解可以合格,而最神奇是這個情況,同樣在高分與低分的應徵者上出現,再一次證明分數與學識沒有必然關係。

第一次一整天的密整轟炸面試很嚇人,不過見工見多幾次便會覺得不外如是,問來問去都是那些問題,只會越答越容易越輕鬆,反而這是看清楚這個公司適不適合你的最好機會。HR會book一間會議會作面試用,工程師們便每個小時一組來車輪戰式面試。若果電話面試沒有傾談過,基本上前半小時與電話面試大同小異,照著履歷發問去認識應徵者。如果在電話中已談過話,便可以直接進入戲肉,測試他解決難題的能力。我公司比較傳統,不接受Google天馬行空IQ題那一套,多著重問關於技術性的題目。我們有一組常用的題目庫,每個題目也有數種不同的變化,進行面試的工程師都會電郵大家,確保不會重覆問同一條問題。問題本身可以很簡單,例如要應徵者設計一個電路系統,給他一些程式要他除錯,追加一兩個功能等。因為時間所限,問題不會很深,最重要是看應徵者解決問題的思路。很多應徵者最常犯的錯誤,是聽問題聽一半唔聽一半,聽唔明設計要求又問清楚,一頭裁進去寫呀寫走進死胡同,我們在旁邊則一邊忍笑一邊忍著不給提示,看看他要多久才發現自已走了冤枉路。應付這類面試最重要是記著這不是考公開試,不是給你一張試卷然後你做完交卷,如果面試是這樣的話HR也能勝任,不用浪費前線工程師的寶貴時間。答這類難題首先要弄清楚設計的要求是什麼,問題中有什麼不清楚的地方,不妨提出你的假設向發問者求證,明白了問題空間(problem space)的限制,答案很多時自自然然呼之欲出。問對了問題,是成功找到答案的一半。

問完設計難題後,通常都差不多夠鐘,留下點時間給應徵者發問的機會。這時候便是應徵者認識公司的好機會,不要問一些自已可以上Google找到答案的問題,那絕對浪費時間兼會扣分。視乎進來面試工程師的職位高低,從問一定無錯關於企業文化的開放式問題,到來面試部門內的員工架構,到公司技術優勢和競爭力前景的商業問題。見工人揀你,同時也是你揀人,例如你聽到公司的競爭優勢是以低成本搶市場,就要小心考慮來不來這裏上班了,強調低成本的很有可能是血汗工廠。如果應徵者的面試表現滿意,我通常會落力幫公司賣廣告,希望可以招攬這個人材。如果不打算錄用,禮貌上也會給他幾句行貨答案。面試完畢後問那幾個問題,從面試者回答的態度,大約可以推斷這份工有沒有機會。每組人完成面試後,通常不會立即寫報告,以免讓下組人有先入為主的偏見,影響面試的客觀性。只有一種情況例外,便是應徵者實在太癈,在浪費工程師的寶貴時間,見完可以直接喊停叫HR送客。如果能夠整天一路面試,應付完問技術問題的工程師,去到最後部門主管的面試,問一些軟技巧應適性的問題,順便帶應徵者參觀一下公司的設施,便有機會進入排位程序收offer。一整天都在面試人會肚餓,公司理所當然會包午餐,有份面試的工程師會帶應徵者上飯堂,圍著同坐一桌談一些輕鬆的話題。不要少看這餐飯的功用,因為反歧視法例的保障,一些比較私人的問題不能在正式面試時發問,吃飯時談天說地時應徵者自已說出來則沒有問題。這餐飯主要是用來看看應徵者與團隊能不能相處,說說個人的興趣,平時喜歡玩什麼,有什麼特別的經歷,例如去過第三世界做義工之類,基本上大家覺得人畜無害便OK,不過就算是悶蛋一名也不會扣分,反正只是一起工作,又不是要與他過人世。

最後的面試通常是HR負責,老實說我也不清楚他們問什麼,大慨看這期流行那個aptitude test,基本上HR不參與請不請的決定,所以HR面試最輕鬆。HR面試通常是問人工福利待遇等問題的好時間,這些問題問工程師他們也不知道答案。新仔入職一般都有公價,上glassdoor可以查看,大體上公司越賺錢出手越闊綽,除非是非請不可的天材,其實新仔沒有多少講價的籌碼。當見完這一輪所有應徵者後,老細便會叫有份面試的人入去開會。首先箍走表現差的人,只要有兩個人和議,便會叮走這個應徵者,寧可請不夠人,也不要請錯人。接下來便是好像買馬般排位置,每個人都說出自已心水選擇的次序,通常排名不會相差很遠。排好位置之後,看看今次要請多少人,劃一條線然後叫HR出offer,如果有人reject offer,有時候會按排名依次補上,不過更多時間索性把空缺撥入下一輪面試的名額中。

最後祝各位的同學,見工面試大吉,千祈唔好混吉。

What They Don‘t Teach You at Harvard Business School – Mark H. McCormack

平時行過書店,總有一堆「商業實用書」放在當眼位置,書名有如什麼「辨公室手存手冊」,「營銷鐵律」,「創業成功之道」等等。那些書內容通常大同小異,看了一本等於看過所有那類書。這本「哈彿商學院不會教你的事」大既算是那類書的始祖,1984年出版至已三十年,到今天仍然好賣不斷再版,經得起時間的考驗。如何把街頭智慧應用在商場之中,可是恆永不變的人性定律,這類題材長說長有。出來做事這麼多年,書中的道理應該要懂得,讀這本書可以當作溫故知新,有則改之,無則加勉。

這本書的書名聽起好吸引,內容不外乎如何觀人於微,如何留下好印像,談判行銷技巧,辦公室政治運用等大道理。這類書好不好看,全靠作者的功力。作者倒是大有來頭,他本身是律師出身,創辦International Management Group(IMG),這間公司可以說把職業運動推向極度商業化的始作佣者。它是現今運動項目推廣的龍頭公司,旗下擁有眾多運動明星的廣告經理人合約,並且是很多國際大型運動項目背後的搞手。基本上只要與運動有關的廣告或宣傳,它都有本滲一腳撈一浸油水。書中引用不少作者早年創業的例子,用說故事的方法去演譯書中的道理,雖然不免添加了一些水份,但比起其他無名作者紙上談兵的同類書藉,來得有說服力。

想把這本書的內容節錄出來,不過內容實在太過零碎,若果只是將內容以規則形式例出來,便失去了讀這本書的意義了。那些規則看似每條獨立,其實每一條都包含萬變不離其中的心法,就是利用放諸四海皆準的人性心理特點,儘量令事情往有利的方向發展,不要感情用事多做無謂的事情,損害己經到手的利益,在適當的時候開口,在適當的時候收口,管理別人對你的印像等等,說起來很虛無飄渺,不過有多少人能夠做到?又者或換一個角度來說,修為高之人不會在乎逐條規則的應用,因為已經與做人處事方式融會貫通。

量子電腦,下一場電腦革命

說起溫哥華,香港人認為是個風景優美,氣候怡人的理想退休城市,就算沒有親身去過,身邊總會認識親戚朋友舊同學,移民過去那兒安居樂業。可是又有多少人知道,溫哥華很可能是下一波電腦革命的發源地。總部位於溫哥華的D-Wave System,是全世界唯一研發商用量子電腦的公司,九九年開業至今,只賣出了兩台量子電腦。換了是其他start-up,生意這樣少,一早就執笠了。不過此公司的投資者非比尋常,包括CIA和阿瑪遜的創辨人Jeff Bezos,他們十分有耐性,因為量子電腦若果研發成功,將會顛覆整個電腦行業。早兩年Google買了一台量子電腦試用後,近日更高調宣佈自行開發量子電腦,足以證明量子電腦的前景無限。

量子電腦是什麼?聽起來像是科幻小說中才出現的的玩意。當電路的體積越來越細,細到只有納米的大小,在極低溫低的狀態,便會出現量子現像。我們在中學教科書中學過的傳統物理學,連愛因斯坦的物理學,都統統不再適用,踏進量子物理學的領域。量子物理學我也不太懂,不過量子電腦的運作原理,倒也不難明白。傳統電腦的運算單位是零與一,每一個運算位元(bit)只能計算一個數值。量子電腦則利用superposition的原理,量子運算位元(qubit)是零與一外,還可以同時間包括零和一,只有在最後觀測結果時,才會隨機地變成零或一的結果。打個比喻,擲銀幣有公字,公是零,字是一,那superposition可以說成個銀幣在拋起在空中不停打轉的狀態,那個銀幣在跌落地那刻,我們才知道是公或是字。另外量子腦還利用entanglement的原理,讓兩個不同的量子位元連結在一起,在觀測其中一個位元的結果時,另一個位元也會呈現相同的結果。繼續用擲銀幣打比喻,若果半空有兩個銀幣entangle了,其中一個落地開公,另一個銀幣必定也會開公,結果只能是兩個公或兩個字,不可能一個公一個字。擲銀幣公字的機會永遠是各一半,但量子計算的原理,便是利用量子邏輯運算,改變在半空中銀幣會開公或開字的機會率。量子算式便是結合superposition和entaglement的原理,讓量子電腦同時間作大量平衡運算,並把你想要的答案,在觀測結果的時侯,有最高開出的機會率。

目前量子算式主要用來計算傳統電腦一些稱之為P=NP的難題,這類難題的特點,是要找出正確的答案很困難,要動用天文數字的電腦運算能力,但覆核答案是否正確相對地容易。其一個難題便是尋找超大數目的質數因數,要從把兩個超大質數相乘的結果,反轉頭找出原本那個兩個質數,而這個算式基本上是現今所有加密系統的罩門。加密系統的原理就是假定駭客沒有足夠的電腦能力去作暴力破解(brute force attack),在有生之年把所有密碼的可能性撞出來,而量子電腦的平行運算能力,便正正是同時間去撞所有密碼。另一個量子電腦擅長解決的難題,是統稱為旅行的營銷員問題(traveling salesman),用一個比較現實的例子來說明。假你打算去環遊世界,決定遊覽每一個國家的首都,但世上有幾百間航空公司,有數以萬計來往各地首都的航班,機票有平有貴,行程安排可有天文數字的組合,那你如何找出最最最便宜的機票組合呢?當然沒有人會真的這樣環遊世界,但類似的最佳化問題(optimization problem)天天都有,從物流公司安排貨物的運送,到藥廠開發新藥物,天文台預測天氣,人工智能,甚至金融機構的電腦操盤,都能應用最佳化的量子算式,大大提高運算速度和準確性。

說回D-Wave System,當各大學的頂尖量子研究,還只是在弄十幾量子位元的運算,他們的量子電腦便已一口氣五百量子位元,下一代的量子電腦更去到一千量子位元。要知道量子電腦的平衡運算能力,是二乘以量子位元的倍數(2^N),多一量子位元運算能力翻兩倍,多兩量子位元運算能力翻四倍,多三量子位元運算能力翻八倍,是幾何級數的暴升。那D-Wave有什麼秘密武器,讓他們遙遙領先一眾量子研究呢。說穿了可能是世紀大騙局,儘管所有媒體報導都說他們賣量子電腦,事實上他們自己也不知道自己賣的算不算是量子電腦。大學研究著重學術理論,建造量子電腦前,要先弄清楚其中涉及的量子物理學理論。D-Wave則走工程師的捷徑,在完全弄清量子理論之前,單憑一個非常有可能成功的假設,先把量子電腦造出來再說,造了出來才慢慢研究其中的原理。而D-Wave的開發的並不是汎用型量子電腦,而是一種稱之為quantum annealing machine,只能計算最佳化問題的特殊量子電腦。D-Waves的量子電腦最初面世時,因為它們是量子研究界的異端,引來不少學者的質疑,認為他們不可能造出量子電腦。自從Lockheed Martin和Google購入量子電腦,開放給不同科學家作獨立研究檢測,質疑聲音逐漸轉變為肯定和支持,看來D-Wave在那場量子技術的豪賭中押對了注,量子電腦實用化向前邁進一大步。

自Shockley發明半導體至今六十年,三十年前個人電腦才剛剛起步,現在我們每人口袋中都有一台超級電腦。量子電腦理論發明於八十年代初,現今已經過了三十年,三十年後我們會否人手一台量子電腦呢。在外國不少大學,已經開設量子物理和量子電腦的專門學科,準備迎接即將來臨的量子革命,不知道香港的大學,又做好迎接量子時代的準備了未?

希德尼婭的騎士/ 銀河騎士傳 Knights of Sidonia

近年機械人動畫中,機械人的設計多是華麗先決,在畫面中動起來很帥氣,但實物化變成玩具後,很跨張的東一舊西一舊,沒有支架連站立也成問題。「希德尼婭的騎士」最先吸引我之處,是其洗練流線的機械人設計(劇中稱之為衛人),很有八十年代機械人動畫那種寫實風格。早在這套作品動畫化之前,我看見衛人玩具的相片,便覺這故事應該很對我口味。有點後悔當日為什麼沒有把玩具買回來,害我現在要加價預訂年底出的再版。

希德尼婭是一艘宇宙船的名字,地球被外星生物毀滅後,載著最後的人類在太空中漂流的移民船,而騎士當然是指衛人的駕駛員了。這套動畫有很重的絕望感,外星生物不停攻擊移民船,每場保衛戰都背負著全人類的命運,若移民船被擊落便是人類的未日。故事的設定與「超時空要塞」有點相似,不過這個太空方舟的故事卻沉重很多,至少「超時空要塞」的情況還未至於「希德尼婭」那種強烈孤立無援的感覺。希德尼婭的設計更是史無前的簡單,只是小行星中央穿個巨型圓柱體,逃難船那會是花巧的太空戰艦。為配合絕望的主題,劇中的太空服,衛人等,都刻意加上風霜的痕迹,與其他保養良好衣著光鮮的機械人動畫有明顯對比,讓觀眾感受最後的人類五百年漫長的逃亡之旅。

第一季十二集的動畫,只改篇了漫畫頭六卷的內容。減去必需要的戰鬥場面,餘下來的大部份的時間,用來交代背景,人物關係,外星生物真身和胞子的特性,唯一能殺死外星生物武器,二十八枝穎刺的秘密等等。伏線埋了一大堆養大觀眾的胃口,但漫畫版的最新連載還未開始收線,雖然基本概念能理解清楚,知道主角谷風長道並不是普通人,會是終結這場人類存亡之戰的關鍵,但不要抱有短期內看到結局的期望。動畫版與漫畫版相比,最大的好處是動作場面的處理,看漫畫有時不知衛人如何打倒胞子,看動畫時便知道一清二楚了。全片採用電腦動畫繪製,衛人的戰鬥場面當然沒有問題,衛人掌位作遠程飛行的意念更值一讚。不過平常人物的畫面也是用3D轉偽2D合成,人物動作面相有點生硬和不自然。

除了人類打外星怪物的主線外,在細節上的科幻設定十分豐富,充份描寫太空方舟的實況。船上除了有軍隊和平民外,平民中衍生出反戰派,對長年累月對外星怪物的戰爭感到厭倦,他們發展出近乎宗教的心態,認為只要拋棄武器不作抵抗,外星怪物便不會再來襲擊。反戰派雖然著墨不多,但從船長,一般士兵,到主角對他們的不同反應,讓觀眾感到角色更加立體。為解決太空中食物源資短缺的問題,一方面發展出人體光合作用的基因改造技術,裸體曬太陽成為劇中不少點綴笑位的題材。另一方面船上亦安裝有機轉換爐,把所有包括屍體在內的有機物質循環再用,劇中角色談及死亡恐懼時亦不免提起。另外其中一集主角為救被擊落的同伴,讓衛人超出返回極限,結果兩人在太空中漂流多天才獲救,當中的心理和物理限制描寫,已達到正宗科幻小說的水準了。

動畫第二季將於年底播放,真的很讓人引項以待呀,希望第二季可以至少畫到,漫畫中決戰小合眾船的進度。

那夜凌晨,我坐上旺角開往大埔的紅van(電影)

我過看「紅Van」的小說,知道結局最終爛尾。我也看過不少「紅Van」電影版的影評,知道電影有頭無尾,陳果只拍了上半集。明知前面遍地地雷,依然無懼向前走,所以看完電影我沒有失望,因為早已把心態調節好,欣賞一齣港產cult片,不能用平常看故事的心態去評價。

電影的畫面很震撼,平常我們熟識的香港是一座不夜天的城市,不論什麼時間都人多車多。電影中整個香港忽然變成空無一人的死城,只剩下一架紅Van和車上的十七人。電影最成功的地方,就是營造出這十七人,在空城中孤獨無助恐懼的感覺。每一個角色的行動和想法,都帶有你我他的影子。讓觀眾不禁想,若果易地而處,你身在紅Van的世界,你又會做什麼呢。電影中加插原著小說沒有的細節,例如眾人犯私刑處決強姦的一幕,絕對是神來之筆。在法律和警察都消失了的世界,私刑是眾人彰顯公義,還是瘋狂式的復仇,找個出口發洩心底的黑暗。劇中三個老劇骨,肥佬司機林雪,過氣大佬任達華,神婆惠英紅,都有超水準的演出,希望他們在香港電影金像獎中,能夠拿個最佳配角。

可惜電影細節豐富,仍然不足以掩飾主線的單薄。我明白cult片要死人,人體自燃,變喪屍碎開,全身發紫,手腳變泡,各種死法應有盡有,就算死得不明不白,為死而死亦無可厚非。但各人的死狀完全唔協調,到底是什麼古怪病毒,病徵完全沒有共通點。整個故事的最大謎團,紅Van如何去了2018年,全香港的人為什麼消失了,防毒面具人是何方神勝,教觀眾完全摸不著頭腦。雖然不能夠怪責陳果,因為原著也是這麼無厘頭。只是看小說的時候,有作者加插似通不通的旁述,不如電影表達出來那麼直接荒謬可笑。

電影最大的敗筆,是臨完場那幕追車,紅Van決戰裝甲車,陳果自已加上去,完全是畫蛇添足。CG特技太假也算了,始終是小成本製作,不能苛求有荷里活水準。裝甲車的司機是白痴嗎?五台裝甲車對付一付紅Van,竟然全部裝甲車都自爆退場。印像中小說只有一台裝甲車,然後是什麼在追車時,肥佬司機有熟悉道路的優勢,讓裝甲車閃避不及滾下山,這個劇情的展開合理多了。

我估「紅Van」應該沒有下集了,一來陳果自已也說沒有錢拍,二來下集的故事更犯駁,更加不合理的地方。現在這樣把謎團放棄不理,來個開放式的結局,保持獨守空城的絕望感,比要強求真相亂來解釋更好。