---
title: 2022 年「資訊科技產業專案設計」第 3 次作業
tags: HW3
---
# [資訊科技產業專案設計課程](https://hackmd.io/@sysprog/info2022/https%3A%2F%2Fhackmd.io%2F%40sysprog%2FBJLSJ3ggi)作業 3
## [Kronos -- Algorithmic Trader](https://boards.greenhouse.io/kronosresearch/jobs/5116019003)
### 職務描述
* **Responsibilities**
1. Experience hands-on learning and have immediate exposure to seniors within the trading industry
1. Work with Senior Algorithmic Traders to assist and learn all facets of automated trading
1. Use systematic and analytical skills to anticipate problems and proactively formulate solutions
1. Build, code, and maintain tools for high-frequency quantitative trading strategies
1. Monitor and troubleshoot our proprietary software and trading infrastructure
1. Work closely with Researchers, Data Engineers, and Software Engineers on projects and other ad hoc requests
### 所需能力與自身衡量
* **Requirements**
1. 必須對加密貨幣/金融市場感興趣,但沒有任何先前經驗的要求
1. Linux環境下的Python編譯能力和經驗
1. 強大的解決問題能力、快速學習和應用想法的能力和意願
1. 能夠在快節奏的環境中在團隊中工作
1. 技術領域的學士、碩士或博士學位或相關行業經驗
1. 願意隨叫隨到遠距工作
* **符合能力**
1. 大學時一專為計量財務金融,對金融市場有概念
2. 會寫Python
3. 畢業後會取得資訊工程碩士學位
* **需精進能力**
1. 更加精進Python能力
2. 了解加密貨幣
### 面試
:::success
Code Test
---
* 2小時4Tasks
* 要熟悉sql,python pandas,及 python 演算法
* 大概leetcode easy-hard 都有可能
:::
:::success
線上面試
---
* 兩位在職者來面試
* 一些經驗和演算法、機率、sql 操作的題目
:::
:::info
資訊來源:[面試經驗--演算交易員](https://www.goodjob.life/experiences/6304be1fda83e80012b8d2f3)
:::
## [Google -- Software Engineer, University Graduate, 2023](https://careers.google.com/jobs/results/125320247524631238-software-engineer-university-graduate-2023/?location=Taiwan&q=university%20graduate)
### 職務描述
* **About the job**
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
As a key member of a small and versatile team, you design, test, deploy and maintain software solutions.
Google is an engineering company at heart. We hire people with a broad set of technical skills who are ready to take on some of technology's greatest challenges and make an impact on users around the world. At Google, engineers not only revolutionize search, they routinely work on scalability and storage solutions, large-scale applications and entirely new platforms for developers around the world. From Google Ads to Chrome, Android to YouTube, social to local, Google engineers are changing the world one technological achievement after another.
* **Responsibilities**
1. Build our platforms, systems, and networking infrastructure using experience with distributed systems, OS/kernel, network system design, and large-scale storage systems.
1. Build internal systems used by Googlers globally.
1. Mitigate reliability failures in a component or system.
1. Create and support a productive and innovative team, including working with peers, managers, and teams.
### 所需能力與自身衡量
* **最低資格:**
1. 計算機科學、相關技術領域的學士學位或同等的實踐經驗。
1. 具有計算機科學、資料結構、演算法和軟體設計方面的經驗。
1. 具有通用編寫程式語言(例如 Java、JavaScript、Python、C/C++ 等)的軟體開發和coding經驗。
* **優先資格:**
1. 有 C、C++、Java 和/或 Python 編寫經驗。
2. 具有Unix/Linux或Windows環境、分散式系統、機器學習、資訊檢索、TCP/IP等方面的經驗。
* **符合能力**
1. 畢業時會有資訊工程碩士學位
2. 修習過資料結構、演算法、計算機結構、作業系統、機器學習等相關課程
3. 寫過C/C++、Python、JavaScript
* **需精進能力**
1. 熟練C/C++、Python、JavaScript,並學習Java
2. 多接觸學習分散式系統、資訊檢索、TCP/IP等
### 面試
> 沒有限定要用哪種語言
:::success
面試前(電話訪談)
---
* 過往經歷 & DSA 基本知識 (20min)
* 主要 focus 在一些 CS 領域的基本知識
* 十幾個關於演算法複雜度以及各種資料結構的問題
這個部分比較像是 recruiter 要確定 candidate 有一定的基礎程度,才會啟動面試流程,讓雙方不會浪費彼此的時間。
:::
:::success
virtual phone interview(coding x 1)
---
* 實作一個有特殊 function 的 stack
* 一開始的題目差不多是 medium 偏 easy
* 接著follow up要再額外加一個新的function,難度medium偏hard(double linked list + hash map -- >stack + map)
:::
:::success
virtual onsite interview(coding x 4 & behavioral x 1)
---
### 1. coding#1
* 台灣男生、全英文
* leetcode medium (graph)
* follow up 加一個限制 – graph 裡會有 cycle,加幾個判斷式即可
* 再follow up,假定 graph node 的狀態會有好幾種,有 hard 等級
---
### 2. coding#2
* 台灣女生、全英文
* leetcode medium ~ hard (tree)
---
### 3. coding#3
* 台灣男生、中文
* leetcode easy (matrix)
* follow up優化空間複雜度,約medium
* 時間有剩出新題目,medium ~ easy (system design 相關,用 hash map 完成)
* follow up加入一個 probability 相關的新功能,約 medium ~ hard,用 accumulate array + binary search 完成
---
### 4. coding#4
* 中國男生、中文
* leetcode 經典 medium 變形 (graph)
* 原本想用 stack 直接 iterative dfs 做這題,但面試官似乎有他的堅持,花了不少時間跟面試官討論 recursion 跟 iterative 孰優孰劣
---
### 5. behavioral
* 台灣男生、一開始是英文,面試者詢問後改為中文
* 問題主要 focus 在一些過往的經歷跟一些假設情況,人際之間一些情境的處理跟應對進退
* 可把 googleyness 稍微看一下,然後整理一下自己的思路
:::
:::success
其他流程
---
* 送HC
* team match(chrome OS 部門)
:::
:::info
資訊來源:[Google Software Engineer University Graduate 2022 面試心得](https://www.technice.com.tw/experience/12297/)
:::
## [Mediatek -- 2023校招/研發替代役/應屆預聘正職_軟韌體開發_ AI&Computing Platform](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120210823006?langKey=zh-TW)
### 職務描述
* **職缺說明**
資工/資管/電子/電機/電信/通訊/電控相關研究所背景,對行動通訊、無線及寛頻連結、家庭娛樂晶片解決方案有濃厚興趣的2023年應屆畢業生。 勇於表達意見,以團隊成功為目標,面對困難不輕易放棄,總是在想更好的做法,擁有創新及不斷學習的精神。 聯發科技邀請您,與全球最頂尖的菁英一同合作,彼此激盪最新的創意與解法,共同挑戰每一個不可能。
### 所需能力與自身衡量
* **職缺需求**
1. 具AI或機器學習(Reinforcement learning、Machine Learning、Deep Learning、NLP、Image Recognition, …etc)課程實作經驗
2. 或具資料探勘/資料科學/資料分析課程實作經驗
3. 熟悉Python / JavaScript / Java 語言
4. 具備解決問題的能力,及良好團隊合作與溝通能力
* **符合能力**
1. 有AI或機器學習課程實作經驗
2. 寫過Python、JavaScript
3. 具有良好溝通能力
* **需精進能力**
1. 可修習資料科學相關課程
2. 繼續精進Python、JavaScript,並學習Java
3. 多和同儕們合作專案等,學習合作
### 面試
> 註:以下為2022MTK一般校招流程
:::success
線上面試
---
### 1. ppt報告
* 約20-30分鐘
* 自我介紹、碩論、project
* 論文如果只有題目也沒關係,可以放在投影片裡簡單介紹一下
* 碩一這一年多少有做一些東西要放在投影片裡,跟主管介紹妳這一年做了什麼,否則沒東西問可能會問一些答不出來的業界問題
---
### 2. 主管問報告問題
* 約30-50分鐘
* 大概70%針對報告問、30%問其他專業問題
---
### 3. Coding(看部門主管,有的不用)
* 分享螢幕Coding
* C/C++,約easy程度
* 可用自己的IDE
* 不需要測資也不用真的寫得很完整(include那些可以省掉
* 主要看你解題過程的想法跟coding style
---
### 4. 部門介紹跟QA
:::
:::info
資訊來源:
1. [聯發科2022校招面試 B205](https://www.dcard.tw/f/tech_job/p/237068267/b/205)
2. [聯發科2022校招面試 B233](https://www.dcard.tw/f/tech_job/p/237068267/b/233)
:::
> 疫情前有些面試會去聯發科考C語言
:::success
筆試
---
* 14題(C/C++), 包含填充題跟選擇與填充題 & 兩題上機考, 共50分鐘
* 選擇可參考Geeksforgeeks
* 上機可參考下列資訊來源3、4
:::
:::info
資訊來源:
1. [[請益] 發哥上機考準備](https://www.dcard.tw/f/tech_job/p/236515024)
2. [聯發科 面試心得分享](https://jaime-lin.medium.com/%E8%81%AF%E7%99%BC%E7%A7%91-%E9%9D%A2%E8%A9%A6%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-6ea005a8e9b9)
3. [聯發科 C語言測試題目](https://jaime-lin.medium.com/%E8%81%AF%E7%99%BC%E7%A7%91-c%E8%AA%9E%E8%A8%80%E6%B8%AC%E8%A9%A6%E9%A1%8C%E7%9B%AE-7097f09add02)
4. [發哥(聯發科)上機考題目整理](https://hackmd.io/@Rance/SkSJL_5gX)
:::
## 模擬面試
> 以MTK為例
>
> 😎:主持面試者 🙂:參加面試者
😎:你好,歡迎參加面試,請你先自我介紹
🙂:你好,我叫XXX,目前就讀國立成功大學資訊工程研究所一年級,大學時曾於課堂實作過車輛品牌辨識與圖像生成、語音情緒辨識的AI、機器學習相關project
🙂:專題則是做了步道旅讀探索系統與網站建置,寫過JavaScript
😎:這些都是你獨力完成的嗎?
🙂:專題是自己完成的,其他是分組作業,機器學習個人作業的部分做過股價預測、決策樹、Backpropagation、肺病影像偵測、Q-Learning等
😎:那你剛剛提到的品牌辨識是怎麼做的呢?
🙂:我們以resnet34為基底,用pytorch底下的cnn做training,並用 SGD optimizer 和 momentum 使其越過區域最小值找到更好的參數,並搭配Gradient Decent 自動調整模型 neuron 參數
😎:為什麼要選擇resnet34呢?
🙂:因為有別於其他 pretrained model 原先就可以在 car classification 上有一定準確率,resnet34 是一個專門設計來 train art image classification 的更基礎的 model
😎:你們對data有做什麼處理嗎?
🙂:我們將資料resize成要丟進model的大小、normalize RGB的數值,也透過random rotation﹑random flip去處理圖像,讓模型對不同狀況的圖像有一定的辨識能力
😎:那圖像生成的部分是做什麼然後怎麼做的呢?
🙂:是做汽車品牌的圖像生成,例如給定BMW,要畫出像BMW的車子,我們沒有使用pretrained model,然後用DCGAN實作,比較特別的是,訓練初期用 Adam optimizer 結果不是很理想,之後看了paper用Differentiable Augmentation的方法,利用更換顏色、大小、照片位置等改變照片的方式,使原先 dataset 使用效率大幅提升,也使在 generator 最後產出的圖片品質有大幅度成長
😎:剛剛提到你們的classification用的optimizer應該不是Adam吧?怎麼會想要換呢?
🙂:因為想說要換個做法做做看,而且Adam較為普遍,也保留了Momentum 對過去梯度的方向做梯度速度調整與做 learning rate 的調整,再加上 Adam 有做參數的”偏離校正”,使得每一次的學習率都會有個確定的範圍,會讓參數的更新較為平穩
😎:那你們在遇到結果不理想的時候有沒有試過換回原本的方法?
🙂:這部分沒有做耶
😎:好的了解,那這邊跟你介紹一下我們部門...(介紹)
.....
😎:好的那今天面試就到這邊,謝謝你
🙂:好的謝謝!
## 檢討
* 職缺描述的部分有點貼太多了,應該再精簡化
* Kronos的描述雖然官網是用英文,但為了方便自己日後加速看懂應該要改寫成中文的形式
* 這次查的過程發現有些網站是透過分享面試經驗來獲得更多別人的面試經驗,未來有面試經驗後應上去分享,以得到更多別人的經驗(ex. [GoodJob職場透明化運動](https://www.goodjob.life/)、[面試趣](https://interview.tw/))