2022群聯軟韌體實習面試

Firmware Life
6 min readAug 19, 2023

--

Phison Firmware Engineer Intern Interview Sharing

群聯是第一個邀請我面試的公司,而這篇打算記錄我面試群聯的一些細節。希望對也想進群聯軟韌部門實習的你有幫助。

Phison Logo

背景與面試前準備

這邊我就不細談,有興趣的可以參考我的上一篇文章(2022聯發科軟韌體實習面試),唯一不同之處只有應徵方式為104上HR主動詢問我是否有意願面試。

流程

  • D : 收到面試邀約
  • D+9 : 主管面試
  • D+10 : 接到主管確認電話、收到性向測驗信
  • D+11 : 收到HR面試邀約
  • D+14 : HR面試
  • D+25 : 收到核薪電話
  • D+30 : 收到求職面談滿意度調查表單
  • D+33 : offer get

線上面試

流程

  1. 自我介紹 : 10分鐘
  2. 問問題 : 30分鐘
  3. Coding : 90分鐘

自我介紹

自我介紹的部分還是建議大家做個ppt,有畫面給面試官印象較深刻之外,也算是給自己的小抄,比較不會忘記要說些什麼。報告一開始時面試官也有提到盡量把自我介紹時間壓在10分鐘內,因此也建議大家ppt準備的頁數與內容不用太多,聚焦在想讓面試官問的1、2個專案就好了。

問問題

問問題主要針對我自我介紹中有提到的一些專案經驗再延伸詢問,也會順便問到一些軟韌或是記憶體相關的基本知識。因此不要放一些不太熟的專案或是作業,會很容易被問倒。

Coding

一開始會要求分享螢幕畫面並要求打開C Online Compiler,之後面試官就會在聊天室傳題目,自己複製貼上至網頁上就可以開始coding。作答過程中面試官沒有全程都在看我coding,感覺大部分時間都切出去做自己的事,而當我詢問問題或是我太久沒發出聲音時才會適時提醒或討論。

總共考了3題,答案部分會在下一篇深度討論。

  1. Bit Reverse

這題雖然有完成,但寫了很久而且被提醒很多次🥲

// Online C compiler to run C program online
#include <stdio.h>

// Input: E15DC543(HEX) => 1110_0001_0101_1101_1100_0101_0100_0011(BIN)
// Output: C2A3BA87(HEX) => 1100_0010_1010_0011_1011_1010_1000_0111(BIN)
unsigned int bit_reverse(unsigned int input)
{

}

void main(void)
{
printf("%X", bit_reverse(0xE15DC543));
}

2. Binary Search

這題是經典考古題,面試前就已經練了很多次,也有詢問面試官要用loop或是recursive的方式,面試官表示2的都寫有加分😎

// Input:    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 3, 7, 6
// Output: TRUE
// Input: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 3, 7, 3
// Output: FALSE

#include <stdio.h>

int binary_search(unsigned int * arr, int l, int u, int target)
{

}
void main(void)
{
unsigned int sorted_data[10] = {0};
for (int idx = 0; idx < 10; idx++)
{
sorted_data[idx] = idx * 1;
}
printf("%X", binary_search(sorted_data, 3, 7, 0));
}

3. Linklist

這題我當時沒有寫出來,有夠可悲

// Input:  {240, 301, 479, 884, 856, 623, 905, 270, 981, 371} 
// Output: mid value: 856, largest value: 884

#include <stdlib.h>
#include <stdio.h>

struct node {
int data;
struct node *next;
};
typedef struct node Node;

void insert_node(Node **head_nod, Node **last_node, int value)
{

}

void gen_test_case(Node **head_nod, Node **last_node, int data_num)
{
int idx;
srand(100);

for (idx = 0; idx < data_num; idx++)
{
insert_node(head_nod, last_node, rand() % 1000);
}
}

void show_test_case(Node **head_node)
{

}

void find_middle_node(Node **head_node)
{
}

int main(void)
{
Node *head_node = NULL;
Node *last_node = NULL;

gen_test_case(&head_node, &last_node, 10);

show_test_case(&head_node);

find_middle_node(&head_node);
return 0;
}

我認為當面試官詢問“有沒有問題時”或是“有沒有要跟我討論的,絕對不要說沒有,就算這題非常簡單有十足的把握可以自己寫完,也可以跟面試官討論有沒有更好的解法或是討論其他相關內容。「他們不會想要只會一個人埋頭苦幹的工程師,而是可以和團隊討論,一起進步的工程師」。討論頻率合不合對他們而言也是很重要的一個評分項目。(我認識一個很優秀的學長疑似就是從頭到尾都說沒有問題沒有討論所以才沒有收到offer 🥲)

HR面試

最後一關就是HR面試,就網路上眾多面試經驗來看,走到這一關offer就是穩了,只是走個儀式而已,並不會在這關淘汰人。

面試過程就是與HR一對一線上視訊聊天,我個人的經驗是HR不太會對我的回覆做評論,就他問一個問題我回一個答案,以下是我面試完馬上記錄下來的問題。

  • 自我介紹
  • 個性優點、缺點
  • 跟別人合作的經驗
  • 在合作中喜歡擔任什麼角色
  • 如果意見不合怎麼辦(這題印象很深刻,因為我回他說我在系學會中如果大家意見不合我會選擇投票,結果HR眉頭一皺說一般職場情況不太能投票XD
  • 擅長哪些電腦語言
  • 是否有面其他家公司
  • 想面哪幾家公司
  • 當兵了嗎?想預聘還是研替

面試過程中蠻嚴肅的,總覺得HR在分析我的每個答案😶

心得

整體面試流程拖的蠻久的,但是面試官與HR人都很好,也沒有特別刁難,雖然最後沒有進去實習,還是很謝謝他們在104上主動邀請我面試,push我不要再耍廢好好準備面試。如果對群聯實習面試有任何疑問也歡迎聯絡我,祝福大家都可以收到理想的offer。

--

--