2022 Synopsys Software R&D 面試心得
前言
碩士生涯生涯漸漸步入尾聲,趁著跑實驗的空檔忙裡偷閒記錄一下最近面試的心得XD。話說從去年開始自己就陸陸續續面了不同的公司跟職缺,新思(Synopsys)算是讓我覺得面試過程蠻愉快而且待遇也不錯的公司,所以想說來分享一下供大家參考~
背景
學士:112工院,碩士:112 CS,大三去資工系修課開始比較深入的學C++,跟系上大神們比起來沒有什麼特別厲害的經歷,曾經當過資工系機器學習的助教,研究偏影像相關,目前在某間外商當machine learning intern。
招募流程
面試前印象中新思算是EDA的龍頭,因為本身完全對這個領域完全沒概念,感覺我的資歷也不符,所以沒有投遞履歷的打算,但是人資透過104詢問我有沒有意願放履歷在他們的人才庫,如果有部門主管覺得有興趣會再通知面試,當時想說反正也沒損失就請HR幫忙放了,想不到一段時間之後還真的收到面試邀請。
整體時程大致上如下:
D+0: 同意投放履歷
D+7: 收到部門面試邀約跟OA連結,並且請我回覆可以的時間
D+12: 把OA寫完,回覆可以面試的時間
D+13: 一面,technical phone interview (大約一小時,線上進行)
D+19: 二面,線上測驗+technical interview+與主管聊天 (大約三小時,線上進行)
D+20: 口頭offer get。
D+34: official offer get。
面試內容
Online Assessment
使用HackerRank平台,時限內(忘記是110還是140分鐘了)用C++做三題coding test,體感上用Leetcode等級來分大概是1題easy,1題medium,1題medium到hard的程度,我比較簡單的兩題有過測資,剩下一題發現是NP-hard,有點慌張來不及刻完就結束了,有點殘念。準備方向的話大概就是刷題吧,但其實我沒什麼時間準備,Leetcode總共大概只寫過100題,寫OA前兩天大概意思一下總共寫了2~3題當練習,結果演算法題偏廢的我還是進到下一關了,算是有點僥倖(?
寫完OA的當下就寄信跟主管約時間,那時候大概是晚上十點,抱持早死早超生的心態直接寄信說隔天早上可以面試,結果一覺醒來主管直接已經約好早上的面試了,效率高到嚇死人XD
一面
一面採取線上對談,面試官有一男一女,主要都是男面試官進行提問,一開始就直接進入主題開始問C++的技術題,一開始都題目都算是基本觀念,諸如pass by value跟pass by reference的差別跟優劣,以及一些STL容器的使用時機,答的都還蠻順利的,但後來難度開始越來越高,比如一些物件導向方面的細節,比如說今天由你來設計的話你會怎麼去實作dynamic binding,當你回答之後還會繼續追問為什麼是這樣?合理性在哪裡?而當如果回答不清楚or不確定的時候才是考驗的開始,面試官會開始追問說如果用你的邏輯去推斷,那你覺得答案會是什麼,總之就是強迫你去在不確定ground truth的情況下要用一個合理的思路去演繹背後的答案或原理,過程十分高壓,但在你問我答的思辨中卻又逐漸釐清原先模糊的概念,甚至原本自己答錯的問題在我解釋的時候自己發現邏輯怪怪的之後才自行糾正回來。總體來說,雖然被問的體無完膚但確定收穫滿滿,有種被虐但卻很爽的神奇感覺XD
技術題問玩之後就是跟面試官閒聊的時間,我有問面試官自己的背景跟公司做的東西完全不同,不知道適不適合之類的問題,不過面試官說只要C++跟演算法實力夠就好其他domain knowledge可以進來學,然後有建議說如果真的很想先自學的可以看一些圖論之類的演算法。(註:面試完之後偷偷查了一下面試官的背景,結果發現是112CS學碩,然後修課沒拿過A+以下的成績,心中無限WTF...
經過第一輪轟炸後,面試完的當天晚上就接到主管的電話打來說面試官的feedback還蠻好的,所以想直接約下一次面試,順便閒聊了一下,我跟他說想快點解脫所以說隔天就可以面試的時候他還有點傻眼XD,不過還是幫我排在下個禮拜。
二面
和一面一樣是視訊面試,一開始會給你大概40分鐘的時間寫一份線上考卷,全部都是問答題,主要也是問C++的一些觀念,比如constructor、destructor的呼叫機制、virtual function、dynamic memory的一些觀念、C-style string的小細節、給一段code分析時間複雜度等等,最後一題貌似是一個class的定義之類的,但我還沒看完題目就時間就到了,結束之後就是面試官開始檢討你剛剛寫的答案,和一面十分類似,不管答對答錯都要回答你解題背後的思路是什麼,檢討完成之後又是一輪技術問答,也是C++和演算法相關的主題,最後直接要你現場coding實作某個STL的容器,整個過程大概將近兩個小時,結束之後面試官聽到我快虛脫的聲音還問我要不要先休息一下Orz。
面試的最後環節就是和主管面談的環節了,一開始會有一些常見的behavior questions,大概就是你在工作上遇到某種狀況你會怎麼處理。最後就是工作介紹跟閒聊之類的,整個過程氣氛還蠻輕鬆且愉快的。
面試結果
面談完的隔天人資就打過來說主管想發offer了,但是因為正式offer發下來的話只有短短幾天的時間能考慮要不要接受,當時又有和別家公司在進行面試,所以我拜託HR能不能盡量順延正式offer發下來的時間,他們也蠻nice的答應了,但是後面真的實在是拖太久了,所以在兩個禮拜後還沒等到最後結果只好先給我最後的offer。
薪資&福利
正式的offer下來之後發現有比目前網路上公開的數字再多一些,六位數底薪在加上固定的年終,而且還給了一筆為數不小的簽約金 (但如果在期限內離職的話要全數奉還:p),加上還有額外的生活補助費等等雜項,用台積電(純粹做基準值,沒什麼特別的意思QQ)目前最新”碩畢" 的"底薪"來算 (設為N),整包package的平均月薪大概是 Nx2 + 15~20k 這個區間,除了薪水之外,每年還有優於勞基法的幾天全薪病假跟不用理由的假(By the way,聖誕節全公司放假XD),而且公司幾乎就是早9晚5正常上下班,簡直是台灣work & life balance的模範,但是薪資成長也相對平緩,難怪會被稱作外商純軟界的公務員(誤
面試準備
個人看法是C++不是一朝一夕可以練成的,平常修課如果做project或寫作業如果可以的話我會盡量用C++去寫,話雖如此,其實碩士期間也只有兩門課有這個機會XD,所以我覺得除了課堂之外,自行閱讀相關書籍或資源也是累積觀念很重要的一環,Stanley B.Lippman的C++ Primer原文版可以說是深入淺出C++原理跟哲學的聖經(不過內容多了點),想精通C++的話個人真的推薦必買一本當參考(初學or當工具書都很適用),最近有開始看Scott Meyers的Effective C++,裡面也是用非常清晰的思路來介紹一些重要的best practices,甚至面試遇到的一些問題也在前幾章就有出現。總而言之,平常的觀念積累我覺得會比臨時抱佛腳來得有用許多,所以面試前一天晚上我就是把一些重點概念拿出來複習,其他就隨緣XD
總結
老實說收到offer的時候內心真的是蠻動搖的,畢竟撇開外在條件我覺得工作內容可以讓我這個小菜雞慢慢磨練出在業界生存的實力,又不會有台灣科技業普遍高工時且薪資隨景氣起伏的風險,但是因為諸多因素考量,最後還是忍痛婉拒offer,只能希望以後不要後悔這個決定...不過當初也完全沒料想到會有這次的面試,只能說平常學到的東西你永遠不知道哪天會派上用場,我們能做的大概就是不斷自我精進等待下一次的機會吧!