2019年4月23日 星期二

[Interview] Cadence Software Engineer

前言

3月底收到Cadence面試邀約,雖然結果不盡理想,還是做紀錄以便之後參考 !!
整個面試流程讓人覺得很舒服,相當尊重面試者

正文開始

整個面試流程如下:

收到HR發信interview invitation  --> 第一關phone interview  --> 第二關程式筆試  --> 第三關遠端和美國主管interview


以下開始介紹大概內容:

【第一關phone interview】
HR會問你方便的時間,即便是中午或者傍晚都可以,他們很願意利用面試者有空的時間跟你面試。

談論內容包含 現在工作內容寫過哪些功能遇過那些棘手問題以及如何解決
為什麼想換工作

後半段就開始介紹主要工作內容以及需要那些技能,主要都是以C++為主

此階段需要複習類別(Class), 樣板(Template)等觀念

面試官會突然來一個問題問你知不知道這個觀念



【第二關程式筆試】
考很多程式設計語法觀念,包含類別(Class)的繼承(Inheritance)和建構子(Constructor)以及解構子(Destructor)、指標(pointer)、快速排序實作(Quick Sort)數位系統設計

這一關只能拿書出來複習容易忘記的觀念
程式設計考題印象中有:
A.    給你一段程式碼,問你會不會有問題,如果有會發生什麼事
B.     const char* ptrA 和 char* const ptrB   差在哪裡以及怎樣會有問題
C.  Signle Linked-list翻轉實作
D. 給你一個有很多node但是edge很少的圖,請設計一個Structure來表示
     如果想要搜尋nodeA,要怎麼印出經過的所有nodes
E.  實作Quick sort
F.  給你一個一維陣列,裡面的元素已經由小排到大,而且元素可以重複
     問要如何篩透過In-Place方式選出不重複的元素之陣列,並且在O(n)時間內

數位系統考題大概有:
A.  布林代數化簡,並且證明
B.   給你一個數位電路,問你: Margin Setup time / Margin Hold time


題目大致上來說不難,介於Easy~Medium
我只有那一題問到Margin Setup time / Margin Hold time 不知道,其他都有寫出來而且答案都很肯定。
不知道為什麼要考到這個,畢竟這個只有大二修數位系統設計有碰過,工作後就沒再碰這個
而且這個應該是放在HW面試題才對



【第三關遠端和美國主管interview】
考完筆試後隔兩天就被安排跟美國主管遠端面試,面試時間是台灣時間早上7:00左右
全程英文面試,沒有一點中文

繼續考程式設計,考了Graph相關和Hash table
因為工作上沒用過Graph和Hash table相關,所以這一方面特弱
我連Minimal Spanning Tree都忘了...
如果是大三的我來面試一定沒問題,當時一直都有在寫OJ,對資料結構和演算法都有在碰

後來面試情況不是很好就提早結束,面試官還給我一句話
"I think it's not your best performance this time. Please prepare well before interview next time."



以上是我的Cadence面試經驗


1 則留言: