我的新鮮人面試心得

Jalex Chang
Jalex’s Murmur
Published in
8 min readJun 15, 2018

--

沒有完美的人,工作也是。

前言

這篇文章不是什麼面試教戰守則或履歷撰寫建議這種專業文章,純粹是我自己經歷了兩個多月的面試人生後,所做的心得整理。因此屬於主觀意見,內容也不一定適用於每個人,請斟酌參考。

簡單的自我介紹。我是一個高齡新鮮人(26),求職面試的當下,正就讀交通大學資科工所博士班(五年級)。但因為一些緣故的關係對於博士生涯的現狀與未來感到疲倦與失望,因此決定暫緩學業,投入職場。而學歷的部分,因為還沒跟指導教授討論,又覺得起碼應該要拿個碩士學位給家人一個交代,所以就卡在了最高學歷是學士/碩士/博士三者都有可能發生的曖昧狀態;此現象也稱之為薛丁格的最高學歷(?) 也因為這個緣故,我求職的過程變得格外不同,有了更多面向的體悟。

此外,此文不會針對特定的公司分享面試流程與經驗,因為有些公司很大,你一定可以找到相關資訊;有些很小,我不確定他們明年是否安在;有些則是對方要求低調,不好明說;當然有些是靠人脈走後門,這種可能也不適用於一般人。所以會較偏向整體面試概念來闡述。

最後,這是篇軟體工程師與後端工程師的面試心得,面試的公司也多數為外商與新創。豬屎屋與系統廠文化不在討論範圍內。

內文

學歷重要也不重要

這是個史詩級的月經文問題,正反雙方大概可以再爭論個半世紀吧我猜。但就我個人的面試經驗而言 — 學歷不是太重要,因為有其他選擇比學位更能證明你個人的實力,像是實習經驗、開源專案、專題計畫、比賽成績等。但學歷本身的確是最簡單有力的方式,可以證明你曾經歷過相關的專業訓練。

我自己的想法是 — 學位有點像是遊樂園闖關的紀念品,你參與過程的每個關卡並通過,就能拿到最後的紀念品(學位證書)。因此你可以說”我會射氣球,因為我有通過相對的考驗喔”(也不算艱難,投10中6就過了嘛);當然你也可以說,”因為我不擅長套圈圈,所以沒有拿到紀念品。但是,關於射氣球這件事,小弟倒是略懂略懂“,然後掏出個射氣球大賽獎盃;或是拿一段錄製的影片(專案),證明自己真的很會射,不然可以現場來比一下。

重點是你會什麼?專精到什麼程度?有什麼方式可以證明?學位只是輔助,其他專案獎項也是。因此,如果你正踏在高階學歷的求學途中,請珍惜現在擁有的,因為你可以比其他人輕鬆點。但也別鬆懈,因為那張紙只能證明你具有60%的能力,剩下的40%才是決勝點。而如果你沒有好的學歷或是對高階學位不感興趣,也沒關係,因為總是有其他方法可以證明你自己。而且,你可以專注在射氣球上,不用關心你這輩子都不會用到的套圈圈。也因為時間是公平的,只要沒有停下來摸魚耍廢,那這個問題不過是加深或加廣的選擇罷了。

準備好你的英文履歷

儘管軟體業的環境越來越好,台灣依舊還是軟體鬼島。我們有著高品質的專業能力,與相對低廉的薪資環境,這點不難從越來越多國外新創與外商來台灣徵才可以看得出。當然台灣本土還是有許多具競爭力的軟體公司,但外商相對還是普遍較優,不管是待遇還是職涯發展。所以,請準備好的你的英文履歷與英文自介,如果你對五年後、十年後的自己有所期許,那有很高的機率會用到。

關於英文面試這件事,我個人的經驗是 — 敢說就先贏一半。不要怕英文破,又不是在考口說,重點是要達到有效溝通。最好方式的練習方式,就是多講。你可以多認識學校的外籍生(有口音不是問題,我們也有)、出國交換,或是參加學校的英文課程。

那些關於刷題的迷思

關於寫LeetCode刷題目這件事,也是個常常起爭執的議題,正反雙方應該也可以再吵個五十年。關於練習LeetCode,我自己是覺得 — 必要但適量。老實說LeetCode上就算是Hard的題目,其實也沒有難到哪裡去(大部分啦),會覺得困難一部分是把學過的資料結構與演算法還給了老師,但更大的一部分是缺乏了邏輯思維的培養。

想出能跑的程式邏輯不難,寫出高效的解法也是(多花點時間或是參考高手的解法),但要同時兼顧高效與架構清晰易懂才是真正需要練習的,簡單點說就是邏輯訓練。寫LeetCode不是能Pass就好,頗析題意、設計、優化,最後重構到邏輯清晰、架構明確,才是刷題目有趣的地方。

對應到白板題,最忌諱的就是拿到題目後,不提問討論、不解釋設計、不擬test case,就開始埋頭寫code,最後全部寫完才開始解釋。更慘的是,如果還解釋得零零落落或是文不對題,那就GG了。

最後,有些人常說系統架構設計跟演算法是完全不同的概念。但一個在問題可解、條件清楚,例外有限的狀態下都不能有效解決問題的工程師,我是不覺得他設計的系統架構是能多厲害啦。

實戰就是最好的練習

如題,克服面試狀況不佳的辦法,就是一直面試。面到不會緊張,面到聊天答辯輕鬆自在,面到全程充滿信心與熱情,那你就成功了。這也是我自己的慘痛經驗,誤以為自己準備充足,一開始就面了幾家心儀的公司,然後狀況超差,全部被打槍。因此,建議可以先找認識的(有擔任過面試官的)人幫忙模擬面試,或是選幾家難度很高且你沒什麼興趣的公司練一下手感,再不然就是找有人脈的公司,確保不管結果如何都能得到回饋。

面試完一定要檢討並改進,不管你是拿到offer還是感謝函。面試的過程一定會有你沒有想過的狀況與問題會發生,如果沒有辦法隨機應變,記得一定要事後修正。面到後面會發現遇到的問題都大同小異,畢竟你的履歷就是長那樣,怎麼問都不會超出範圍太多(畢竟是個新人)。

系統設計是面試中最有趣的環節

在我的面試經驗裡,這個部分的題目通常會從你過去做過的專案(包括學位論文)裡挑選出來,大意就是如果讓你從新設計XXX,你想怎麼做。系統設計是我自己最喜歡的環節,因為它很接近真實工作時的模樣。你接受考驗的同時,也是在考驗著你未來可能的同事與主管:面對意見不一時要如何溝通、主管如何處理被下屬糾正或反駁,甚至是 — 同事在這間公司是一個十年,還是十個一年。當然,最大的考驗還是在面試者身上,如果不誠實面對(灌水或唬爛)自己的經歷,很容易在這個階段炸裂;當然不夠熟悉也會。

有問有答才叫互動

公司面試你,你也在面試公司。不問問題,對方怎麼知道你對公司與職缺有什麼想法與期望?常見的問題有:公司願景、產品競爭力、部門文化、衝突處理方式、軟體開發的流程、對於這個職缺的期許之類的。

通常面試到了尾聲,都會閒聊一些跟專業能力無關的事情,像是平常嗜好休閒之類的。聽起來不重要,但我自己是覺得這個階段滿重要的。起碼我不會想跟完全聊不來的人共事,也不會想在一個員工普遍生活工作不平衡的地方任職。

面試需要實力也需要運氣

面試的成功,除了要準備充足,達到應有的專業能力,有時候也需要點運氣。被拒絕的時候,傷心是難免的;可以一時失志,但請不要被擊倒。每次的面試都是獨立事件,累積經驗,修正過錯,一定會越來越好。

最後,祝大家求職順利。

--

--