# 資訊科技產業專案設計課程[作業 4](https://hackmd.io/@sysprog/info2021/https%3A%2F%2Fhackmd.io%2F%40sysprog%2Finfo2021-homework4)
> 貢獻者: 田豐 tayoto
- [ ] interviewing
## 找出較符合自身興趣/規劃的職務描述
### [MTK Embedded System Software](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120170503001?langKey=zh-TW)
:::info
職缺說明
Major responsibilities will be to:
1. Port the last Linux Kernel to MediaTek ARM based SOC.
2. Optimize the Linux Kernel for maximum performance.
3. Upstream MediaTek drivers to Linux
職缺需求
1. At least 4 years of experience with embedded Linux software development preferred.
2. Knowledge and experience with Linux kernel.
3. Strong programming skills in C.
4. Experience with multi-processors programming is a plus.
5. Experience with Android application framework is a plus.
:::
* 雖此職缺為較senior之職,但與[MTK校招軟韌體開發](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120210824032?langKey=zh-TW)略為類似,故以此作探討,實際準備內容會以後者為主。
#### 自身能力分析
* 優勢
* LAB 之研究方向目前訂為 PIM* 相關之應用,會有較多的硬體知識。
* 具備 C 語言能力及修 RTOS 相關課程。
* MCU 相關之開發經驗,曾於 PIC 微控制器上實做自走路機器人。
* 劣勢
* 目前無作品集可展示,預計於下學期修 Linux 相關課程,以增加可公開展示之成品。
* 缺乏大型程式之開發經驗。
* 多執行緒程式設計。
:::info
**Processing in Memory (PIM) or In-memory processing:**
Data movement cost huge present of system energy comsumption in Von-Neumann architecture. In order to address this issue, data processors (DPUs) are placed within the DRAM chips to compute data-intensive operations.
:::
#### 面試考題
1. 不另外使用暫存空間,改寫 swap
2. 輸入一個數字及一個array,該array長度為該數字,輸出一個數字,該數字所有子集合中總和的最大值
3. print 出 100 ~ -100 ,請寫兩種截然不同的寫法
4. 請寫一個會發生 memory leak 的程式
5. 請寫一個程式會發生 pointer 失效但是編譯是成功的
### [Phison PCIe SSD Firmware](https://www.104.com.tw/job/76yx5?jobsource=company_job)
:::info
工作內容
1. SSD演算法開發與韌體程式撰寫
2. SSD and NAND flash演算法開發
3. SATA & PCIE Protocol韌體開發及維護
其他條件
1.熟C、C++
2.具Nand Flash管理經驗者佳
:::
#### 自身能力分析
* 優勢
* LAB 之研究方向目前訂為 PIM 相關之應用,會有較多的硬體知識。
* 具備 C 語言能力及修 RTOS 相關課程。
* MCU 相關之開發經驗,曾於 PIC 微控制器上實做自走路機器人。
* 劣勢
* 目前無作品集可展示,預計於下學期修 Linux 相關課程,以增加可公開展示之成品。
* 缺乏大型程式之開發經驗。
* 尚無 Flash 管理經驗。
#### 面試考題
1. Explain "static"
2. Difference between linked list and array
3. What is "stack"
4. T=1ms求頻率,cos弦波求震幅,給你一個V和A的gain求DB
0~1V 用8 bit去表示,排序演算法,PMOS NMOS電路圖,印出一三角形
5. int a = 0xFAFC; return (a >> 8) & 1; 之第九bit為何
6. 給定 11, 12, 23, 35, 58, ... 之數列,求其中第 n 項之值
7. 以下程式碼之輸出為何
```cpp=
unsigned int a,b;
for(b = 2; b >= 0 ; b--)
{
a++;
}
cout << a;
```
### [SMI SSD Firmware](https://www.104.com.tw/job/3q6ot?jobsource=company_job)
:::info
工作內容
1.SSD controller firmware design, customization and customer support.
2.SATA/PCIe/NVMe protocol firmware design.
其他條件
1.Familiar with PATA/IDE interface(bridge) or SATA/PCIe interface.
2.Experience in NAND flash related product is a plus.
:::
* 此職缺與前者相似
#### 面試題目