如果從第一次踏進資工系教室算起,轉換跑道的路最近將屆一年。每次在作業裡>>或者~時,總會想起在台科大隨班附讀OOP,覺得此生絕不碰bit operation的自己。然而,我最難忘的,還是那個看起來很接地氣、像是住鄉下阿伯的教授。

老師從第一堂課就給我不好的印象。上課時間到,沒見到老師卻來了助教,播完不太正經的預錄影片後,就下課了。往後還有一次,上課前還特別插入隨身碟,給我們看週末爬山去光披八表的照片????最後一個讓我受不了的,是在這低年級的基礎課程裡,老師不斷拋問題,而且是即興演出的模式,想到什麼就問學生,卻從來不給答案。我被這些沒有解答、我也無從解答的問題搞得很煩躁,不知道老師是來解惑的,還是來擾亂我的?

或許所有資工系學生在某個時間點,都將學會在StackOverflow找不到答案後去翻文件吧。對我來說,讓我習慣先去翻文件的,是從第一堂課就把學生踢下保護船的戴老師。他用幾分鐘的時間,像是課外補充般教我們怎麼看Cppreference,儘管當時我們對封裝、繼承、多型一知半解。然後,就再也沒告訴學生如何善用standard library了。我說這明明是門教你怎麼寫C++的課,老師卻總是說你自己去看、自己想辦法,什麼意思?考試還是一樣難,兩次測資沒過就掛蛋。我覺得這教授實在太雷了,忍不住和自己系上教授抱怨一番,甚至跑去旁聽系上開的課。不得不說,自己系上的授課還是最對味,教學架構清晰、節奏行雲流水,絕對是一門人人推薦的「好課」。

後來我發現,老師一副「你們這群菜雞」的表情,不知是嘲笑還是關愛的口氣問的每一個問題,都是OOP的關鍵。激不得的我在一次次戲謔的表情下成長,然後帶著自以為已經離開新手村的神態,再一次被老師的問題嘲諷,無限循環。有時,我也會舉手懷疑他說的對不對,試圖反擊。我開始慢慢喜歡這樣的互動,儘管很難稱之為(我所習慣的)課堂,但不停地被挑戰與質疑的過程,也很有趣、收穫良多。不幸地,我在期末考中敗下陣,因為莫名的「兩次測資沒過就0分」評分標準拿下人生最低期考成績,而老師只是對在期末考前對學生說,「如果被當掉的話就明年再來修吧」。不知為何,我不但不討厭,甚至開始不捨這堂課的結束。

慢慢地,我也發現老師除了愛爬山、跑馬拉松比年輕人都快,智慧不在話下,人生閱歷更樂勝很多海龜派。從如何instantiate一副能玩的撲克牌,講到當兵和流氓同袍玩牌贏錢,不敢跟他們要;從function template講到工地見過的模板工,再講到自立造屋時看施工圖,發現泥作工的工序做反;講到讀資工是多麼有機會翻身的一件事情,只要一台電腦就能創業,不像隔壁重金購入資本的機械產業,還要擔心血本無歸。老師並不是沒有研究,只是志不在此;說到底,像我這樣有幸獲得高教資源的人,也不是他掛心的。他在意的是怎麼身體力行,盡己所能爭取資源給underrepresented一個翻身、站穩一席之地的機會。我的語言能力一直在退化,很難描述老師那些精彩故事,在我後來日子裡如何一再被喚起,在幾個瞬間對我的決定產生影響。

最近寫作業的時候,就會一直想起過去的種種,也開始咀嚼那些上課的點滴,教授想拋開這些技術層面的東西,讓我們去找知識的價值、人生有什麼意思。職涯不也是這樣,充斥著你能力所不能及的問題,好似有關卻有不知如何善用的參考資料,一頭霧水的自己只能摸著石頭過河得到成長,體會箇中滋味。打這些也覺得有點好笑,還在半路上沒有達陣,就開始一直話當年。不過說到底,儘管上岸還會是接下來幾年重要的分水嶺,這年頭已經沒有什麼真正的終點了罷。幾年前「終身學習」是美談,現在每個人儘管找到工作,卻比以往更害怕在沒幾年被年輕人取代。人類多麼可悲,致力於敏捷開發、加速所有事情演進速度,終致讓每個人都過得比以前更努力,才能獲得和以前一樣小的一塊餅,就像Harari書中描繪的農業革命一樣。

以上就是略為牽強地用109-2學期開學滿一週年作為藉口,寫給以後自己看的一篇回顧。

switch

數週前的一個週六,我為了和朋友借書而到他們家,順道去玩電玩、吃火鍋。結果Switch玩到了、火鍋也吃了,書卻忘了借。那天,我們兩個人玩了「超級瑪利歐派對」,這是一款以大富翁為背景的遊戲,集合了許多要合作達成目標的小遊戲,而且充分發揮遙控器「體感」功能,在過程中自然產生很多互動。平常極少購物的我,那天回家沒有多想就買了一台Switch。

從小到大,看著爸爸媽媽早出晚歸,很努力地工作,也靠自己的打拼得到回報。一直以來,我的課業也都保持得不錯,也和很多背景相近的人一樣,習慣著為這些技能精進的事情而努力。那天下午拿著switch的控制桿,一開始我是害怕的:這些電玩對我來說和那些電影、球賽來說都一樣陌生,我覺得我是個很不會打電玩的人,我害怕在電玩裡表現不好,甚至雷到人家。

2020Q3 軟體工程實習面試紀錄

前言

2020過了四分之三,這年面臨自己比較大的轉變:以不相關的科系轉向資工。這一年受到好多人的幫助,做了很多努力,也遇到疫情造成數十年不見的衝擊。因為疫情影響,有一個再次redirect的短暫時間,紀錄一下這段時間做過的事情。

我的2019,上半年在營造現場學習,下半年則是專心準備國考,視為對大學時期自己的一個交代。考完後,曾經歷一段比較迷惘的階段:人生不斷在走「和別人不一樣的路」,卻一再地經過現實洗磨後,發現自己想達成的理想,照這樣下去達不到。決定要唸研究所,想要轉向資管(推甄入學放棄的志願),因為大四被謝主任的BIM課啟發、大五在瑞典修Internation Business後,終於理解管理公司的價值,加上資訊的能力,應該很厲害吧!在資管系的老師們解說與建議下,我似懂非懂地了解資管和資工的差別,以及老師聽完我的經歷後,建議我比較適合讀資工,開始我轉職的路。我打算這幾(5+)年多鑽研技術的部份,工作穩定後再來發展管理能力。11月底下,才發現現在說「資工很競爭」到底是多麼可怕,台大資工考試、國外資工研究所動輒千人報考/申請,更別說相關系組雨後春筍般地飛漲。

很幸運地,從12月開始拼了命地準備,最後美夢成真,獲得美國大學的offer。原本以為這就是故事的happy ending,八月就能飛到美國開學,豈料疫情震動了世界,期待到美國可以和同學、老師建立人脈,到各地遊歷,以及爭取在軟體工程最好的工作機會,如今這些能否實現,都是未知數。去與不去的優缺點旗鼓相當,掙扎許久後,最終還是決定延一個學期出國讀書。

也因此,開始我在還沒站穩就試著要跑的求職歷程了!這一年來,我總是在不怎麼充足的時間下,嘗試不太可能的事情,很大一部分源自於家人給予的鼓勵(慫恿)和支持,包括心理上和物質上。如果沒有他們的堅定的勸進,我可能事情都花七分力來做,躺在家裡很舒服,但一天一天被別人超越。考慮未來想在國外工作三五年,現在找工作的目標是在國外應徵會加分的經歷,因此以跨國公司為主;儘管美國疫情與政局不明朗,還是以明年春季入學為前提,找尋可以接受3~4個月的實習工作。

履歷準備

去年底申請學校時,已經做過履歷,我只有更新現況、將一些比較和學術相關的項目刪減。最開始寫履歷時,得到同學推薦Princeton的履歷撰寫指引(參考這裡),其中包括最基本的不該放照片,怎麼寫學歷、校內外經歷、語句範例都有很好的介紹,讓我大幅修正自己寫履歷的方式。我沒有什麼亮眼的經歷,帶著這份履歷投職缺時,說真的,心驚膽戰。

尋找職缺、參加就業博覽會

職缺管道

我有使用LinkedIn尋找工作,也有在104開放履歷。另外,今年八月中,CakeResume也舉辦了實體的2020 Summer Tech Career Fair,在臉書廣告投很大,我天天都看到。我覺得,104和LinkedIn比較會看到中小企業和新創的職缺資訊,跨國大型公司如Google微軟,或台灣大型公司(其實也是跨國公司)如台積電、華碩會在自己的網站開職缺,即使他們參加就業博覽會,或在CakeResume開職缺,多會link回自己的網站招募系統填資料、收履歷。在公司網站看職缺,可以了解更多資訊,甚至能從職缺分佈猜測team正在做的專案類型。(如:Amazon

2020 Summer Tech Career Fair

如果不算在椰林大道擺攤的就業博覽會(只記得那時沒有人要土木系畢業生QQ),這是我第一次參加Career Fair。據說要帶著自己的履歷和HR聊天,為了這個我去買了一件比較正式的襯衫,而且非常緊張,一度覺得還是不要去算了?

其實到現場就是成功的一半了,拋開害怕失敗的恐懼總會帶你到更好的境界。那天和參與的HR聊天,也了解到有些公司可能只缺前端或後端、想招新人或職場老手;你也可以從聊天中聽出來,小公司或新創在乎你做過什麼什麼案子、會哪個具體的語言、框架,想要找即戰力。我和其中一間新創的HR聊了一下,她發現我會C++,但開發語言都不熟以後,就直言我是還沒有準備好工作。相較之下,大公司即使知道你很菜很新,還是願意評估你的抽象能力,從聊天過程也了解到面試過程,感覺比較貼近leetcode上的題目,大有「你是菜逼八沒關係,但我想知道你的資質值不值得我們培育」的態勢。在此要特別感謝華碩的HR,即使沒有立即適合的缺,還是用很重視我的態度把我拉到一旁1 on 1 talk,給我接下來唸書方向,還有對AI、產業狀況的一些觀點。

另外,透過聊天可以了解到,台灣公司如果不是自己建徵才系統,大多還是透過104徵才,即使最富創造力、變化快速的軟體公司、新創也是如此。很多新創都說,是因為要參加這次的career fair,才使用Cake Resume的職缺平台。聽起來這場就博是Cake Resume想要進軍徵才市場的線下活動,後續會不會帶來徵才管道的變動,讓我們看下去。

結果

我最後透過 Tech Career Fair 獲得趨勢科技Temp (派遣) 的測試工程師實習面試,以及在微軟網站投遞,獲得AI R&D Center實習的面試。

趨勢科技面試

這個team做的是一個可攜式的離線掃毒工具,想要做一個管理界面,除了測試,也會了解整個專案的運作。公司使用Codility平台,在到公司面試前有三道技術題,要在面試前完成,使用Python。我從來沒寫過Python,那週末就在cram,用一個不熟悉的語言寫題目,還好題目本身不是太難,完成了。

到公司面試時,第一關是現場測驗,也是使用Codility平台。然而開始測驗以後才發現,這裡不是考算法的技術題,比較多是想了解你有沒有測試、Linux等相關經驗(我還在測試前問HR如果不會Python能不能在考試過程上網查)。

第二關就是用人單位(做這產品team)的leader和技術人員來面試,最重要的部份。他們先花了一些時間改我表現得不怎麼樣的測驗,但也沒有對測驗結果給feedback。我在這個階段學到很多。一方面,這是我第一次接觸大公司開發專案的人,所以我透過他們的介紹,了解他們公司組織相對扁平,專案數目比我想像的還多,每個開發團隊的組成如何等等。當然,還是能親身體驗最好啦!另一方面,大概因為也沒什麼其他的好問,他們問了很多履歷上的問題,主要是我在履歷上寫的專案經歷。剛起步的我,沒有什麼值得說嘴的成果,有些預計要寫的程式,最後也沒什麼成果。有個瑞典因為興趣來寫的網頁程式,最後因為學期結束沒有繼續做了。面試官問我現在會不會想要把這個專案再拿起來完成,我說因為當時需要這個程式的需求已經不存在了,所以我傾向開始新的專案。最後我請面試官給我整體的面試feedback時,他委婉地說我受到很多限制,所以每個coding專案最後都沒有完成,但總歸來說就是很可惜,沒有一個成果,我估計大概也因為這樣,他也沒辦法多問我什麼。這是我很深刻的挫折:過去我很多事情,都是時間到了就結案、就放手,碰到問題時沒有足夠的動機克服它,理由可以很多:那時候寫程式只是興趣、沒有人可以給我幫助、知識量也不夠。可是結果就是沒有結果,面試一多問兩句就講不出東西,很現實的一問就倒,有跟沒有的差距赤裸裸地呈現在眼前。他也問了我的就學狀況、預計可以做到什麼時候等基本問題。

最後是HR來問問對整個面試流程是否滿意,以及一些行政的細節,例如大概什麼時候會有結果、有沒有在應徵其他公司,還有提問的時間。來面試這個職缺的人次比我想像的還多,他們好像這個職位好像也只開一個缺,所以機會比我想像的還渺茫(是有多低估台灣資工產業的人才數量)。

整個面試過程比我想像的還要漫長、還要耗費精力,加上和面試官對話後,發現自己不足的地方、該改變的態度,那天晚上回家躺在床上動也不想動。但我很感謝這次經驗,很想要謝謝這個team花了快兩個小時在和我聊、試探我的優缺點,刺激我思考、知道自己缺什麼,也修正自己的態度,開始把以前亂做的專案重新拿起來,「做完」才是終點。

微軟AI R&D Center面試

微軟的面試流程比趨勢還多一關,首先有一次視訊的一小時phone interview,之後過了一個多禮拜後,才獲得通知,安排約三小時的on-site interview。然而不管是phone或是on-site,面試都是由約一小時的session組成,每個session都是該team不同的成員與我進行一對一的面試。

先說結論,我非常喜歡微軟面試的安排,每一次的面試都讓我覺得不管最後有沒有上,能走過這一輪太值得了(包括進到漂亮的辦公室)。因為每個面試都是由member各自作面試官,session裡面的內容、順序安排都不太一樣,也可以感受到每個面試官用不同方式試探你的個性、能力。tech interview的同一個題目,都會從簡單的解法開始,如果達成後再漸漸要求降低時間與空間複雜度,同一個問題可以有不同的解法,面試官會根據你的回答調整他問的問題。我覺得這樣開放的問題對雙方都很好,受試者可以有更多空間展現自己多面向的能力以及思考的流程,對僱用者而言,也可以避免受試者可能就剛好刷過這個題目,但其實綜合能力不足的風險。可能因為這是入門職缺,tech的問題都沒有太難,圍繞在array就可以解的範圍,以及各種sorting(重要重要)的複雜度和變化,倒是我太緊張,看到題目的第一瞬間幾乎都答不出來。面試官都會先花一段時間做蠻認真的自我介紹,這也是讓我覺得面試經驗很好的重要的component。

第一個phone interview先進行一段英文自我介紹,接下來約40分鐘都在做tech review的討論。用的是MS的Teams做通訊軟體(後來發現他們的會議室有配置很好的相應硬體),和一個同步的文字編輯器(相當於白板)。開始自我介紹時和最後約五分鐘的時間,面試官都會讓你問問題,了解他也了解公司,我主要想知道team在做什麼、後續面試流程,也問他我最好奇的工作型態與小組如何分工。技術題是給定一個有負有正的已排序整數數列,如何在最短時間獲得已排序的平方後整數數列。

大概隔快兩個禮拜,才收到on-site面試邀請,並且約了再下一個禮拜面試。台北微軟在市政府站的國泰置地廣場,不得不說雖然預期跨國大公司的辦公室會很漂亮,實際到訪時還是很驚豔!科技感的玻璃隔間,配上深色溫暖的地毯、繽紛且形狀多樣的桌椅,整個辦公室很安靜。另外,很多辦公室區域是以台灣原住民族命名的。

on-site也是由三個session組成,前兩個形式跟phone幾乎一樣,包含主要的tech interview和詢問履歷、互相了解的時間,很開心我終於在白板上寫了我第一次的「白板題」!最後一個session是純behavioral,面試官說「我這關很重要的任務是要解答你的疑惑,不可以讓你面試完還是不了解我們在做什麼」,算是氣氛比較輕鬆,但我覺得重要性不亞於tech的關卡。

剛到的時候我真的超級、超級緊張,所以第一題tech沒有答的很好,原本接近答案了,但面試官質問我的方法後我就放棄原本的方法。太緊張之下,我很多時間腦袋是一片空白,或者bubble, insersion, merge, quick, heap sort重複播放,或者一直舉例舉錯。最後讓面試官講出答案,才知道方向對了,但是判斷標準修一下就可以了。還是寫出了code,聊天的過程我也很想知道他怎麼看我的表現、以及發現同個問題他們會設定很多種解答。這題是問給定長度為n+1的整數數列,數字範圍[1..n],必定有(只有)一個數字重複,出現的次數可能不只兩次,找出這個數字。最後希望在O(n)->O(1)空間、O(n^2)->O(nlogn)->O(n)時間複雜度解題。

第二題的面試官把順序倒過來,先花時間了解彼此,才問我技術題。我很喜歡這位面試官,也因為他有趣的故事對他的名字很有印象。他就是從實習做起,最後獲得正職的。他也問了我在瑞典交換的經驗,我很開心能和他分享我人生最快樂的時光,還有我拿棧板做沙發的故事。我想他在問我修演算法時最有興趣的主題時,就是在implicitly讓我選自己擅長的類型。題目是給定二維地圖邊界、起終點和走法限制,算出所有可能的走法。這題我就寫得比較順,加上debug的時間,還有在時間內完成,是個開心的session。

最後的behavioral,和面試官聊得很很開心。我對他們都用Surface Notebook印象深刻,也了解台灣微軟做了哪些有趣的事情、美國總部和其他據點的關係、面試官覺得管理階層在分配專案時的考量為何、也更感受到微軟正在轉型。這些對公司的認識,讓我對微軟的認識更具體,也增加我對這間公司的評價。至於面試官這時怎麼評價我,我也很想知道!希望以後可以坐上那面試官的位子,感受一下。

心得

從兩家大公司非常花心力和時間的面試流程,可以看出他們雖然說是找實習生/派遣職位,事實上可能是在找能長期合作的潛在人才。一方面他們願意給我這種什麼都不懂的人機會,但一方面也代表他們在找正式人力時,有一定比例的缺是透過這種漫長的觀察篩選過程,如果在工作過程中團隊發現你不是那麼適合,時間到了就會找尋另外的人才填補。即使你好像有點能力,還是要經歷一段充滿不確定性的「被觀察期」,努力表現爭取上岸的機會。

從面試的過程,也感受到資訊業真的是技術人力密集的產業,公司會多麼重視好人才、培育,以及適性的重要性。我想這很直接地跟公司的獲利能力有關,只有有錢的老闆才說得出「人才是公司最重視的資本」、「我們把員工視為與公司一同成長的夥伴」這種也許有點假掰,但聽了就讓人很爽的話。所以這個社會很現實,有很多人的工作實力被產業現況造成的低薪低估了,也有很多人卡位對的戰場,拿到很多紅利。面試時間除了有硬的技術題,也讓一直很會解題的宅宅們瘋狂刷題,但是我也感受到團隊不是要找技術最強的人,「適不適合一個團隊」在面試時的重要性,比想像的重要。

最後很可惜在Career Fair前一週聽聞Mozilla把台北辦公室收掉了,狐狸QQ 希望疫情對產業的衝擊可以漸漸恢復。

儘管沒什麼把握,還是希望最終能有好結果。

致謝

回頭看,好多朋友、前輩和師長的幫助才讓我走到這裡。前面的路還更長,希望我屆時能成為像你們一樣手心向下的人。

謝謝在去年11月百忙撥冗,聽我訴說不成熟的夢想,並協助我釐清目標與現實、發展路徑的資管系蔡益坤老師、孔令傑老師。

謝謝給我建議、對我始終抱持信心的土木系的老師們,讓我用更高的視野審視自己發展的方向,給予我信心。特別感謝謝尚賢老師、陳柏華老師在百忙之中為我撰寫推薦信,葛宇甯老師熱心介紹接觸實務的機會,還有游景雲老師、許聿廷老師、黃尹男老師與我和翼傑學長分享好多好多求學、海內外的生活經歷。

謝謝在BIM中心給我機會接觸現實應用問題、參與很多使用者研究的敬淳學長、千溥學姐,還有carry的維廷(什麼時候去看球賽)。

謝謝柏均和我分享資工所同學的第一手消息,分享很多本科系同學在升學和求職遇到的情境。不知你怎麼對我這菜雞申請資工所會有信心,總之謝謝。謝謝翼傑學長接我的的跨洋電話,在我搞不清楚什麼學校什麼學程注重什麼時,給我選校的建議。謝謝柏佑讓我獲得一本Mason 2000,我只能說這太重要了,我GRE都靠它。謝謝Ruby讓我知道一個出色的台大學生可以把自己推向多高的巔峰,從轉述中一窺那個頂峰是什麼樣子,希望妳今年開始工作能有很多收穫。謝謝尚軒協助送履歷,讓我的敲門磚真的敲到公司的門。

謝謝冠榮學長給我一個很好的環境認識軟體公司實務的工作型態,認識好多值得學習的前輩。

謝謝丰筠不離不棄的陪伴,即使碰上這樣聚少離多或者變化無常的日子,我們把握當下繼續加油。謝謝我的爸爸、媽媽,給我一個無後顧之憂的環境,以及非常多的支持與鼓勵,讓我有機會追求更高、更好的生活。長得越大,越明白不是每個人生來想要唸研究所就能報考研究所的,遑論出國拿學位的機會,我會好好把握。

不積跬步,無以致千里。每天都要很努力才行。