Try   HackMD

2022-11-29 課堂問答簡記

System Design Course

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, including:

  • Improving latency
  • Reducing bandwidth
  • Increasing content availability
  • DDoS protection

B+ Trees Implement in SQL

以下圖例以 5-way 為例(一棵樹的每個節點的度數小於等於 5)

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

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 中。

模擬面試

校友經驗分享問答: champ

分享

  • 網路黑貓 BlackCat on Net / Champ Yen(學長的 Blog)
  • 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 成功前,當中重要的推手黃士傑深耕了相關領域 10 多年。
    • 熱門如 blockchain, web3,在這一年裡也倒了不少
    • What's 典範轉移( Paradigm shift)
  • 本土公司 vs. 外商的求職準備和入職調適
    • 外商: 明確 hiring criteria、與面試官是否對盤、英文聽/說能力
    • 本土: 業務導向、追求即戰力
  • 對於在台灣讀研究所的看法,是否建議讀本土博士?
    • 鼓勵讀研究所
      • 如何做學問、知識正確性的驗證、抱持懷疑
    • 讀博士班適合對特定領域有既定想法者
    • 讀博士班 ~= 消耗職涯的機會成本
  • 學長有沒有曾經想要運用自己的專業創立自己的事業?
    • 目前沒有
  • 由於經濟背景不好,每天的時間和專注力也有限,在職涯選擇和資源分配上,要如何取捨"讓家人多餓幾年,學難學但有價值的"和"先學能快速上手的先賺錢",或是有沒有更適合的混合策略
    • 視乎你的工作目的是甚麼?
    • 在職涯中不完全有「鐵飯碗」的可能
    • 都是在消耗機會成本、考驗承擔風險的能力
  • 學長您好,您的工作經驗豐富;想請問一下每次離職的時間點和原因方便分享嗎?(舉一個例子就好)
    • 覺察出產業發展和趨勢
    • 技術學習的考量
    • 經濟考量(家庭)

    要平衡收入和興趣的取向

  • 學長目前 Technical blog writing 的契機為何?如果 interviewee 有相關的作品會加分嗎?或會怎麼看待這類型的作品。
    • 看主管(背景、資歷、出身)
  • 學長剛剛提到,比較推薦修基礎的課程或建立這方面的基礎,若之前沒有修過會建議留在學校修課嗎?或是先想辦法進去業界再學休
    • 儘可能能在學校修課, 後續成本高, 時間與自律問題
  • 可以請問學長接觸到或認知的FAE可能需要什麼能力或特質(技術、軟實力)?
    • FAE? FAE 主要是溝通與分析問題, 基本上技術需求並不高.