# 2024 年「資訊科技產業專案設計」作業3 ## 工作職缺 [Realtek:114年度研發替代役&預聘_應屆畢業人才-系統設計工程師 ](https://recruit.realtek.com/Job/JobDetail?jobid=1980) :::spoiler 工作地點 : 新竹科學園區 工作經驗 : 0 年 學歷要求 : 碩士 應徵條件: 1. 瑞昱強力招募(1)114年度研發替代役及(2)預聘114年應屆畢業之碩士、博士生。 2. 碩士以上之電子、電機、電信、通訊、電控、資工、資科等相關科系,並具下列任一條件者佳: a. 熟C、C++、Linux、Assembly,具DSP及audio/video processing相關經驗或興趣者。 b. 多媒體影音系統開發經驗或興趣者。 c. 具網路embedded system開發經驗。 d. 熟網路基本概念。 e. 對RF、Microwave, AD/DA, FPGA硬體設計有興趣者。 f. 具實體層數位信號處理設計有興趣,並熟DMT、OFDM或ASIC邏輯線路設計者尤佳。 g. 對通訊網路、聯網多媒體、多媒體、電腦週邊、智慧互聯或車用電子產品之系統韌體或程式設計有濃厚興趣者。 ::: [軟韌體開發_ 5G 行動通訊](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120240902005?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3D%26order%3D%26page%3D1%26searchKey%3D%25E9%259F%258C%25E9%25AB%2594%26category%3D%26workExp%3D%26branch%3D%26program%3D) :::spoiler 職缺需求 歡迎具備以下經驗及專長的你: 資訊/資管/電機/電子/通訊相關研究所畢,對於行動通訊產業有濃厚興趣;熟悉通訊原理、數位訊號處理、電腦網路、計算機組織、作業系統 ::: [Novatek:軟韌體開發工程師](https://recruit.realtek.com/Job/JobDetail?jobid=1412) :::spoiler 工作內容: 1. TV平台開發/系統整合、Video/ Audio/ System 平台架構與整合 2. IP Camera 產品軟/韌體功能開發、嵌入式系統單晶片開發、規格製定及驅動撰寫 3. 影像畫質調校、3A演算法開發及維護、SDK軟韌體開發及維護 4. FPGA及IC驗證 軟韌體開發工程師 職務條件: 歡迎碩士以上電子、電機、電信、電控、資工等相關系所,具備以下經驗及專長: 1. C/C++/JAVA/ARM/MIPS/Matlab 2. Device Driver/Embedded RTOS Kernel 3. Linux/Android平台應用程式開發 4. OpenGL/EGL 5. Python/Tensorflow ::: --- ## 職缺分析 * 熟悉網路相關知識會較有利 * RF、 AD/DA, FPGA硬體設計建議擇一學習 * 最好使用過Linux * 通訊相關知識也曾在面試中被提問 * 嵌入式系統的概念非常重要 * C語言的熟練度仍是最重要的 ## 自我評估 ### 可能優勢 * 就讀通訊所,曾學習過DSP、OFDM、BPSK等通訊相關知識。 * 專題是自組織網路及Raspberry Pi的應用,具備Linux系統的使用經驗 * 有 TCP/IP 網絡(DNS、DHCP)的使用經驗。 * 承上有python的實際應用及開發相關經驗 * 一篇IEEE會議論文的第一作者 ### 可能劣勢 * 在程式開發能力上仍非常不足 * 資訊相關的重要課程仍未修全(演算法、作業系統) * 上述有提及知識及經驗都不夠深入容易被問倒,在實際面試前要把優勢的部分都弄熟,沒弄熟的不如不要放 * 幾乎沒有作品集 * 嵌入式相關的經驗非常重要,但只碰過esp32 ### 未來規劃 * 多修習相關課程,目前規劃課程:嵌入式系統、作業系統、工業物聯網(做project)、必要的通訊課程 * 尋找暑假實習機會累積經驗 * 多累積點side project,讓github看起來豐富一點 * 養成固定刷leetcode的習慣,目前是使用C++ * 嵌入式可以自己買個板子來練習 --- ## 模擬面試 ### 可能被問的問題需要留意的東西 1.自介,細節及之前的作品的細節都有可能被問 2.選擇公司的理由,自己的優劣勢分析,為何公司要選你 3.對公司、職務的提問 4.部分部門需要大量溝通會特別注重軟實力:舉辦活動、專題分工...... 5.技術相關問題集: * 簡述 TCP 和 UDP 的差別並舉例應用 * dubug都怎麼做的,是否有使用過GDB * 不同開發版的組合語言編譯後可能會不同,有追過組合語言嗎,或是使用compiler的經驗 * race condition 跟 OSI 網路模型 * 用C語言寫 Linked List 裡面 node 的 struct * Linked List 實現 MergeSort * Binary search tree ### 面試 🧔:妳好,歡迎妳來我們公司參加面試,可以介紹一下你在校時期的專題嗎? 👶:你好,我的專題名稱是自組織網路及影像辨識應用於山區救援,目的是讓需要幫忙的人可以在沒有訊號的山區透過此架構進行求援。主要功能是透過MQTT在Raspberry Pi之間傳遞求助訊息及座標,等待無人機巡航後將訊息帶到有外網的地方,並且我們架設了一個網站負責展示訊息以及在地圖上標註求救座標。 🧔: 想請問一下你中間遇到的困難以及你負責的項目 👶:因為是進行實體的應用,我們針對整體的架構及可行性進行了多次調整,也有去拜訪中壢消防局的救難隊進行實體訪問,來確認作品是否不合理的部分,而在這之中我主要負責的項目是完成Raspberry Pi之間的聯繫如MQTT訊息的接收及轉發、透過RTMP進行影片推拉流及轉推流。 🧔:你有提到你對網路相關知識有興趣,那請問妳什麼是 TCP/UDP? 👶:他們是在網際網路上的公開基本傳輸協定。 🧔:好,那再請妳說明兩者的區別,最好有實際應用的例子 👶:TCP 是可靠性傳輸,它可以確保資料傳輸的完整性,但這就會造成傳輸速率相較 UDP 較為低下,應用在需要確保完整性的資料傳輸,例如文件或電子郵件;那 UDP 就是不可靠性傳輸,雖然傳輸效率比較高,但不能保證確保資料傳輸的完整性,以速率為第一優先,例如直播影片傳輸。 🧔:再來我想幫同事們了解一下你的程式開發風格及能力,麻煩完成一個程式,給你一組羅馬數字如IV、XL、IX,將其轉為十進制的數字。 👶: ``` class Solution { public: int romanToInt(string s) { unordered_map<char, int> romanMap = { {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000} }; int total = 0; for (int i = 0; i < s.length(); ++i) { if (i < s.length() - 1 && romanMap[s[i]] < romanMap[s[i + 1]]) { total -= romanMap[s[i]]; } else { total += romanMap[s[i]]; } } return total; } }; ``` 🧔:好,我們今天的面試就到此為止,感謝妳的參與。 👶:非常謝謝您。 ## 參考資料 * https://www.dcard.tw/f/tech_job/p/255721024 * https://www.dcard.tw/f/tech_job/p/257124987 * https://www.dcard.tw/f/tech_job/p/254929546 * https://www.ptt.cc/bbs/Tech_Job/M.1624807427.A.A08.html * https://www.ptt.cc/bbs/Tech_Job/M.1631153176.A.E2D.html * https://www.ptt.cc/bbs/Tech_Job/M.1602254062.A.C2C.html