北美NG SDE一发入魂上岸, 分享经验~

d
dailu
楼主 (未名空间)

背景:cs本科 + 一段二三线厂实习。projects都是学校的(后端/web/os/ml)。可能gpa实在灾难,这边的大厂除了FAANG某家(你懂的)以外全把我拒了(看了下拿到那些厂面试的同学们实习都在本地卡gpa的厂或者是大厂/知名startup unicorn实习),加之自己上学期没有疯狂投简历,所以只收到了这一家的多轮VO,顺利上岸。自认为面试发挥得挺顺挺稳的,虽然有很大很大运气因素(题都是能做出来的程度+没有刁钻面试官),写下
自己的经历希望能帮到各位

我去年七月份才正式开始刷题,因为时间不多,就报了某章的算法班来节省总结各类题型技巧的时间,并在九月开学之前把配套的230左右道题都刷了。开学后由于久久没有
面试,刷题就停了两个月,直到拿到面试后才开始死灰复燃。

我一共全力准备了40天左右。觉得这些经验可能也适用于短期突击面试。主要做了这些事情:

1. 平均每天6道leetcode,主刷公司tag和前人的智慧(你懂的) 里面有新题也有旧题。记笔记并用excel表格记录答题情况(是不是一次AC bug-free以及题型),没有一次AC的题留着之后再做一遍。可能因为七八月份打的基础还在,这次刷题速度快了一些,不像七八月那时候一天5道脑子就不转了。

2. OOD:把某论坛和leetcode讨论区里出现过的都写了一遍。

3. BQ:看Dan Croitor这个人的视频和论坛里大家的总结,按STAR的规则写故事。把搜集到的一些刁钻问题也都写了下来。我最后准备了大概25个故事,可以比较自然地讲出来的程度。同时务必保证你的叙述可以让一个外人听懂你的project是啥+你做了啥(不
建议大家背,写下来主要是为了帮助自己清晰有逻辑地叙述,避免东说一出西说一处)

4. 面试前半个月开始每天用英语讲3道题,确保cover了做过的各种题型,模拟面试时
的场景。一道题不仅要解释代码,还要解释是怎么想到这个思路的。比如这题用dfs,
但为什么用dfs呢?这里墙裂推荐一个YouTuber 山景城一姐,她真的太会讲题了,好多题只有她能给我讲懂。我会去学她讲题的方式,避免思维混乱。

5. Mock Interview: 一共跟小伙伴mock了十几次,收获真的非常非常大!流程就是一
两道bq + codepad写一道题/OOD 边讲边做 + 手跑testcase,全程英语,不能浑水摸鱼。随着不断的mock自己也觉得自信多了,真实面试时我感觉跟这种模式相差不大,面试当天也可以告诉自己这就是一次mock,减少压力。如果没有找到小伙伴mock的话可以试试Pramp这个网站。(最后我和一起奋战到最后mock的小伙伴都上岸惹)

以下是面试Tips:

1. 面试过程中要气场全开,不卑不亢。见到面试官想尽办法先把场子炒热,让对方觉
得你是个很好沟通好说话的人。抓紧BQ的时间用来适应,语速可以慢一点给自己找找感觉。把对面就当成是自己同事,你们是来一起解决一个问题的,不要表现得怯生生的一看就要把生死交给面试官手里那样。毕竟面试是你跟这家公司打的第一次照面,如果给你的面试体验稀烂的话咱也不是非要去这家了。

2. 如果是视频面试的话,说BQ请全程盯着你的摄像头,避免你在看面试官的脸但是人
家以为你在看稿子的情况。

3. coding时如果面试官没给你把题打在公屏上的话就仔细听题意,做笔记,一旦没听
明白火速管面试官要例子。千万不要自己闷头瞎猜。很有可能这道题本质就是个不咋难且比较传统的某题型,只不过被面试官冗长的描述一绕就看起来很复杂。记住我们的口号:稳住我们能赢。

4. 沟通!看到一道题可以先告诉面试官“让我想想“,一两分钟以后不管有没有思路
都要开始think out loud。说完idea之后得到面试官同意才能开始写代码。写完之后立马自己主动拿着他给的test sample开始手跑代码,主动分析复杂度,顺便还可以自己
debug那些由于紧张犯的低级错误。我记得我面试时有一个recursion我竟然忘了写
exiting case,在我手跑代码的过程中发现了我就淡定地改过来了。

5. 如果这道题你没有思路也不要慌。试着一步步dive deep从面试官口中套出hint。面试并不是看这道题你有没有做出来,而是综合你解决问题的能力/沟通能力。带着对面
的hint做出来本身就说明你是个沟通能力和理解力在线,反应也快的人。比如我其实不擅长分析稍微复杂一点儿的时间复杂度,但是到最后我能感受到面试官也在给我hint以至于这答案能从我自己嘴里说出来。

6. 如果遇到很push很刁钻的面试官也不要怕,很有可能他是想从你这儿收集更多信息
给你争取strong hire,就照常不卑不亢地努力回答就可以了。我的小伙伴就有一轮是
这样的面试官,最后甚至一副非常不耐烦懒得跟他说话的样子,最后也拿到offer了。

7. 心态建设:作为一个非常容易焦虑的选手太懂“觉得自己没准备好”的感觉了。经
历过一次之后发现面试就是概率游戏,永远没有真正准备好的一天。毕竟刷五六百题的人如果碰见一道很难的变种也有可能跪,就看能不能抽到自己能当场想出来的题目。做好自己能做的一切准备,其他就相信运气能降临到自己头上吧~

祝各位面试顺利,早日上岸~
b
bigjeff

又是机器人