面試注意事項

科技業工程師面試注意事項

嗨~相信各位已經接到好多間公司的面試邀約,很多人好不容易有面試機會,但是在跟主管口試時卻因為太緊張講話一直不順、主管問的專業問題卻回答的很不專業、或是筆試成績太爛等,常常覺得自己表現可以更好,但到了面試戰場上卻變成炮灰,照著本篇科技業工程師面試注意事項去準備,絕對可以有效提升你的錄取率。什麼?還沒有公司找你面試,一定是你的履歷出問題了,請先看之前「工程師履歷怎麼寫?照著做面試邀約接不完」,先好好重新製作你的履歷,本篇科技業工程師面試注意事項看完後請接著看下一篇「口試問與答的藝術」,可以真的了解面試主管到底會問什麼問題以及要怎麼回答。

《科技業工程師面試前該準備什麼?》

當我們要準備面試前到底要準備什麼?我想很多人都跟我一樣有這個疑問?事實上面試前準備工作絕對是最重要的,你準備越充足,就算到了口試階段,心情很緊張一樣絕對不會表現太差,我當初針對以下幾點去準備

對想去的科技公司以及職缺做志願列表

首先我是針對我要去的公司以及職缺做志願排序,為什麼要做這件事?通常第一間面試的公司會因為沒經驗、緊張等心裡因素導致第一間公司筆試或口試會是表現最不好的,所以我會把我真的想去的排在第三或是第四間,所以我投遞履歷順序會是把志願比較後面的優先投遞履歷。例如:我當初是志願是聯發科、瑞昱、聯詠、晨星(現在已被聯發科併購),剩下就等其他公司有無主動邀請面試,職缺部分,因為我本身經歷是嵌入式系統相關,所以選擇職缺都是這領域相關。這邊一定有剛畢業的菜雞問:「我不知道哪些是我想要的好公司和好職缺?」,老實說,我不能幫你決定,因為每個人認同的好公司都是不一樣的?有人喜歡大公司有面子、有人喜歡新創公司有想像空間、有人喜歡老公司可以養老等,不過以薪資水平、未來發展、自由度來看,我可以給你們建議,大型外商 > IC設計 > 半導體廠 > 系統廠,大型外商較競爭且易裁員,但是有了外商經歷很容易跳IC設計且職稱和薪資好談,至於半導體廠和IC廠這邊就見人見智,以我的經驗大型IC設計平均年薪還是比半導體廠(台積電)還多且自由,台積電贏在名氣、穩定度、門檻較低、升上長官(年薪會比IC廠主管多)且很難倒閉,當然我把IC設計和半導體廠擺在一起比較,本來就不公平,因為會去IC設計跟會去半導體兩邊領域差太多,雖然半導體也有IC設計的職缺但相對少。

投遞履歷與約面試時間技巧

當你排好志願表,要投遞履歷,請先看有無學長或朋友在你要去的公司上班,這樣可以加速面試機會,由於給朋友投遞主要是直接給主管看,如果經歷不錯就會馬上安排,像我之前朋友有在聯發科任職,我請他幫忙投,過個3天就馬上邀請我去面試。如果沒有也沒關係,一樣在104銀行投遞履歷,每投一間公司請說明:「您好,看到貴公司有在徵「xxx職缺」,我認爲我的學經歷跟這職缺很符合,尤其是我有xxx經驗(嵌入式系統經驗),希望貴公司可以跟我談談看,萬分感謝。」,建議使用這樣的寄信方式而不要用104預設寄信方式,這樣人資看到專業的關鍵詞比較容易會去參考你的履歷,除此之外還要去各家公司官網投遞履歷,這樣做目的就是增加曝光度。

約面試時間也有小技巧,首先把想去的公司和職缺放到第二場以後面試但也不要放到最後一場,每間公司面試時間盡量都是一星期為一間公司為限,這樣每次面試回來都可以檢討自己今天筆試和口試哪邊需要加強,另外人資會寄信或電話詢問你那一天比較有空參加面試?我通常喜歡星期五這個時間,我可以在星期一到星期四去準備面試,如果還在上班,請假也比較好請,比較不會有人懷疑你去面試,會以為你是外出旅行。

增加專業知識 – 要像考大學、研究所一樣認真

還記得你之前履歷有寫哪些內容嗎?這邊分成菜雞新鮮人和轉職工作者,以菜雞新鮮人來說,你的研究所論文和參與計畫最為重要,研究所論文可以把之前口試投影片複習一遍,如果投影片太多請減少不必要的內容,可以縮短為20分鐘以內可以介紹完,參與計畫也要了解計畫目的、完整系統架構、使用什麼技術以及實驗結果,參與計畫以及論文介紹都要熟悉到可以上白板畫出系統架構圖以及講解,這個算是非常難但是也非常重要,這樣做的好處是讓主管知道你對你的工作、論文、專題夠熟悉、專業,並且提出我做了哪些改善,例如:我提出哪些演算法或是model讓整體系統performance 提高或是power 變低等等,也可以介紹失敗例子,我提出某種做法但是卻沒改善,目前還會朝什麼方向去研究等等,讓主管知道你是會嘗試解決問題的工程師而不是只會照著做的工程師,白板題一直是大型公司喜歡試探面試員的方式,要好好補足這部分。大學或研究所所修的專業科目,像是嵌入式最重要的就是計算機組織、作業系統、C 語言,數位IC設計就是IC Lab,類比IC就是電子學,基本上就是針對職缺內容以及履歷經歷來加強專業知識。以轉職工作者來說,最重要的是你所有的工作經歷,要可以上白版講解你的工作,假設你上一份工作內容是FLASH driver 或是Firmware 相關的工作,那就要講解FLASH的原理以及你這個Firmware提供了什麼改善,遇過什麼問題?怎麼解決等,越詳細越好。如果工作內容不夠豐富,那還要再準備之前的論文以及參與專案計畫。

模擬面試

當要面試前,記得要為自己做模擬面試,可以找你朋友家人當面試官,他們不需要懂,只要聽你說就可以,當然沒有就自己對自己說話也可以,模擬面試要做什麼?首先至少把履歷自傳內容背起來,接著要紙和筆把工作內容、論文、專案計畫的系統架構圖畫出來並講解出來,運用什麼技術、解決過什麼問題等,並反覆練習好幾次直到你很熟悉為止。這樣到了面試戰場上,即時你腦袋一片空白,你也可以無意識的介紹你的履歷內容。我們沒辦法知道筆試會考什麼?口試會被問什麼問題?但是對於你自己的經歷一定要熟悉才行,至少可以有這樣的基本分。

《科技業工程師筆試會怎麼考?》

筆試的考試範圍包山包海,基本上各家公司都有自己的題庫,每個職缺會考的科目也都不盡相同,大致上都是考跟職缺相關的專業科目,以軟體工程師或是韌體工程師來說,主要會考程式、作業系統、資料結構、計算機組織、嵌入式系統概念,基本上算是滿吃自己本身的能力,不過這裡我的準備方式是收集考古題以及多參加不同公司面試來累積經驗,所以想去的公司還是放後面一點面試會比較有利,當然有些公司也不筆試直接面試像是瑞昱,聯發科是直接上機考試,聯詠則是會有考卷給你寫,所以各家公司都不一樣,在接到面試邀約時,記得詢問人資。我這邊有針對軟體或是韌體工程師的考古題給各位參考一下。可以看到問的都是基本的作業系統概念、計算機組織以及C程式,但是問題都是不會太難,C程式也是偏向知道你到底看不看得懂程式。

1. Explain the meaning and the usage of these words "semaphore" and "mutex." What's the difference?
2. Explain process and thread.
3. How to design/plain/calculate "heap" and "stack" in an embedded system?
4. List interrupt types (level trigger vs. edge trigger) . Explain IRQ.If there are three processes in this system, does each process has its own stack? how many stacks in this system?
5. Explain .text, .rodata, .data, .bss section.which sections does the following variables belong to? int a = 2; int b=0; int c;
6. System call是什麼?
7.  Deadlock的四個條件
8. 什麼是virtual memory?
9. 撰寫multi-thread程式需要注意什麼?
10. User mode與kernel mode有什麼不同?
11. Thread與process有什麼不同?
12. OS怎樣做schedule? 有哪幾種方式?
13. IPC 是什麼?
14. Explain ABI (Application Binary Interface).
15. 為什麼pipeline要分成五個,分成四個或者十個會怎麼樣?
16. cache line是什麼?
17. cache是用來做什麼?沒有會怎樣?
18. OS的state diagram
19. List memory type based on speed, from fast to slow
20. Explain D-Cache & I-Cache and list their limitation.
21. Explain the meaning and the usage of DMA
22. 什麼是call by value and call by reference?
23. 基本的2、8、16進制轉換
24. 有一個for迴圈,從0加到100,可是我覺得它不夠快,要怎樣才能讓她更快呢?(不可以用數學公式) for(int i = 0; i <= 100; i++) {s = s + i;}
25. Write a code to swap integer a, b, without temporary variable.
26. Write 3 function: a) set a bit. b) clear a bit, c) inverse a bit.
27. Write a MARCO to calculate the square of integer a.
28. Write one line expression to check if a integer is power of 2
29. Write a function to find the middle field of singled-linked list without traverse whole list.

30.Here is a c file with the code as below:
int A;
Static int B;
int C[10];
void func(int D)
{
	int E;
	static int F;
	int G[10];
	   .
	   .
}
For variables A,B,C,D,E,F,G;
(1) WHAT'S variables are used "STACK" memory?
(2) What's the different of B and F which are declared by "static"?

31.Write a code to reverse the linked list. For example: [0] -> [n], [1]->[n-1],…[n]->[0].
32.Find the possible error
   Int ival;
   Int **p;
   Ival = *p;
33. What is the possible error of below SQR function.
int SQR(volatile int *a)
{
   return (*a)*(*a);
}
34. int Cnt = 10;
const char *pc = "Welcome"
while(*pc++)
{
	Cnt++;
}
what's the final vlaue of Cnt?

35.Here is a c file with the code as below:
int A;
Static int B;
int C[10];
void func(int D)
{
	int E;
	static int F;
	int G[10];
	   .
	   .
}
For variables A,B,C,D,E,F,G;
(1) WHAT'S variables are used "STACK" memory?
(2) What's the different of B and F which are declared by "static"?

《口試要有豁出去的決心

很多人筆試完了,也累了,但是最重要的一關是口試,口試要談什麼?面對口試的心態是什麼?先分享一則故事,有一位應徵發哥研替的新鮮人,當時他的筆試成績很爛,C程式不會寫、作業系統也不懂,當他進入口試房間時,發哥主管跟他說,你筆試考得很差,怎麼會這樣?要知道一般筆試如果考很差,拿offer機率是很低的,因為主管會有主觀意識,你好像什麼都不會,不過當時,他對自己說:「要把每一間面試的公司,當作是最後一次的面試,因為以後就沒機會來這間公司朝聖了」,這就是一種豁出去的決心,因此他的論文,主管問的問題他都會去回答即時他不會,也會去思考並去問主管這樣可行?讓主管覺得你很積極、很想來以及就是對公司問很多問題(反正就是最後一次了解這間公司了),最後他錄取了。因此口試的精神核心就是「豁出去的決心」。

當你開使口試,會被叫到小房間等待,等待這段時間你要做的是,放鬆自己讓自己別緊張,接著主管會敲門聲,這時要做有禮貌且尊重長官也跟著站起來稍微舉個躬,並且準備好你的履歷(通常公司也會印你的履歷,但如果你也準備了,主管會覺得你重視這場面試,不是來看看的)發給主管們,記得多準備幾份,不然有時候來太多位長官沒得發就GG了。每一位主管的口試作法都不一樣,有的是會先介紹公司工作內容,然後再問你問題,有的是直接叫你上白版介紹你的工作和論文,有的直接從人格特質開始問,有的直接問你你有什麼問題,有的什麼都不說,等你主動發言,不過大致可以分成以下兩種形式:

主動出擊

主管什麼話都不會說並等你說或是他請你自我介紹,通常這種主管就是他根本沒看過你履歷只想來看看你有什麼本事、他也不知道怎麼開始或是他想先聽聽你怎麼說,那你第一步要怎麼做呢?很簡單,直接說:「請問我需要先自我介紹嗎?」,通常主管會說好,你就可以開始把你履歷的自傳背給他聽XD,這時主管會開始看你的履歷並且思考要怎麼釘你,通常有工作經驗會先問你的工作經驗,接著論文、專題計畫、公司實習等,這時有白板就主動說,我可否使用白版講解工作內容然後就把系統架構畫出來並說明你負責哪區塊,主動權在自己手上對你越有利,舉個例子,假設是做SSD FW 開發的,我會把SSD FW 架構圖畫出來,並介紹SSD 有哪些演算法要開發的,像是 PCIE protocol 、FTL 、Garabge collection ,以及這些演算法是做什麼的?你負責哪部分?像是我開發Garbage collection ,開發了某種演算法,可以把原本的performance 提升到20% 等,要知道主管不一定會是做相關領域的,所以你只要講得有邏輯別太唬爛,基本上主管會相信你做的並提出相關問題且厲害的主管可能會問你,那如果這樣做可以嗎?這時你要去思考可不可以?如果你不知道,千萬別說「你不知道」,而是要說:「這個方法或是解法,我沒想過覺得好像可行,我可以回去研究一下並做一下實驗。」,讓他們知道你是會思考的,不是一問三不知,這裡要切記,主管問的任何問題都不要很快回答,每一個問題至少要想個30秒才作答,另外順著他們回答因為會產生相同話題連結,也會很加分,畢竟人都喜歡被肯定的。至於論文部分,請準備好你的口試投影片,並且也是影印給各長官們,如果可以用投影機放投影片那也很好,論文最重要的就是,動機、架構、使用技術、實驗結果,你要可以解釋出來,當然煩人的主管問問題方式為一層一層往下問,問到你真的答不出來,當你答不出來你絕不要說你不知道,而是要說:「這問題之前沒想過,我回去想想」,主管目的是想知道你的能力到哪,所以會一直問一直問。接著,運氣好的話,長官會直接介紹他們的工作內容,運氣不好的話就會換成長官問你白板題,通常數位IC設計就是考你電路設計,軟韌體就是考你C程式外加OS觀念,最常見的就是OS的synchronization ,這部分就是要看你的能力了。當長官開始介紹工作內容時,你絕對要換你釘他(誰說只有主管可以釘你,你也去釘他),這裡的釘,不是嗆他啦,是你要問他工作內容,其實我覺得這部分算是對面試者非常重要,不知道你們有沒有去面試,然後進去工作後跟自己想的不一樣,最後受不了又離職然後又要重找的Loop。所以,你要針對工作內容問他,如果不知道要問什麼,請參考下一篇文章「口試問與答的藝術」(暫譯)。最後,第一次口試盡量不主動問薪資福利,除非主管主動提出,而是以工作內容、工作使用的環境或是公司伙食、社團、運動地方、有沒有配備電腦等等跟公司相關都可以問,薪資福利部分,建議等到二面時,在詢問,為什麼?很簡單,因為現在是公司在選你不是你在選公司,你沒有任何話語權或談判籌碼,當你拿到口頭offer或是紙本offer在提出。

被動出擊

原則上我喜歡主動出擊,討厭被動出擊,因為我無法掌握主管會問我什麼?有些主管會一進來直接叫你上白板,出題考你,這種主管通常有看過你的履歷也知道他要找什麼人才?所以專業問題你還是要準備,不過他不會一直叫你上白板寫C程式,通常考個一兩題,測試你能力嚇嚇你,對於容易緊張的人就要心裡準備,要怎麼解決這問題呢?就是多看考古題以及多面試幾家,接著就會問你工作經歷、論文,如果你的工作經歷或是論文有提到一些專業知識,例如:我們程式架構是使用double link list ,然後主管就會考你請你寫出double link list 程式…或是我們OS是使用RTOS,可能就問你Race conditiion 要怎麼解決等,所以我才說你的履歷提出的專業知識一定要懂要熟悉,原則上被動出擊就是被釘就是了,不過如果他問的,你答的都是他想要的,那二面機率會很高。

《結論

這篇主要是介紹面試要準備哪些部分以及公司面試流程,一般就是去公司櫃檯報到、考英文(多益有達標準可以不用考)、人格性向測驗、考專業用上機考或是考卷、帶到小房間等口試、結束面試,等待二次面試或是收到無聲卡或是感謝卡。有些人會擔心,想去的公司可以一投再投?其實是可以的,不過間隔要久一點最好半年到一年,太近的話,因為你本身工作經歷不夠豐富,基本上是會有反效果,另外,當你一間公司你已經面試好幾個職缺但都沒下文了,建議就不需要再主動投遞了,代表你的經歷還不足等之後可能你換了幾間公司或是工作經歷更豐富再投遞會比較好。有時候,面試沒上不是你專業能力不足,而是你的人格特質或是有比你更優秀的人先拿到offer,畢竟面試看的除了專業能力,更重要的是你的人格特質適不適合公司文化,然後記住面試就像是男女交往,我選你,你不選我,你選他的狀況,公司也是很常被面試者放鴿子的,所以得失心不要太重,總會有喜歡你,你也喜歡的。

如果這篇內容對你有幫助,麻煩到我的粉絲按讚,希望可以給更多人看到這篇文章並知道履歷要怎麼寫。如果有任何問題或是建議也歡迎到我的粉絲專頁留言或是寄信給我。

發佈留言