--- title: 2023 年資訊科技產業專案設計課程作業 4 tags: INFO2023 --- # 2023 年「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2023)」課程第 4 次作業 ## 作業目標 1. 模擬面試 2. 實際應對 3. 自詡成為 FAANG/MAMAA 工程師 ## 作業要求 1. 詳細觀看 [模擬面試練習平台 Pramp](https://youtu.be/jBUhZaeo68o),註冊 [Pramp](https://www.pramp.com/) (或類似的平台) 以熟悉 mock interview 的流程 2. 從[學員作業清單](https://hackmd.io/@sysprog/Hy_KN9sJT)裡頭標示為 "Revised" 的超連結中,挑出自己在[第 2 次作業](https://hackmd.io/@sysprog/info2023-homework2)中尚未批評過的 2 位 (或更多位) 學員,指出表現值得稱許和可改進之處,注意:連 interviewer 也要檢討,==直接更新在「[作業區](https://hackmd.io/@sysprog/Hy_KN9sJT)」的共筆中== 並依循以下規範 (公開可見) * 在其他學員的檢討基礎上,繼續討論,記得提及優點和可改進之處 * 指出改進之處時,應當說明該怎麼做/說會更好,或者原本的表達有什麼疑慮。比照[檢討講解](https://youtu.be/syVqBirDP-c) / [案例 1](https://hackmd.io/@sysprog/HkZz-qezj) / [案例 2](https://hackmd.io/@sysprog/H1b25Kxzs),將原本的描述轉換為不同的應用案例,將你的想法記錄在學員的檢討筆記中,避免==只講心法==,而該直接==給予作法==,也就是你認為題目可如何變更、幾分幾秒該/不該講什麼,原本的程式碼和展現方式要如何改等等。 > 具體幫助 interviewer/interviewee 改進面試過程才有檢討的效果 * 注意[科技術語的發音](https://github.com/shimohq/chinese-programmer-wrong-pronunciation),針對模擬面試的檢討,應採取[台灣的科技用語](https://hackmd.io/@sysprog/it-vocabulary) 3. 以 FAANG (Meta/Facebook, Amazon, Apple, Netflix, and Google) 或 [MAMAA](https://www.cnbc.com/2021/10/29/cramer-new-acronym-to-replace-faang-after-facebook-name-change-to-meta.html) (Meta, Alphabet, Microsoft, Amazon and Apple) 的工程師面試風格,搭配[第 1](https://hackmd.io/@sysprog/info2023-homework1)和[第 2](https://hackmd.io/@sysprog/info2023-homework2)作業的提醒,聯絡助教發信所告知的配對夥伴 (若你在 11 月 24 日中午前,沒收到這樣的信件且前三份作業沒做,應該及早補上,然後聯繫授課教師和助教以配對),進行 mock interview,以==英語==進行雙方的 coding interview * 改寫[學員作業清單](https://hackmd.io/@sysprog/Hy_KN9sJT)出現過的 LeetCode 題目,當自己扮演 interviewer 角色時,用來跟 interviewee 互動 * 過程應錄影,事後也要剪輯影片 (可與配對的學員分工),預期產出可見 [mock interview on Pramp 202007](https://youtu.be/v3HVwxwbbeg) 和 [菜雞Newbie: Homework4](https://youtu.be/N0h_ZnAzJ9U),儘量多練習,practice makes perfect! * 每個學員應該體驗 interviewer 和 interviewee 這二個身份,並揣摩 FAANG/MAMAA 的面試風格 * 適度剪輯影片,要能在影片看出 interviewer 和 interviewee * 注意題目和程式碼的字體大小,調整到即便影片解析度降為 720p 時,依舊清晰可見 * 善用 [codeshare](https://codeshare.io/) 一類的工具進行 interview * 程式語言偏好為 C 或 C++ (本課程假設所有學員至少能掌握其一),若與你配對的學員也熟悉 Python 或 Java,則可用後二種程式語言 * 總共至少 2 題,都該有延伸問題和充分討論 5. 以 HackMD 紀錄上述模擬面試過程的討論、程式碼、改進方案,和檢討自己整學期的表現,HackMD 的筆記應該設定權限為「允許已登入者可編輯」,標註自己的暱稱 * 範例: [linked list](https://hackmd.io/@sysprog/info2021-linked-list) ## 一般注意事項 ### Interviewer - 給予 interviewee 適量的題目說明 - 足夠讓 interviewee 理解題目 - 但有許多細節希望 interviewee 自己透過提問問出來 - 在 interviewee 卡住時給予引導和提示 - 也要注意是否過度引導,在真實面試中也許不會有這麼多引導 ### Interviewee - 盡量避免雙方同時沉默的情況 - Apply Think out loud: 有成功的把自己在思考的部分講出來 - 有把所有細節想好才開始實作 - 應加強實作後的測試部分 - 加強英文口說流暢度 - 解釋想法精簡扼要,只講重點 - 需多考慮 edge case - 若題目有 complexity 限制,在解釋 approach 時也該提到為何會滿足限制 - 提出改進方法後不要馬上實作,要先和 interviewer 討論 - 嚴謹的測試很花時間,但又不應該花太多時間在測試,重點應在 problem solving 能力,要注意 test 的重要程度跟解題之間的平衡 - 程式實作邏輯若有誤,但 interviewer 並未提出,也許該自己點出來 - 有模組化自己的解答 - 實作時可以詢問 interviewer 能否略過瑣碎不重要細節 ## 影片上傳流程 1. 學員製作影片並上傳到自己的 YouTube 頻道,設定為「==不公開==」(注意: 不是「私人」); * 影片標題為 ==暱稱中文-暱稱英文: Homework4== * 影片說明則加註 [LeetCode](https://leetcode.com/) 的題目號碼及相關資訊的超連結,並標注自己和跟你 mock interview 的夥伴 (使用暱稱) * 可適度後製影片,加上說明文字或部分字幕 ## 繳交方式 1. 建立 HackMD 共筆,標題是「資訊科技產業專案設計課程作業 4」,權限設定為「所有人可閱讀」和「已登入者可編輯」,這樣授課教師才能進行後續討論 2. 依據上述規範,填寫 ==[第 4 次作業作答表單](https://docs.google.com/forms/d/e/1FAIpQLScjwHYJ_AEBe3RIGbT34Me3_SES1fvukqMzFML9vi8pG7I_7A/viewform)==,留意暱稱的中文/英文、YouTube 影片的超連結 (注意: 影片內容是==英語==),以及基本資料 (資料填寫不齊者,視同無效表單) ## 截止繳交時間 2023 年 12 月 17 日 23:59