--- tags: INFO2022 --- # 2022-11-29 課堂問答簡記 ## [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. ## 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) ![](https://hackmd.io/_uploads/HyfqJo7Di.png =70%x) B+ Trees 將所有資料(Data)存在 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+樹](https://ithelp.ithome.com.tw/articles/10221111) ## 模擬面試 ## 校友經驗分享問答: [champ](https://www.linkedin.com/in/champ-tzu-hung-yen-4370a92/) ### 分享 * [網路黑貓 BlackCat on Net / Champ Yen(學長的 Blog)](https://champyen.blogspot.com/) * Email: champ.yen@gmail.com * 歡迎來訊 * 來訊時請附上自介、問題和目前的想法 * The World changes faster than you feel/ think. * Learn the key * Learn the fundamental of the industry * **進入職場很容易有「精神時光屋」的感受** * 因為公司的 Tech Stack|客戶的需求|產業限制的問題 * 很容易一招用幾年 > 要保持良好的學習心態、打好基礎 * **Business of companies** 1. **Software** * Microsoft Office, EDA tool 2. **Service** * Google (Google map, translate, etc.) 3. **Device Manufacturing / Branding** * Apple (IPhone, Ipad) 4. **Solution provider** * system integration (研華、緯創、凌群) 5. **IC/ Chip vendors** * **找工作的心法** * 我適合不這份工作 * 上司、Work Life balance、工作環境 * 工作不是 RPG * 堅持到底並不是美德 * 選擇比努力有時更重要 * 評估產業的發展、局限、風險和機會 * 定期反省自己在行業的定位 * WHO * WHAT * WHEN * WHERE * WHICH * 不停的修正 / 檢討 / 反思自己的狀態 * **Don't stop thinking** * **You always have choices.** ### QA * 作為成大資訊系第一屆畢業生,學長在資訊科技產業遇到校友的機會多嗎?成大校友大概去哪些公司服務居多? * 成大校友很多 (尤其電機系) * 公司的等級影響校友的組成 * 學長長期投入多媒體相關資訊系統的開發工作,可否說明這裡頭的技術難度,以及該做哪些準備才得以入行? * 選定方向: Codec/Audio coding/Camera * 角色: 演算法/實作/系統整合 * 從 2007 年投身於資訊科技產業以來,學長待過手機品牌公司、IC 設計公司、獨立軟體開發公司,電子設計自動化 (EDA) 開發公司,到現在的 Google,涵蓋的範疇相當廣,學長也熱心在大學講課分享所見所聞,能否推薦幾項值得學弟妹長期投入的專業領域? * 每個領域都很適合,看個人目的 * 如:薪資收入、Hire opportunity、發展潛力 * 在大家看到 DeepMind 成功前,當中重要的推手[黃士傑](https://zh.m.wikipedia.org/zh-tw/%E9%BB%83%E5%A3%AB%E5%82%91)深耕了相關領域 10 多年。 * 熱門如 blockchain, web3,在這一年裡也倒了不少 * What's [典範轉移](https://zh.wikipedia.org/wiki/%E5%85%B8%E7%AF%84%E8%BD%89%E7%A7%BB)( Paradigm shift) * 本土公司 vs. 外商的求職準備和入職調適 * 外商: 明確 hiring criteria、與面試官是否對盤、英文聽/說能力 * 本土: 業務導向、追求即戰力 * 對於在台灣讀研究所的看法,是否建議讀本土博士? * 鼓勵讀研究所 * 如何做學問、知識正確性的驗證、抱持懷疑 * 讀博士班適合對特定領域有既定想法者 * 讀博士班 ~= 消耗職涯的機會成本 * 學長有沒有曾經想要運用自己的專業創立自己的事業? * 目前沒有 * 由於經濟背景不好,每天的時間和專注力也有限,在職涯選擇和資源分配上,要如何取捨"讓家人多餓幾年,學難學但有價值的"和"先學能快速上手的先賺錢",或是有沒有更適合的混合策略 * 視乎你的工作目的是甚麼? * 在職涯中不完全有「鐵飯碗」的可能 * 都是在消耗機會成本、考驗承擔風險的能力 * 學長您好,您的工作經驗豐富;想請問一下每次離職的時間點和原因方便分享嗎?(舉一個例子就好) * 覺察出產業發展和趨勢 * 技術學習的考量 * 經濟考量(家庭) > 要平衡收入和興趣的取向 * 學長目前 Technical blog writing 的契機為何?如果 interviewee 有相關的作品會加分嗎?或會怎麼看待這類型的作品。 * 看主管(背景、資歷、出身) * 學長剛剛提到,比較推薦修基礎的課程或建立這方面的基礎,若之前沒有修過會建議留在學校修課嗎?或是先想辦法進去業界再學休 * 儘可能能在學校修課, 後續成本高, 時間與自律問題 * 可以請問學長接觸到或認知的FAE可能需要什麼能力或特質(技術、軟實力)? * FAE? FAE 主要是溝通與分析問題, 基本上技術需求並不高.