# 2024 年 「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2024/https%3A%2F%2Fhackmd.io%2F%40sysprog%2FH1-4KbanC)」課程作業 3 ## 履歷 [檔案](https://drive.google.com/file/d/10oRsxVfsg5_dotwlac4jP19otqHqWTF0/view?usp=drive_link) ## 符合自身興趣/規劃的職務描述 ### [MediaTek 軟韌體開發 Embedded System software](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120240902008?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DWorkExp%26order%3Ddescending%26page%3D4%26searchKey%3Dsystem%26category%3D%26workExp%3D%26branch%3D%26program%3D) #### Description - 資工/資管/電子/電機/電信/通訊/電控相關研究所背景 - 對行動通訊、無線及寛頻連結、家庭娛樂晶片解決方案有濃厚興趣的2025年應屆畢業生 #### Requirement - 資工/資管/電機/電子/通訊相關研究所畢 - 嵌入式系統 (Embedded System) - Computer Organization & Architecture (計算機組織 & 結構) - 作業系統 (Operating System) - 資料結構 (Data Structure) - 程式語言 (Programming Language) - RTOS (Real-time Operating System) - Linux - Android --- ### [顯示平台軟韌體開發工程師](https://www.104.com.tw/job/8gwgt?jobsource=google) #### Description - 負責新興顯示器及車載顯示器平台系統軟韌體驗證規劃與開發 - 平台軟體管控 - 除錯工具開發 #### Requirement - 碩士以上,電子、電機、資工、控制相關科系畢業 - 思路清晰、條理分明,對工程研究有熱忱 - 熟悉C/C++/Git - 具備研究新技術熱忱,態度積極樂觀,溝通能力佳 --- ### [Bluetooth/ZigBee/Thread firmware engineer](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120241018000?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3D%26order%3D%26page%3D2%26searchKey%3DFIRMWARE%26category%3D%26workExp%3D%26branch%3D%26program%3D) #### Description - Develop Bluetooth/ZigBee/Thread firmware with latest specification. - Develop coexistence features between Bluetooth, WiFi, ZigBee/Thread, LTE, 5GNR. - Develop Bluetooth/ZigBee/Thread system architecture with software and hardware. - Optimize performance and resolve problems with mobile and CE customers. #### Requirement - Familiar with C programming and embedded system. - Experience Bluetooth, ZigBee, Thread, or WiFi wireless protocol would be a plus. - Experience UART, USB, SDIO, SPI, PCIe interface would be a plus. --- ### 自我評估 #### 以上職缺所需能力 1. 學/碩士以上的 CS/EE 或相關科系 2. 基本程式語言能力(C/C++) 3. 嵌入式相關的背景知識 5. 對於 Linux, embedded system 有實作經驗 6. 具有產品開發經驗 #### 相關能力 1. 有嵌入式實作經驗 (使用 LoRa) 2. 基本程式語言能力 C、C++ (但缺乏實際專案經驗,需補強) 3. 有 Android app 的開發經驗 (Java、Kotlin) 4. 修過 OS、計算機結構(細節部分需複習) 5. 會使用 git #### 需補的能力 1. 提升 C 語言熟悉度 2. 提升 Linux 熟悉 3. USB interface 的相關經驗 4. 嵌入式 RTOS 的實作經驗 --- ### 面試題目 #### Q:關鍵字static的作用是什麼? A: 在函數區間內,被宣告為靜態的變數,在函數被呼叫的過程中其值維持不變。被宣告為靜態的函數,只可以被這一個block內的其他函數呼叫。也就是這個函數被限制在宣告它的Block的範圍內使用。 #### Q:儘管不像非嵌入式計算機那麼常見,嵌入式系統還是有從堆積(heap)中動態分發內存的過程的。那麼嵌入式系統中,動態分發記憶體可能發生的問題是什麼? A:會發生的問題像是記憶體碎片,碎片收集(垃圾回收)的問題,變量的生命週期(變數的執行時間)等等。 #### Q:預處理指令#error的目的是什麼? #error就是生成編譯錯誤的訊息,然後會停止編譯,可以用在檢查程式是否是照自己所預想的執行。 #### Q:C語言允許一些令人驚訝的結構。這個結構合法嗎?如果合法的話這段程式碼會做什麼? ``` int a = 5, b = 7, c; c = a+++b; ``` 應該是合法的,可以理解成 c = a++ + b。 運行完後 a=6, b=8, c=12。因為 a++ 在執行加 b 的動作時 a=5, 後來 a 才會加 1 變成 6。 --- ### 參考資料 - [0到100的軟體工程師面試之路系列](https://ithelp.ithome.com.tw/users/20152262/ironman/5615) - [韌體工程師的0x10個問題](https://hackmd.io/@Chienyu/S1loEqCuo#%E9%9F%8C%E9%AB%94%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%840x10%E5%80%8B%E5%95%8F%E9%A1%8C) - [面試心得](https://www.ptt.cc/bbs/Trans-nctu/M.1556858016.A.B1A.html) - [23年碩畢新鮮人軟韌求職心得分享](https://www.dcard.tw/f/tech_job/p/255938962)