該倉庫記錄了在國內(nèi)或海外如何準(zhǔn)備機(jī)器學(xué)習(xí)工程師和軟件工程師面試透揣,尤其海外與外企崗位确沸,潤(rùn)
申請(qǐng)崗位:軟件工程師-機(jī)器學(xué)習(xí)方向、機(jī)器學(xué)習(xí)工程師、數(shù)據(jù)科學(xué)家、應(yīng)用科學(xué)家
在線書籍
https://longxingtan.gitbook.io/ml-interview/
CS自學(xué)指南
- https://github.com/PKUFlyingPig/cs-self-learning
- https://github.com/conanhujinming/comments-for-awesome-courses
Leetcode
刷題策略
時(shí)間有限的前提下,精刷大于泛刷
- 階段1: 初步掌握考察的常見數(shù)據(jù)結(jié)構(gòu)和算法挽拂,尤其是常見類型的模版
- 階段2: 拿到問題,首先從解決問題角度入手骨饿,然后從模板中提供線索亏栈。模版的基礎(chǔ)上,不斷強(qiáng)化練習(xí)宏赘。按tag刷題
- 階段3: 真正融會(huì)貫通绒北,結(jié)合問題交流、復(fù)雜度分析察署、頭腦測(cè)試闷游,刷題量達(dá)到滿意要求
- 面試前,針對(duì)面試公司的tag或面經(jīng)進(jìn)行重點(diǎn)練習(xí)
面試
機(jī)器學(xué)習(xí)方向主要使用python贴汪,因此以python為刷題語言
- 先明確自己理解題意脐往,不明白的地方一定問清楚。通過寫幾個(gè)test case扳埂,確保涵蓋所有情況业簿。并確認(rèn)輸入輸出的類型和邊界
- 開始想人是如何做這個(gè)任務(wù)的。沒有思路時(shí)阳懂,想想更簡(jiǎn)單梅尤、數(shù)量更少時(shí)如何處理
- 轉(zhuǎn)化為代碼,用什么數(shù)據(jù)結(jié)構(gòu)岩调,什么算法巷燥。講思路的時(shí)候,一定說清楚為什么選擇這個(gè)數(shù)據(jù)結(jié)構(gòu)号枕,并結(jié)合有代表性的test case講
- 寫完代碼后缰揪,進(jìn)行test的過程
- 給出復(fù)雜度分析
參考
學(xué)習(xí)資料
基礎(chǔ)
- Introduction to Computer Science - Harvard CS50x
- Structure and Interpretation of Computer Programs - UC Berkeley CS 61A
- How to Design Programs
- 深入理解計(jì)算機(jī)系統(tǒng) - CSAPP
- The Art of Computer Programming - TAOCP
- 代碼大全
- UNIX 編程藝術(shù)
- 重構(gòu):改善既有代碼的設(shè)計(jì)
數(shù)據(jù)結(jié)構(gòu)和算法
操作系統(tǒng)
- Operating Systems and System Programming - UC Berkeley CS 162
- Operating System Engineering - MIT 6.828
- 編碼:隱匿在計(jì)算機(jī)軟硬件背后的語言
- 計(jì)算機(jī)系統(tǒng)要素
- 計(jì)算機(jī)組成與設(shè)計(jì)
- Operating Systems: Principles and Practice
- Operating Systems: Three Easy Pieces
- Operating System Concepts
Web開發(fā)與系統(tǒng)設(shè)計(jì)
分布式
- Distributed Systems - MIT 6.824
- Talent Plan | PingCAP University
- 數(shù)據(jù)密集型應(yīng)用系統(tǒng)設(shè)計(jì)
機(jī)器學(xué)習(xí)
- 常見模型的原理和局限
- 手寫基礎(chǔ)算法
- 寫實(shí)現(xiàn)兩層fully connected網(wǎng)絡(luò)
- 手寫CNN
- 手寫KNN
- 手寫K-means
- 手寫softmax的backpropagation
- 手寫AUC
- 手寫SGD
- 延伸
- 給一個(gè)LSTM network的結(jié)構(gòu),計(jì)算how many parameters
- convolution layer的output size怎么算? 寫出公式
- 設(shè)計(jì)一個(gè)sparse matrix (包括加減乘等運(yùn)算)
- 八股文
- 怎么解決nn的overfitting/underfitting
- 優(yōu)化器堕澄,如何選擇優(yōu)化器
- 數(shù)據(jù)收集
- 模型選擇
- 推薦邀跃,scale\abtesting\trouble shooting
System design
Reference
行為面試 Behavior question
面試考察的不單是技術(shù)能力,更是考察是否是未來值得合作的同事蛙紫。行為面試不可小覷拍屑,甚至更多時(shí)候軟實(shí)力都是更重要的能力,因此面試時(shí)有針對(duì)的準(zhǔn)備是非常非常有必要的坑傅。
基本態(tài)度
- 說話自信大氣僵驰,眼睛和肢體不要有多余的動(dòng)作,professional, 有Leader該有的樣子唁毒。而且不要我蒜茴,是你們的損失,有這種氣魄浆西,但不要因此傲氣
- 正常的面試官粉私,其實(shí)也就是我們身邊的人,是和我們談笑風(fēng)生的一樣近零,不要有負(fù)擔(dān)
- 注重記錄和錄音
- 注意面試官問題诺核,他想要的答案是什么,一些關(guān)鍵字是什么. 不會(huì)的問題久信,也把能想到和思考的呈現(xiàn)出來即可窖杀,relax
- 任何開放問題,LC或ML裙士,都從最簡(jiǎn)單開始
- 適當(dāng)掌握主動(dòng)入客,整體誠信
- 總是從大的框架入手講解,橫向多對(duì)比腿椎,縱向如何深入優(yōu)化
- 主要發(fā)offer之前表現(xiàn)出對(duì)加入公司濃濃的興趣
- 有些問題桌硫,可以多要點(diǎn)時(shí)間想想 不要亂說∷址蹋框架性思考鞍泉,分點(diǎn)闡述。不必著急回答
常見問題
背后都對(duì)應(yīng)著leadership principles
conflicts with manager/跟老板同事如何處理沖突肮帐,
challenging project
think differently
simple solution to solve a problem
tight deadline
怎么帶隊(duì)
怎么plan項(xiàng)目
advocate myself的經(jīng)歷
deal with 不配合的同事
怎么讓團(tuán)隊(duì)保持innovative
-
怎么說服別人同意你的意見
首先劃定幾個(gè)禁區(qū)咖驮,- 不要以自己的身份和地位去壓別人,而是擺事實(shí) 講道理
- 就事論事训枢,不要上升到人
- 意識(shí)到自己的錯(cuò)誤了 及時(shí)承認(rèn)
describe a situation where you decided to step in to help a friend/teammate
describe a situation where you explore a new area
怎么給一個(gè)完全沒有ML背景的客戶介紹相關(guān)技術(shù)概念
-
跳槽原因
- 提升技術(shù)深度和廣度
Project
- 里面的細(xì)節(jié)
- 是否有不足之處托修,怎么改善/或現(xiàn)在讓你重新來做,會(huì)如何改善
STAR
- situation
- task
- action
- results