--- title: info2023-homework3 tags: 資訊科技產業專案設計2023 --- # 2023 年「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2023)」作業 3 Contributed by < [Sun970053](https://github.com/Sun970053) > ## 作業要求 * 公司對應的官方網站中,找出較符合自身興趣/規劃的職務描述: JD (Job Description),至少找出 3 份。 * 嘗試列出上述職缺的面試題目。 * 對面試題目進行問答,文字紀錄即可。搭配自己過去 (或近期學習到) 的程式開發經驗,進行自問自答。 * 撰寫簡歷 - [resume](https://github.com/Sun970053/resume)。 ## 自我能力分析 根據作業要求,要找出三份符合自身狀況的職務描述。首先,應該需要先整理並分析自己的背景、能力特質以及相關經歷等條件,再對各個職缺做描述。以下根據我上面的簡歷做統整: * 有嵌入式系統的開發經驗,例如:使用一些通訊模組的函式庫做應用,必要的時候也要自己寫這些函式庫。 * 有修相關課程的紀錄,以當軟韌體工程師為目標來說:具備資料結構、作業系統、計算機結構等基礎課程的紀錄,但可能需要針對這些課程進一步描述是否有一些實際的應用與成果。以計算機結構來講,可簡單描述 RISC-V 的期末專案、作業專題等,如果這學期順利修完計算機結構可以補充。 * 有比賽的經驗,而比賽作品也是使用嵌入式開發版 (STM32) 做一些應用與整合,也使用 RTOS (Real-Time Operating System) 實做硬體的資源控管。 * 研究所的論文題目跟上述能力沒有展現強烈的相關性,我覺得這裡是需要思考的地方。 * 放出國參加研討會、比賽與實習經驗等資料,我認為是加分的部分? ## 應徵職缺 ### 軟體工程師 (Embedded System/Machine Learning/Compiler), Realtek [JD](https://recruit.realtek.com/Job/JobDetail?jobid=717) <details> <summary>職缺需求</summary> > 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 徵才條件: 1. 碩士以上電機資訊相關科系畢 2. 有下列經驗者佳: (1)熟悉C/C++、Python等程式語言 (2)熟悉compiler 設計 (GCC/LLVM)及toolchain (assembler, C library, debugger (3)熟悉embedded system 開發 (如Android, embedded Linux or RTOS等) </details> #### 模擬面試問答 > interviewer: 😎 > interviewee: 😀 **C 語言的基本問題** ### GNSS演算法工程師, Realtek [JD](https://recruit.realtek.com/Job/JobDetail?jobid=1608) <details> <summary>職缺需求</summary> > 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 工作項目: 1\. 研發GNSS基頻信號處理演算法。 2\. 研發GNSS資料分析與定位演算法。 應徵條件: 1\. 碩士以上; 電子電機、航太、電信、控制工程等相關科系畢業為主。 2\. 熟悉C/Matlab語言。 3\. 熟悉數位訊號與數位通訊處理。 4\. 具嵌入式系統程式設計經驗尤佳。 </details> ### DDR 軟韌體工程師, Novatek [JD](https://www.104.com.tw/job/6scya?jobsource=company_job) <details> <summary>職缺需求</summary> >【產品線描述】 Smart TV Solutions:提供TV SoC、MEMC/FRC及面板相關顯示裝置的控制晶片 ASIC Solutions:提供智能手機、智能電視、電競螢幕及商用顯示等產品各種ASIC解決方案 PD and Gaming Solutions:提供各種商用顯示及電競螢幕的控制晶片 【必要條件】 1. 熟悉C/C++/Python語言程式開發 2. 熟悉 Embedded system BSP/driver開發 在TV SoC/FRC晶片中,開發IC驗證軟韌體;系統軟體開發和測試驗證。 1. 開發IC功能軟韌體 2. 以軟體實現IC相關演算法 3. 協助客戶處理軟韌體相關問題 4. 建立相關IP控制流程及最佳化效能 5. 建立及維護軟韌體 6. 協助FPGA驗證 </details> ### Display Driver Software Engineer (RDSS Intern), NVIDIA [JD](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/details/Display-Driver-Software-Engineer--RDSS-Intern-_JR1974479?q=Intern) <details> <summary>Requirement</summary> >As a Software Engineering Intern, the candidate will be responsible for supporting in design and development of software solutions in the areas of Display driver stacks for Windows. Looking for interns who will be working in the following areas:  * Principles of hardware operation: CPU and memory architecture, buses and interconnects  * Operating System fundamentals: multi-processing and scheduling, memory management, privilege modes, file systems and device drivers * Algorithms and data structures * C and/or C++ programming languages * Python knowledge is preferred </details> #### Mock Interview > interviewer: 😎 > interviewee: 😀 **What is virtual memory?** 😎: Can you explain what is virtual memory? 😀: Sure. Virtual memory is a memory management capability of an operating system (OS) that uses hardware and software to allow a computer to compensate for physical memory shortages by temporarily transferring data from random access memory (RAM) to disk storage. 😎: Good. What is the benefit of this technique? 😀: I take multiple processing for example, virtual memory allows each application to operate as if it has a dedicated block of contiguous memory. This makes it possible for users to run several applications concurrently, even if the physical RAM is limited. The OS can swap data in and out of physical memory to accommodate the needs of each application. ## 結語 如果是要去 Nvidia 之類的外商公司工作,需要模擬英文面試問答。 在面試之前,需要先整理並複習面試官可能會問的問題: 1. 作業系統常見的白板題。 2. 關於 C 語言的基本問題。 3. 外部中斷 (external interrupt)、計時器中斷 (timer interrupt)、軟體中斷 (software interrupt)之間的差異與應用情境。 4. mutex、semaphore 的差異以及應用情境,因為簡歷有說會用 freeRTOS,面試官可能又會問我是如何去實作的? 5. 在開發嵌入式系統的情境下,對於 Multi-thread 的考量點。 6. 開發過程中有遇過 DeadLock 嗎,如何找出原因?如何解決? 7. 因為有修過計算機結構 (Computer Architecture) 的課程,對於 Hazard 的解釋以及種類。 ## 參考資料 * [Realtek](https://recruit.realtek.com/Job/Search) * [Novatek](https://www.104.com.tw/company/12nopku0?job=&roleJobCat=1_2007001004&area=0&page=2&pageSize=20&order=8&asc=0&tab=job) * [面試暑期實習的經驗:系統設計工程師 Monitor, Realtek](https://hackmd.io/KcEJr_qRSrOaqdgRfy9QDw) * [你所不知道的 C 語言:記憶體管理、對齊及硬體特性](https://hackmd.io/@sysprog/c-memory?type=view) * [Top 25 NVIDIA Interview Question & Answers](https://interviewprep.org/nvidia-interview-questions/)