# 2024-11-05/12 問答簡記
## IC 設計市場
[Qualcomm's QCT (semiconductor) division outpowered QTL (licensing)](https://twitter.com/SKundojjala/status/1607385655000301569)
> 
雖然手機相關晶片業務仍有顯著成長,但 Qualcomm 手機業務營收出現趨緩,技術授權業務依然是 Qualcomm 目前重要營收來源。

依據 Qualcomm 在 2022 年第四季[財報](https://investor.qualcomm.com/),總營收同比增長 22% 至 113.9 億美元,調整後每股盈餘為 3.13 美元。公司已開始停止招聘,同時也準備在必要時刻降低營運支出。
2022 年第三季全球前十大 IC 設計業者營收依序為:
1. Qualcomm
2. Broadcom
3. NVIDIA
4. AMD
5. MediaTek
6. Marvell
7. Realtek
8. Novatek
9. [Cirrus Logic](https://www.cirrus.com/)
10. Will Semiconductor
> [來源](https://www.trendforce.com.tw/presscenter/news/20221215-11499.html)
[Cirrus Logic Completes Acquisition of Wolfson Microelectronics](https://investor.cirrus.com/news-and-events/investor-news/news-details/2014/Cirrus-Logic-Completes-Acquisition-of-Wolfson-Microelectronics/default.aspx)
Will Semiconductor (韋爾半導體) 來自中國資本,對照 [OmniVision Technologies](https://en.wikipedia.org/wiki/OmniVision_Technologies)
> 2018/2019: Will Semiconductor acquired OmniVision Technologies (for \$2.178 billion) and SuperPix Micro Technology, merging them to form Omnivision Group.
2023 年排名 (第一季) : [出處](https://www.trendforce.com/presscenter/news/20230620-11725.html)
1. Qualcomm 7,962 23.5%
2. Broadcom 6,908 20.4%
3. Nvidia 6,732 19.9%
4. AMD 5,353 15.8%
5. MediaTek 3,147 9.3%
6. Marvell 1,354 4%
7. Novatek 791 2.3%
8. Realtek 646 1.9%
9. WillSemi 539 1.6%
10. MPS 451 1.3%
> MPS (芯源系統有限公司)
> [第二季全球前十大 IC 設計營收季增 12.5%](https://finance.technews.tw/2023/09/21/top10-ic-design-2023q2/)
$\to$ [Integrated circuit (IC) design companies revenue worldwide from 2017 to 2023, by quarter](https://www.statista.com/statistics/946425/worldwide-fabless-integrated-circuit-design-houses/)
- [ ] NVIDIA
* [NVIDIA 連續增資 200 億美元](https://www.storm.mg/lifestyle/4801185)
* [NVIDIA 的股價 10 年漲 7500%](https://wealth.businessweekly.com.tw/m/GArticle.aspx?id=ARTL006001024)
* NVIDIA 在以色列設有7座研發中心,僱用超過 3,000 名員工,佔NVIDIA 全球員工總數的 12%。
* NVIDIA 為強化資料中心事業,於 2019 年 3 月以 70 億美元購併以色列 IC 設計業者 Mellanox,該企業主要為資料中心伺服器、存儲系統提供端到端的互連解決方案和服務。 $\to$ [NVLINK](https://www.nvidia.com/zh-tw/design-visualization/nvlink-bridges/)
- [ ] Intel
* Intel 於以色列迦特鎮(Kiryat Gat)經營 2 座晶圓廠 Fab 18 和Fab 28 之外,也於 2023 年 6 月宣布第三座 Fab 38 的增設計畫,不過迦特鎮位於戰事爆發地點附近,考量當地職員安全,相關生產、建設計畫推延 $\to$ [Intel delays Fab 38](https://www.electronicsweekly.com/news/business/intel-delays-fab-38-2024-06/)
* Intel 於以色列生產十二代 Alder Lake、十三代 Raptor Lake 等處理器,及伺服器用處理器 Sapphire Rapids。
- [ ] Qualcomm
* 在海法有研發中心,2023 年 5 月購併以色列車用半導體企業 Autotalks,主要生產用於一般汽車和自駕車的車聯網(V2X)通訊晶片。
## 產業回顧
2023 年 TSMC 研發支出成長 11.8%,而鴻海與 Mediatek 的研發支出都下降,Intel 陷入困境。

[TSMC Tops Taiwan As Highest R&D Spender Among Locally Listed Manufacturers 2023](https://wccftech.com/tsmc-tops-taiwan-as-highest-rd-spender-in-2023/)
> Along with U.S. chip giant Intel and Korean conglomerate Samsung's chip manufacturing division, TSMC can produce and market chips under the N3 or 3-nanometer branding. This places its products at the top of the global semiconductor industry and also leads to TSMC's research costs being more than double that of Taiwan's second-largest R&D spender, MediaTek.
Intel 近期面臨重大挑戰,其地位已被剔除出道瓊工業指數成分股,取而代之的是 NVIDIA 的崛起。根據 2023 年的財報,Intel 的製造部門營運虧損高達 70 億美元,較前一年的 52 億美元進一步惡化。
執行長季辛格曾坦言,2024 年將是公司在晶片製造業務上面臨虧損最嚴重的一年,並預計到 2027 年才能達到損益平衡。若這樣的虧損情況持續,預估累計損失可能超過 120 億美元。政府資金發放的延遲對 Intel 來說更是雪上加霜,公司因此不得不積極尋求其他的財務支持。
知情人士透露,美國政府已默許併購計劃,可能涉及 Intel 的 IC 設計業務與 AMD 或 Marvell 等競爭對手進行合併。這種策略顯示出 Intel 正在試圖通過合作與整合來應對困境。
此外,Intel 在以色列的裁員計劃更是顯示其業務收縮的趨勢。這波裁員導致一些研發精英轉投 NVIDIA,且待遇有所提升。離開 Intel 加入 NVIDIA 的員工,總體薪酬,包括股票期權與獎金,比 Intel 的平均薪資高出 33%。
[VMware makes a splash: KVM instead of proprietary hypervisor](https://www.heise.de/en/news/VMware-makes-a-splash-KVM-instead-of-proprietary-hypervisor-10001742.html)
Broadcom 在 2022 年宣布收購雲端及虛擬化技術供應商 VMware 後,經歷一年半時間,終於獲取所有業務營運的當地政府同意,以 610 億美元成功完成收購。Intel 執行長基辛格,於 2021 年重返 Intel 之前,曾經擔任 VMware 執行長一職長達 9 年。
$\to$ [晶片業的併購狂Broadcom買下VMWare!過程、原因懶人包來了](https://www.bnext.com.tw/topic/view/645)
原本任職於 VMware 的知名軟體開發者、KDE/Qt 開發者 Zack Rusin 也因上述併購,成為 Broadcom 員工。根據 VMware 開發工程師 Zack Rusin 提交並公開於 Linux 核心郵件列表上的訊息:
> "In order for VMware products to switch to KVM on Linux, several changes are required to allow KVM to start or resume unmodified VMware guests"
$\to$ [KVM: Linux 虛擬化基礎建設](https://hackmd.io/@sysprog/linux-kvm)
Broadcom 嘗試以 Linux 核心的虛擬化技術為基礎,讓 VMware 產品能在 Linux 上切換到 KVM。與 VMware 的虛擬機器管理程式 (VMM) 不同,KVM 是開放原始碼軟體,從技術角度來看,Linux 使用者應該會樂見該變化。然而,這也意味著從長期來看,Broadcom 將能顯著降低其 Linux 版本虛擬化軟體的開發成本,尤其是在公司自收購以來已因有爭議的利潤最大化策略而受到批評的情況下。
$\to$ [AT&T claims VMware by Broadcom offered it a 1,050 percent price rise](https://www.theregister.com/2024/10/01/att_broadcom_filings_update/)
根據 Phoronix 的報導,VMware Workstation 預計將全面轉向 KVM 作為桌面虛擬化的基礎。據稱 Broadcom 也已確認此消息,目前尚未有關於轉換的具體時間表。然而,所有主要的 Linux 發行版必須首先採納必要的更改。VMware Workstation Pro 自 2024 年 5 月以來對於終端使用者是免費的,而企業客戶則仍需購買授權。Rusin 的公告僅提及在 Linux 環境下的 VMware 產品,因此目前尚不清楚 Broadcom 是否計劃對其軟體產品組合進行更深入的技術變革。
此次 Broadcom 主導 VMware 技術轉型至 KVM,不僅是降低開發成本的舉措,更是意味著對於開放原始碼生態系統的更多依賴。但另一方面,也引發了社群對於開源資源被大型企業利用卻未獲足夠回饋的擔憂。
## 人工智慧和線上教育
[Coursera Announces Layoffs, Stock Plunges Despite $100M Milestone](https://www.classcentral.com/report/cousera-layoffs-2024/)

Coursera 由於下修未來的營收預測,導致股價在單日內重挫 20%。值得注意的是,Coursera 並未公佈詳細的成本結構,但過去一個月中裁員數百人(約佔總員工數的 10%) 的舉措顯示,[公司未實現盈利](https://s27.q4cdn.com/928340662/files/doc_financials/2024/q3/COUR_Financial-Tables_Q3-2024.pdf)。Coursera 早在 2022 年就進行過大規模裁員,近期再次裁員,反映出即使是面向全球市場的 Coursera 也面臨嚴峻的經營挑戰,更不用說那些面向較小區域市場的數位學習平台。
此外,Udemy 在不久前也宣布裁員,規模達到 20%,約影響 300 位員工。數位學習的發展受到人工智慧技術影響,後者的興起讓人們能以更快速的方式獲取知識,並利用這些工具來規劃和學習新的內容,有人認為這樣的學習方式能幫助人們達到 70% 到 80% 的掌握程度,間接降低人們使用 Coursera 等數位平台進行學習的意願。
然而,這類平台的優勢在於它們提供較完整的系統性知識和學習認證,這在求職和專業進修中仍然具有相當的價值。相比於一般網際網路媒體內容,Coursera 等數位平台憑藉其知名度和教育認證所帶來的信譽度,依然能為使用者帶來顯著的競爭優勢。
## 用數學賺錢
> [如何將高頻交易從股市帶進加密貨幣?](https://youtu.be/2E7F9PqPuBw)
* 美國知名財經作家 Michael Lewis 幾年前寫過一本講華爾街高頻交易員的故事,書名是 [Flash Boys](https://en.wikipedia.org/wiki/Flash_Boys) (中文翻譯《快閃大對決:一場華爾街起義》,由早安財經出版)
* 他們利用演算法設定交易條件,鎖定研究好的股票,再來就是透過高速網路傳輸,爭取哪怕是比別人快百萬分之一秒的時間提前下單完成交易。為了網速夠快,甚至不惜花千萬到上億美金,鏟平ㄧ座會讓線路得繞過去的小山坡或建築,就為了把光纖拉直,爭取速度快幾奈秒。
* 這群 flash boys 和股票高頻交易的概念,四年前被台灣ㄧ家新創應用到加密貨幣交易上,ㄧ樣用人工智慧協助演算、ㄧ樣透過累積大量交易達到機率上設定的穫利,但是不用拉光纖,而是在雲端業者的機房當中進行。這類似ㄧ種降維打擊,把股市已成熟的操作用在相比交易量小很多的加密貨幣交易上,也創造一個時間差的機會窗口。
## [System Design Course](https://github.com/karanpratapsingh/system-design)
> System design helps us define a solution that meets the business requirements. It is one of the earliest decisions we can make when building a system. Often it is essential to think from a high level as these decisions are very difficult to correct later. It also makes it easier to reason about and manage architectural changes as the system evolves.
* [圖解電腦技術用語和概念](https://github.com/xiaolincoder/CS-Base)
* [略懂系統設計面試](https://youtu.be/Y93BGebBwEE)
* [刷題面試:資料結構、演算法之概念與準備方向](https://youtu.be/sAjkAz75jis)
AWS: [tixCraft 案例研究](https://aws.amazon.com/tw/solutions/case-studies/tixcraft/)
## Content Delivery Network (CDN)
[the benefits of CDN](https://twitter.com/alexxubyte/status/1597635214565466112), including:
- Improving latency
- Reducing bandwidth
- Increasing content availability
- DDoS protection
## B+ Trees Implement in SQL
以下圖例以 5-way 為例(一棵樹的每個節點的度數小於等於 5)

B+ Trees 將所有資料存在 leaf node 上,leaf node 之外的 node 只會儲存 key 供索引,且每個 leaf node 會直接接到下一個 leaf node,可以利用類似 Binary Search Tree 的方式去搜尋目標值。
因為 B+ 將 leaf node 串接,所以可以僅一次的搜尋就做到範圍查詢,以上圖為例,要搜尋 key 介於 5~16 之間的 Data,僅需搜尋下限 key = 5,並利用 leaf node 之間的 pointer 就可以將 5, 6, 7, 9, 12, 16 這些目標找出。
對於硬碟來說,每個區塊大小固定,且 B+ Tree 的非葉節點只須儲存指標(Key),當 Data 所需空間很大時並不影響非葉節點,所以可增加(相較於 B Tree)每個 node 的指標數量,以減少 I/O 次數,因此被應用在 MySQL 的 InnoDB 中。
延伸閱讀: [資料庫層的核心 - 索引結構演化論 B+ Tree](https://ithelp.ithome.com.tw/articles/10221111)
---
## 第一線公司的面試實戰
> [2024 面試經驗分享](https://hackmd.io/@henrybear327/By_3lrLbkg)
> 不廢話,直接看最新題目
LinkedIn: [Chun-Hung (Henry) Tseng](https://www.linkedin.com/in/chun-hung-tseng/)
> 鳳梨田大學部畢業 $\to$ ProtonMail 工作 $\to$ 洛桑聯邦理工學院(EPFL,世界頂尖大學之一) 碩士進修 $\to$ Meta 實習 $\to$ 在 Oracle 寫碩論 $\to$ 瑞士電信
2021 / 2022 年面試 Meta
* [interview 1](https://hackmd.io/@sysprog/H1nYA5ob6)
* [interview 2](https://hackmd.io/@sysprog/BkCVkjsW6)
- 刷題不用硬刷 hard $\to$ 不要走火入魔,重點是掌握基本實作穩定度(掌握基本的資料結構、演算法、複雜度等等)並且懂得應對跟要 hint
- 穩定度的意思很單純,能把想的流程 bug-free 的寫完就很棒了(上機考智商降 50% 是常態,所以平常練習時就需要點壓力 e.g. 參加週賽等等)
- **不要 self-reject,讓 HR 來 reject 你**
- 刷題不是唯一解:大公司可能考你刷題,但是在我自己的經驗裡是少數。大多公司是會問你 CS 背景常識知識的!
- 面試 Swisscom, Oracle, Taurus 時,公司主管都沒有考刷題,都直接問 OS, Networking 等等基礎知識
實習
- Meta
- Oracle (碩論在這裡寫的)
- 其實有些大公司會有 research center 可申請去做實習(去了才知道不少學校也是強迫實習 e.g., University of Waterloo),所以有些公司會有這種研究型實習缺
寫履歷
- **提早整理自己的履歷 $\to$ 誠實面對自己**的無知與空洞履歷 $\to$ 從生活中 / Jserv 的課程中尋找 side project (有目標地找 才會有動力做)$\to$ 增強現實世界的實作能力而非只會寫小程式
* 如何挑選 open source project $\to$ 不要太有功利性目的去做貢獻,這樣你會做不久
- 從自己生活需求出發
- 因為自己想要有可用的國外 IP 地址,而著手研究如何做 multi-hop VPN
- [Rclone](https://rclone.org/): 基於我自己用 ProtonDrive 但是公司遲遲不 release Mac/Linux client,本來想自己寫 FUSE 但是後來發現 rclone 是個更好的開源專案可以擴充,就開始閱讀原始碼,並且實作 $\to$ 成為 maintainer
- Jserv 上課專題 $\to$ 很多專案做下去都可以學到一大把知識。
- CPU Scheduler 書籍 $\to$ 從[期末專題](https://hackmd.io/@sysprog/linux2024-showcase)出發,著手研究 CFS (Linux task 的設計,還有 RB-Tree 等等基本資料結構) $\to$ 第一次碰大型 codebase 並且進行改進 $\to$ Linux Kernel patch 沒有離你想像中遙遠(不用好高騖遠,一步一腳印慢慢走)
- 這些專案在面試時有被問到幾次 $\to$ 凡走過必留下痕跡(你的個人特色)
- 多方嘗試,注意時間安排
兵役
- 直接當兵。運氣好直接無縫回台灣當兵
- 當年兵役只有 4 個月 (今年大一的學生剛好遇上兵役制度的改變)。基本上若跟公司溝通好,公司通常願意等待,畢竟找人的成本很高。找到工作時才五月,但十月才入職,某種程度上來說,不就跟等我當兵一樣嗎?
到國外陌生的環境生活會不會不適應?
- 願意離開你的舒適圈就是 good first step!當你真的出來之後,會因為你解決了生活的各種困難,而越來越有成就感。
- 多多認識朋友,尤其如果是在學校的話,大家都是同路人,可抱團取暖!如果是工作,就嘗試融入當地生活!畢竟出國不就是要長見識、體驗不同的事情嗎?
怎麼分配刷題和做 side project 的時間的?
- 刷題不是短線任務,而要像吃飯一樣要走長線每天做。面試 Meta 時,沒有特別刷題就直接上(因為期末考也沒空另外準備),所以吃的就是平常每天每天累積的老本。刷題不求多,而是求精。主題式的針對自己弱點去練習,每天都寫個幾題,一年也會有一千多題,對吧?
- Side project 我都是下班做,如果你挑得好的話,有機會會讓你走火入魔,不小心天天通宵研究。
提問清單:
1. 想請問leetcode當時大概準備到的程度是幾題?或者大概掌握度為何?
> 我大概是一天 10 題 easy 熱身了一週(其實我沒有遇到過 leetcode hard 的題目,所以我都不刷 hard,除非他是經典題, e.g. merge intervals 這種),後來就是針對題型 (https://leetcode.com/studyplan/top-interview-150/) 練習了。
> 前後大概就是 150-200 題,畢竟我大概就是抓一個月的時間去練習。
> 掌握度我覺得就是 top 150 那邊有分類的大主題, e.g. 2 pointer 等等,都可以穩定 1AC 就好了,我也就是準備到差不多那個程度。
2. 面試時,寫完程式後跟interviewer聊天是在聊什麼?
> 我通常就是問 interviewer 在做什麼,了解一下產品或是團隊的工作模式啊之類的。畢竟 Google 這種公司閒聊也大概沒改變你面試結果。
> 但是我面試 coder 這種新創的話,我就會花很多時間認真聊團隊文化等議題。可以參考這個 https://github.com/NeroCube/reverse-interview-zh-tw
3. 跨國找工作會遇到什麼樣的問題?需要簽證會是找工作時被拒絕的原因嗎?
> 跨國找工作,會打敗你的只有簽證,不是語言更不是能力。
> 願意辦簽證的公司要靠廣撒網去找,但是肯定是有的(就是因為如此,我第一次找實習才會投 100 中 1)!
> 通常,只要願意給你面試機會的公司(尤其是新創),都會願意幫你辦簽證。畢竟,都花時間面試你了,單純玩玩的我自己是沒遇過。
> 美簽比較特別,他是抽籤,其他國家我知道的都是申請制。
4. 想請問學長認為先去工作再來讀研究所的優缺,以及您是否推薦這種方式?
> 我覺得這個要看你的動機強不強,畢竟,有工作後要辭職去讀書,是很大的機會成本。
> 我明確知道我直接去讀碩士,我並沒有明確想要做的領域,所以就決定要在工作中探索。
> 一路上做了開源專案,也遇到了jserv老師的課程,我才確立要走系統相關的路。但是我相信,如果你有真的花時間探索下去,你肯定也會遇到一些事情跟轉機,而發現你的真實興趣!
> 我先工作有另一個原因是我想自己存錢去讀書,這樣我覺得自己比較自由,而且讀書時找實習,會比其他人容易很多,因為你有工作經驗。
5. 想詢問面試資料結構或者演算法的題目與實際在工作上的需求中,會有什麼差異?或者在演算法與資料結構的熟悉程度要到多少?以及工作中常遇到什麼狀況
> 我覺得刷題帶給你的跟 ICPC 這種比賽一樣,是你會熟悉一個程式語言的各種眉目,也會對於自己實作穩定度有把握。
> 舉個簡單例子,meeting scheduling 的概念很簡單,要實作到 bug free 很難。我自己工作寫 calendar event 的 UI layout 就用到類似概念。我可以很有把握的一次就寫對,也可以是寫了很多次一直被 QA 測出 bug 要回頭去改。刷題可能可以帶給你工作上的好處,就是這種實作穩定度,但是過度熱衷刷題我得就不一定有效果了,畢竟我覺得刷題可以提供的實作穩定度,到一個題數之後就持平了
6. 面試時會讓你compile並執行嗎
> 都是肉眼看而已,所以要很熟悉!
7. 想請問如果一題寫不出來就直接涼涼了嗎
> 溝通很重要!其實我也不是每一場都 optimal solution (臉書 2022 年的第一題我甚至只有暴力解,但是還是上了)
> 所以你明確表達出你的想法,實作方向等等,即使因為時間不足或是卡關,都還是有機會的!
8. 在fb拼手速的面試,會要一直講話嗎
> 我自己是實作前確認一些assumption,跟實作後推sample IO有講到話,中間話就很少,因為也沒啥機會follow up
> 所以簡單來說,就是沒啥話好說XD
9. 學長好, 我想找韌體的缺, 目前leetcode都用c寫, 許多題目寫的很痛苦,例如dfs,dp; 想問學長, 我需要也用cpp去刷這些題目嗎, 在網路上看到的IC廠問的多半都是linked list, pointer, address的題目和實作經驗而已, 謝謝學長。
> 如果不是面試 Google / Meta 這種刷題大廠,我覺得還是要看你目標公司的常用語言去準備。linked list, pointer, address 這些其實也都是基本功,所以準備起來放也是好的(我面試 Oracle 考了 lock 的 signaling 機制)!
> 我自己面試其他地方最長用的是 Golang 畢竟我做 DevOps Tools。
---
[無所不在的 Arm](https://hackmd.io/@sysprog/arm-intro)
[關於簡歷](https://www.facebook.com/felix.hong/posts/pfbid02hEd1KvnbFNBFzQhbNeVCCNaSNvRoKgU3NGEv1VpjPtGxk4YGN9BGq9cn6nWHh6xMl)
[2024 年「資訊科技產業專案設計」學員作業清單](https://hackmd.io/@sysprog/rJmM-nhbkx)
> 歡愉令使-Hanabi / 咖哩-Carlie
> [網格交易](https://www.atfx.com/zh-hant/analysis/trading-strategies/what-is-grid-trading-how-does-it-work)
> [停損](https://medium.com/trading-mind/%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90%E5%81%9C%E6%90%8D%E7%90%86%E8%AB%96-edc74cb5a063)
> [結合神經網路與簡化群體演算法建構彈性網格交易模型](https://hdl.handle.net/11296/9svgj9)
---
## 第一線公司的面試實戰
> [Andy (Tao) Chiu](https://www.linkedin.com/in/taochiu/)
> 中央大學碩士 $\to$ Synology $\to$ SiFive (成為 Linux 核心貢獻者) $\to$ Google
在 Linux 核心原始程式碼執行以下命令:
```
$ git log | grep "Author: Andy Chiu" | wc -l
```
52+ 項貢獻!
簡歷
面試過程
工作轉換之間的考量
Q:想請問剛剛聽到學長分享從第一份工作轉到第二份工作領域是跨蠻大的,所以是在下班多做案子放簡歷嗎?
Q:想請問多項貢獻裡,是如何發現 kernel 問題的?
Q:剛剛聽起來是先進公司才開始貢獻linux kernel,那第一份工作是拿什麼去面試的?
> 去修課,修有project的課
Q:想問一下在修改kernel code的時候,有沒有什麼深刻的困難點,以及在commit開pr的時候是怎麼去驗證是否會影響到其他code?(怕其他人的會壞掉)