面試問答
是可以以接受加班,到 8、9點左右?
可以,產品出貨前後加...
群聯的線上一面有三個關卡,第一個是自我介紹,最好有準備簡報。第二部分為 C 語言測驗的白板題,考甚麼取決於主管,不用糾結
正不正確,。第三部分為主管介紹部門、工作內容、工時、加班情況,然後是互相提問。因為白板題寫太久,導致最後介紹部分跟問答只有 15 分鐘。
SSD FW 底下一共有 4 個部門,分為 HOST、FTL、FPL、Security。這個部門是 SSD FW 底下的 FPL,部門人數好像是 20 人左右。而 FPL 底下又分為 Error Handler、NAND Endurance (快閃記憶體壽命與可靠性)、alog (Analog / 類比訊號校準)、Boot Loader。
年資 3 年以下的佔了一半左右,7 年以上的不到 1/8。最近專案蠻多了,所以招人需求。從主管跟其他同仁互動,看起來沒有什麼年紀隔閡。
主管說 SSD 的前景不好說,因為未來世事難料,但是他的上級說可能還有個十年。
新人訓練後,大約會在 4~6 個月開始接案子。新人訓練期間,會需要回報說明做了甚麼,主管會評估,很少出現試用期沒過的事情。
這個職位可能會到三面或四面,會有 HR 關卡,以及部長、處長。
### 工時
公司規定彈性上班 2 小時,午休一小時,所以最早是 8 - 5,最晚是 10 - 7。主管說他們這個部門大部分都 10 點上班。
產品出貨前需要加班,有一兩個月須要加班,最晚到 8 到 9 點,其他時候就算正常上下班。
面試問答
是可以以接受加班,到 8、9點左右?
可以,產品出貨前後加班是很正常的事。
白板題
1. 寫出 char, short, int, long, double 的 sizeof。
2. 給一個 union X {int a; char b; void *c},問你 sizeof(struct X) 是多少。這題考你對 union 的認識,以及要提到 void *c 的大小取決於多少 bits 的編譯器。
3. 給一個 struct X {long v1; char v2 : 3; char v3 : 5; void *v4}; struct X *a;,問你 sizeof(struct X) 是多少。假設 memset((void*)a, 0x5A, sizeof(struct X)); 後。 寫出 a 裡每個成員的內容跟記憶體位置。這題考 struct alignment、指標在 32bit 和 64bit 所佔的大小、memset 用法、bit field。
4. 給你程式碼。問你 z 是多少,考你 define 跟 function 的差異?
#define MIN(a,b) (((a)<(b))?(a):(b))
int x = 10;
int y = 10;
int z = MIN(x, MIN(x++, --y));
5. 給你一個手刻的 memcmp,問你哪裡有錯,如何修正?
int my_memcmp(long *t1, long *t2, long byte_cnt) {
char i;
for (i = 0; i <= byte_cnt; i++) {
if (t1[i] != t2[i]) {
return 0;
}
}
// 全部比對完成且皆相同
return;
}
6. 有 42 個數字,從裡面抽出 6 個數你會怎模做?有沒有不用 RAND() 的方式,減少硬體負擔?
面試建議
1. 有遇到資料型態所佔的記憶體大小時,要主動問幾 bits 的編譯器,最關鍵的是指標大小以及 long 大小。
2. 讓主管知道你知道 struct alignment 這件事。