作業目標
- 進行課程協作
- 練習 LeetCode
- 進行模擬面試
模擬面試範例
作業要求
- 觀摩「學員作業清單」,挑出你認為表現優異的學員數明,利用該 LeetCode 題目設計延伸問題 (follow-up),比照 Meta 和 Google 公司面試風格和難度,準備你作為 interviewer 所擬定的題目
- 以 FAANG (Meta/Facebook, Amazon, Apple, Netflix, and Google) 或 MAMAA (Meta, Alphabet, Microsoft, Amazon and Apple) 的工程師面試風格,搭配第 2 次作業的提醒,課程助教預計在 12 月 19 日之前逐一發信告知配對夥伴 (由授課教師和助教指定配對人選),進行 mock interview,以英語進行雙方的 coding interview。若你在 12 月 20 日中午前,沒收到這樣的信件,發信給課程助教,倘若你尚未進行第一次作業,應該及早補上並聯繫助教以配對。
- 改寫學員作業清單出現過的 LeetCode 題目,當自己扮演 interviewer 角色時,用來跟 interviewee 互動
- 過程應錄影,事後也要剪輯影片 (可與配對的學員分工),預期產出可見 mock interview on Pramp 202007 和 菜雞Newbie: Homework4,儘量多練習,practice makes perfect!
- 每個學員應該體驗 interviewer 和 interviewee 這二個身份,並揣摩 FAANG/MAMAA 的面試風格
- 適度剪輯影片,要能在影片看出 interviewer 和 interviewee
- 注意題目和程式碼的字體大小,調整到即便影片解析度降為 720p 時,依舊清晰可見
- 善用 codeshare 一類的工具進行 interview
- 程式語言偏好為 C 或 C++ (本課程假設所有學員至少能掌握其一),若與你配對的學員也熟悉 Python 或 Java,則可用後二種程式語言
- 總共至少 2 題,都該有延伸問題和充分討論
- 以 HackMD 紀錄上述模擬面試過程的討論、程式碼、改進方案,和檢討自己至今 (包含觀摩其他學員) 的表現,HackMD 的筆記應該設定權限為「允許已登入者可編輯」,標註自己的暱稱
一般注意事項
Interviewer
- 給予 interviewee 適量的題目說明
- 足夠讓 interviewee 理解題目
- 但保留部分關鍵細節,引導 interviewee 藉由提問以確立
- 在 interviewee 卡住時給予引導和提示
- 也要注意是否過度引導,在真實面試中也許不會有這麼多引導
Interviewee
- 盡量避免雙方同時沉默的情況
- Apply Think out loud: 成功將自己正在思考的部分講出
- 有把所有細節想好才開始實作
- 應加強實作後的測試部分
- 加強英文口說流暢度
- 解釋想法精簡扼要,只講重點
- 需多考慮 edge case
- 若題目有時間或空間複雜度的限制,在解釋 approach 時也該提到為何會滿足限制
- 提出改進方法後不要馬上實作,要先和 interviewer 討論
- 嚴謹的測試很花時間,但又不應該花太多時間在測試,重點應在 problem solving 能力,要注意 test 的重要程度跟解題之間的平衡
- 程式實作邏輯若有誤,但 interviewer 並未提出,也許該自己點出來
- 有模組化自己的解答
- 實作時,可詢問 interviewer,確認能否略過瑣碎的程式碼細節
影片上傳流程
學員製作影片並上傳到自己的 YouTube 頻道,設定為「不公開」(注意: 不是「私人」);
- 影片標題為 暱稱中文-暱稱英文: Homework4,其中暱稱指擔任 interviwer 者
- 影片說明則加註 LeetCode 的題目號碼及相關資訊的超連結,並標注自己和跟你 mock interview 的夥伴 (使用暱稱)
- 適度後製影片,加上說明文字或部分字幕
繳交方式
- 建立 HackMD 共筆,標題是 2024 年「資訊科技產業專案設計」課程作業 4,權限設定為「所有人可閱讀」和「已登入者可編輯」,這樣授課教師才能進行後續討論
- 依據上述規範,填寫 第 4 次作業作答表單,留意暱稱的中文/英文、YouTube 影片的超連結 (注意: 2 部影片),以及基本資料 (資料填寫不齊者,視同無效表單)
截止繳交時間
2025 年 1 月 12 日 23:59