[心得] 2022 台湾 ML 面试心得 (AMZN/GOOG)

楼主: peter850706 (qpalzm)   2022-06-07 11:13:57
嗨大家好,第一次在本版发心得文,希望可以对正在面试的各位有所帮助。
medium 好读版请看 https://reurl.cc/x9oARL
以下正文:
Background
在今年决定离开前公司后,就期许自己未来顺利找到工作的话,要记录自己的面试过程,
分享给有需要的人。很幸运能在两三个月内达到目标,所以我来还愿啦 XD。
我的上一份也是出社会的第一份工作是 Machine Learning Scientist,主要的工作内容
就是 ML 在医疗影像上的应用。我们去年达成通过 FDA 的里程碑,是很特别也很有成就
感的经验,有面试官跟我说他对于我这个经历印象很深刻 XD。因为对 ML 这块领域比较
熟悉也比较喜欢,所以这次找的工作都是偏 ML 相关的,没有纯 SDE 的。
Summary
Not getting job interviews
- Agoda
- AMD
- Atlassian
- Binance
- Datadog
- Microsoft
- Shopee
- WorldQuant
Interview opportunities
- Yahoo (电面后被拒)
- Qualcomm (offer get)
- Amazon (offer get)
- Google (final round 后被拒)
- QuantumBlack (婉拒 final round)
这次我把目标设定在有一定规模的外商,主要跟自己的经历和职涯规画有关,陆续投递了
超多间不同产业的公司,虽然收到很多无声卡跟拒绝信但也因此获得许多面试机会。多拿
到面试机会的好处就是能够从真实的面试了解自己还不足的地方,在下次的面试就能够表
现更好。个人认为这还蛮重要的,好几次的 mock interviews 都比不上一场真正的面试
,所以在丢履历时也要有技巧,尽量能够安排几场面试在自己最想要去的公司之前,比较
能够习惯面试的压力进而发挥出最好的自己。
Preparation
和大多数人一样,我也是透过 leetcode 大量刷题来累积解题的经验和直觉,先从经典
的 Blind 75 开始先练到能够看到题目就有想法,再来可以针对公司的高频题去做 (虽然
个人这次的面试经验觉得不太有用 XD),有空也可以参加 weekly contest,整个面试的
过程我写了三四百题左右。写题目的过程中通常我会给自己 10 分钟左右,如果没想法,
直接看讨论区会是最有效率的学习方式,不然真的会写到怀疑人生,然后会很想知道讨论
区的大神们 (对就是 lee215) 脑袋的结构是长怎样 XD。心态上我觉得不见得一定要追求
在有限的时间解出最佳解,如果可以当然很好,但重点放在能够跟面试官协作共同解决一
道问题会是更好的,因为大部分面试官想要看的是,如果这位面试者是我的同事,我有没
有办法和他沟通共事,解出问题反而是次要的。这里整理几个注意事项给大家参考:
- 和面试官沟通,确认双方对问题的理解有共识
- 了解input有没有一些可以利用的特性(如有排序过的array)以及output的格式
- 先叙述自己解题的大方向(如我想要用BFS/DFS解这道问题),取得面试官的认同
- 解题的过程可以加简单的注解
- 完成后记得设计测资验证程式码的正确性
- 主动分析时间空间复杂度
- 注意变量名称的前后一致性
- 解题的过程如果有卡住的情况,ask for hint!
ML 相关的准备我这次是以课堂会学到的基础知识为主,自己的专业领域因为平常都在碰
所以没有特别花时间复习,如果大家有针对 ML 面试的准备方法的资源也欢迎分享给我。
这里列了几个我觉得重要的主题:
- bias variance tradeoff
- linear/logistic regression
- L1/L2 regularization
- bagging/boosting/AdaBoost
- decision tree/random forest
- k-means/gaussian mixture model
- recall/precision/F-score
- ROC/AUC
- PCA
- SVM
- cross-validation
- convolution feature map size/receptive field
- ReLU/sigmoid/tanh/softmax
- SGD/Momentum/Adagrad/RMSprop/Adadelta/Adam
- dropout
- batch normalization
- binary cross entropy loss
- data augmentation
- image classification
- object detection
- RNN/LSTM/Transformer/BERT
Yahoo
Data Scientist / Research Engineer
1. Data Scientist Phone Interview
面试官是两位台湾的 data scientists,一开始就先考一题 coding,难度 easy,很久之
后刷了 leetcode 发现有几乎一模一样的 XD,但当时我卡了超久才勉强挤出一个解答,
后续问了几题 ML 相关的基础知识,也回答得普普通通。当下结束后就觉得完蛋了,一个
月后不意外地被拒了。
2. Research Engineer Phone Interview
Data scientist 被拒绝之后又被找去面了 research engineer,面试官是台湾的
hiring manager,问了一点工作经验跟介绍他们的团队,基本上就像是一个老前辈在聊聊
天而已 XD,结束的时候他说请我等一下 HR 的通知不过后续也没有消息了,个人猜测是
因为前一次经验被冷冻了。
Qualcomm
Computer Vision Engineer, Deep Learning
1. Online Coding Test (4 Coding Questions)
一开始 HR 主动联络说对于我现职的产业有落差太大的疑虑,后来是主管对我的履历有兴
趣决定给我这个机会。面试前 HR 寄了一个连结说要完成一个线上考,总共考了四题,三
题我觉得都算是 medium 偏 easy 的程度,跟 linked list, priority queue, quick
select 有关,leetcode 都有类似的题目,还有一题是考 C++,当下看到傻住因为我
C++ 都忘光光了 XD
2. First Round Virtual Interview
First round 是跟对我的履历有兴趣的主管聊,后来发现因为他是我研究所实验室的大学
长 XDD,整体面试的过程很开心,他很仔细地问了我的 publications 还有偏实务上的
ML design,并带我过一次 online coding,询问我的解题思路,然后看到我 C++ 那题笑
著跟我说你 C++ 很不熟齁 XDD,最后他给我很好的 feedback 说会帮我 move 到 final
round,只是我如果确定入职后需要加强 C++ 的部分。
3. Final Round Virtual Interview (Presentation + 4 1–1 Interviews)
Final round 总共五关排在同一天,第一关是一小时的 presentation,我选择报我的硕
论。第二关是美国的工程师,问了我许多 ML 基础知识,最后写了一题 leetcode easy
的问题。
第三关是美国的 principle engineer,也会是这个职位的主管,人很和善,介绍这个职
位扮演的角色以及工作内容,问了很多 open questions,都是 ML 相关,譬如如果你再
解决一次硕论的问题,你会怎么改进。最后剩一点时间他说我们来写一道问题吧,我觉得
比较偏实务上会遇到需要实作的功能,很明显不是 leetcode 会有的问题 XD,时间关系
我当下只有阐述我的想法但最后没有写出来,他请我当回家作业写,我最后真的有寄给他
他也有回复我。
第四关是两位台湾的资深工程师,比较特别的是有问我修课经验,问题主要是
behavior, ML 相关,给我的感觉是想到什么问我什么,其中一位还跟我承认说他没什么
面试别人的经验不知道要问什么 XDD。最后一关好像是 HR manager,也是简单问几个
behavior 相关的问题,我印象蛮深刻的是她跟我说我觉得你现职很好啊 XDD。
整体面试下来我觉得 Qualcomm 的面试强度适中,online testing 相较于 live coding
压力小很多,后续 1-1 也都没有问太刁钻的问题。不过我面试完之后过了大概快两个月
才收到 offer,整个过程还蛮煎熬的,本来还以为没希望了,可能表现没有太好所以不是
前几顺位的 XD。
Amazon
Amazon Lab126, Applied Scientist
1. First Round Virtual Interview (Coding + ML)
面试官是美国的工程师,请我简单介绍我的工作经验和研究后,针对我的研究主题询问
ML 的相关基础知识,最后 coding 考了很知名的 design question,但我那时候
leetcode 还没刷得这么勤劳,没写出最佳解 QQ。
2. Virtual Onsite Interview (Presentation + 2 Coding + 2 ML)
Final round 总共五关排了两天,第一天的 presentation 我一样选择报我的硕论,过程
还蛮惊险的,因为 A 家他们自己的通讯软件没有单独分享某个画面的功能(注:感谢网友
提醒,其实是有只是当时我不太熟悉),我做的小抄完全看不到 XDD,还好因为之前面试
Qualcomm 有练习过好几次,最后算是顺利完成。
第二关考的是 ML,面试官是两位美国的工程师(一位shadow),先针对我的研究主题询问
相关基础知识,也问到该领域的最新发展,再来是根据他们工作上比较常碰到的主题和我
讨论相关 ML 的问题,还有一个对应的 coding 题目,不过只有请我阐述我的想法而已。
第三关考 coding ,是一位美国的 manager,初次见面直接来一题 leetcode hard 的
string 问题,当下第一个反应就是,完了,我有看过耶但我还没看懂讨论区的解答呀
XDD,只能用自己想得到复杂度比较高的解法硬解,自认为没有解得非常好。
第四关考的也是 ML,也是两位美国的工程师,主要针对我的研究领域询问相关的问题,
我觉得问得很深入,也看得出面试官是有做功课的,刚好是自己的专业所以回答得都蛮切
中要点的。
最后一关个人猜测是 bar raiser,考了一题 string 相关的 design,leetcode 应该是
没有,个人觉得难度 medium 偏 hard,有提出一个面试官也觉得可行的做法,但是在
implement 的时候炸了,自己评估是这次面试以来第二差的 coding 表现。
另外 Amazon 每一关的面试一定都有 behavior questions,考的就是他们很有名的
leadership principles,网络上的相关资源很多,这里就不再赘述。我自己的准备方式
是根据过去的工作经验用 STAR 的架构整理几个故事,并蒐集几个常见的问题尝试回答看
看并做修改,尽量让自己准备的故事能够回答所有的问题。另外失败的经验一定要有,并
且要能让面试官了解你在过程中是怎么解决问题以及学习到什么,我举一个例子给大家参
考:
Situation: 因产品的缺陷导致客户的使用频率下降
Task: 重新赢回客户对产品的信心以及重新建立彼此合作的关系
Action: 做了全面的分析确认问题并阐述如何解决的方法
Result: 在一周内成功解决问题,客户的满意度和使用率也有回升
整体下来我觉得 Amazon 的面试蛮硬的,除了全程英文之外,要准备的面向很多,
coding 是全部里面最难的,ML 也问得很深入,BQ 每一关至少都问了三题,自己算是很
幸运有顺利拿到 offer。后来听朋友说我面试的这个职缺是 L5,不过最后的 feedback
认为我 L5 还不够格但给了我 L4 的 offer,而且职称在面试的过程中变了几次,我也不
晓得为什么 XD,最终给的是 applied scientist。
Google
Software Engineer, Machine Learning, Pixel Camera
1. First Round Virtual Interview (Coding)
面试官简短了解我的背景后,出了一题 string design,我觉得难度 medium。当初和
HR 聊的时候有提到希望能争取 senior level ,不过这轮的 feedback 认为虽然沟通无
碍和解题思路清晰,但是 coding 还不到标准,好在 HR 有帮我争取后续以 junior
level 评估。
2. Virtual Onsite Interview (2 Coding + Domain + G&L)
Final round 被安排了四天一天一场,第一关用英文进行 coding,开始之前面试官还跟
我说他会全程录音(?。题目比较偏 number simulation,先来一题 easy 的基础题后考了
一题 medium 的 follow-up,设计得蛮巧妙有趣的。第二关是两位华裔工程师(一位
shadow),考 BQ 相关的问题,问得蛮仔细地,会一直追问下去。第三关也是 coding,考
了 island 问题 (但我好像没在 leetcode 看过),难度 medium 偏 hard,要拐个弯才想
得到解法,实作不难。最后一关考 ML design,请我设计一个 google 本身有的功能,因
为第一次接触到这种类型的问题有点不知所措,回答得有点散乱,没有整体的系统架构,
最后也有问了几题基础知识。
过了一周 HR 通知我说面试没过 QQ,也跟我 debrief 一下整体的 feedback,本来以为
是 ML 那关炸掉,但 HR 表示面试官觉得虽然看得出我没有设计系统的经验,但认为我有
把教科书上的相关知识拿来套用,因此给我过,反而是 coding 两关都跟 first round
一样,觉得我思路 ok 但实作没有达到要求。
在面试 Google 之前就有听说他们面试是非常不容易通过的,虽然结果不如自己预期,但
也不太意外。个人认为他们 coding 题目其实没有比较难(以我这次面试下来的感觉),但
是标准很高,用 leetcode weekly contest 来比喻的话就是你的 code 要能够按一次
submit 后就 accepted,不然会有很重的 penalty ,而且还会看你的 coding style 是
不是符合一定的标准。之后有机会的话再挑战看看 XD。
QuantumBlack
Data Scientist
1. Technical Online Tests (Coding + ML)
这间是 McKinsey 旗下的公司,工作内容比较像是顾问,会和客户讨论厘清问题后利用
ML 的技术帮助客户解决,算是蛮特别的工作型态。面试之前先收到两个 online tests,
一个是 ML 相关的选择题,另一个是两题 easy~medium 的 coding 和一题 ML design,
环境已经帮你装好常用的套件直接要你写出 ML 的算法 XD,我想大概只有这家是这样
考。
2. First Round Interview (ML)
因为有签 NDA 的关系不能透漏太多资讯,主要会针对工作经验询问 ML 相关的知识,也
会设计一些情境讨论如何使用 ML 的技术解决问题。不过后来因为有接受其他 offer 所
以没有完成,也没有进到最后一轮的面试
Conclusion
这次的面试之旅终于告一个段落,过程老实说很艰辛,裸辞的压力真的很大,每天战战兢
兢地拼命刷题,自己回想起来都觉得不可思议,不晓得自己是怎么撑过来的。最后的成果
算是远超出自己的预期,拿到 offer 的当下真的是开心到不行,很感激这一切,也很谢
谢这一路上帮助我的人。感谢看到这边的你/妳,如果能够对你/妳有帮助,就达到我写这
篇的目的了,有问题也可以留言让我知道。最后祝福大家找工作之旅都能顺利!
作者: heartbeaz (heartbeaz)   2022-06-07 11:20:00
高手
作者: zaq851017 (BJ4)   2022-06-07 11:22:00
大大决定去哪里呢
作者: cyt9020304 (我好烂)   2022-06-07 12:06:00
真的想知道lee215到底怎么想的
作者: annieor0908 (落小花)   2022-06-07 12:15:00
推推~
作者: angellee0102 (我掉进了五月天坑^^)   2022-06-07 12:18:00
推!感谢分享!
作者: Seccond (Seccond)   2022-06-07 12:45:00
推!
作者: Lightten (Lightten)   2022-06-07 12:56:00
推 感谢分享
作者: sbL (sbl)   2022-06-07 12:56:00
作者: underwater (underwater)   2022-06-07 13:08:00
推分享
作者: mike8469 (mike8469)   2022-06-07 13:09:00
推推
作者: y3y3y3 (吼)   2022-06-07 13:43:00
辛苦了,苦尽甘来推
作者: oscarchichun (ㄍ一)   2022-06-07 13:44:00
作者: azzc1031 (azzc1031)   2022-06-07 13:55:00
太强啦 推
作者: deeeplove (想不到ID)   2022-06-07 13:57:00
恭喜你
作者: ches728ter (Chester)   2022-06-07 14:12:00
推一个
作者: vi000246 (Vi)   2022-06-07 14:18:00
作者: TsaiIngWen (tsaiingwen)   2022-06-07 14:21:00
高手
作者: cmelo1515 (瓜农)   2022-06-07 14:29:00
神 跪着看
作者: longlyeagle (长鹰宝宝实验室)   2022-06-07 14:55:00
nice niceApplied Scientist 是A家薪水在IC里同级上限最高的
作者: tanby (tanby)   2022-06-07 15:28:00
太神了
作者: qk3380888 (小官)   2022-06-07 15:41:00
好猛喔
作者: et84121 (焦糖玛琦屎)   2022-06-07 16:04:00
推推
作者: kokolotl (nooooooooooo)   2022-06-07 16:27:00
请问是要去加拿大的缺吗
作者: ppc ( )   2022-06-07 16:39:00
高手
作者: MIKEmike07 (加油!)   2022-06-07 16:51:00
没记错的话 Amazon 的 AS applied scientist 是pay给最高的.哦 上面有人说了xD
作者: yiche (你若安好,便是晴天)   2022-06-07 17:36:00
推推 恭喜
作者: aiueokaki   2022-06-07 17:45:00
恭喜 请问年资几年?
作者: bug2 (bug)   2022-06-07 17:47:00
谢谢分享
作者: yuffieAK47 (柚子)   2022-06-07 18:07:00
作者: jt0711t23 (踢踢Y)   2022-06-07 18:17:00
好强 恭喜!
作者: transforman   2022-06-07 18:38:00
太神啦
作者: ukuk666888 (逆战)   2022-06-07 19:20:00
好厉害 推
作者: useeseeu (U See See U)   2022-06-07 19:55:00
大大是PHD吗?
作者: allnun (阿牛)   2022-06-07 20:55:00
好文,大推!
作者: AgileSeptor (S.Duncan_JB)   2022-06-07 21:01:00
作者: bomson (bomin)   2022-06-07 22:21:00
推 我当初看职缺描述感觉只找Amazon的L5+就没投了我听到的数字高G L3好多QQ
作者: fig498 (一起前进!)   2022-06-07 22:55:00
强, 想问你的学历
作者: KingSteven (HHung)   2022-06-07 23:29:00
前公司有过FDA 直接先猜是Vysioneer
作者: adrian2266 (xcx)   2022-06-08 00:02:00
推分享
作者: zwwz (??)   2022-06-08 00:02:00
lab126 恩恩
作者: andy5656 (andyandy)   2022-06-08 00:09:00
推 好奇你硕论有投conference吗?看Amazon JD似乎prefer有paper的
作者: startfresh (Start Fresh)   2022-06-08 04:59:00
A 家他们自己的通讯软件有单独分享某个画面的功能喔
作者: KingSteven (HHung)   2022-06-08 08:56:00
我是做CV,但不是医疗影像的XD 但之前有跟医隼老板聊过
作者: clvmomo (clvmomo)   2022-06-08 10:31:00
作者: k078787878 (舟)   2022-06-08 15:23:00
强者推
作者: hmsDEBBIE (*黛比*)   2022-06-08 21:49:00
谢谢分享!恭喜
作者: kevin1ptt (蚁姨椅yee)   2022-06-08 22:16:00
推!
作者: kero961240 (阿哲)   2022-06-09 17:03:00
这才是高手啊
作者: Psylinia   2022-06-09 20:29:00
lee215真滴屌
作者: viper9709 (阿达)   2022-06-10 23:53:00
感谢分享
作者: googledrive (Google Drive 云端硬盘)   2022-06-13 00:59:00
恭喜,欢迎来当同事^_^
作者: qq9966pp (神鸡大人)   2022-06-13 11:13:00
推分享
作者: ntddt (灭顶,降公投罢免门槛)   2022-06-13 20:21:00
推t1 ML
作者: aacs0130 (湛靈)   2022-06-14 23:45:00
推,谢谢分享
作者: HD19 (HD)   2022-06-18 02:05:00
推强者,感谢分享

Links booklink

Contact Us: admin [ a t ] ucptt.com