作者: [aokise]
在职一年跳槽去了自己很喜欢的公司,很多同学朋友来问刷题经验,感觉大家问的问题都差不多,写个帖子总结一下
最常被问的几个问题:
- 准备了多久?时间线是怎么样的?
从开始刷题到最后一个面试大概整整三个月。刷三四周开始找hr聊天,聊完一两周安排电面,电面完一两周onsite。拿来练手的公司最好安排在刷题两个月的时候,最后几个dreamcompany放在第三个月。同档次的offer一起拿,好跟 hr argue高package
- 刷多少题比较合适?刷的速度如何?在职如何安排时间?
最后一共刷了340题。150 左右可以开始电面,两三百开始onsite。
刚开始特别慢,因为毕业的时候没刷题看地里面经进的公司,基本啥也不会哈哈(再次感谢地里,鞠躬)有时候一天一道hard都看不懂。后来越刷越快吧。所以刚开始不要急,看看答案,熟悉不同类型题目的思路,后来肯定会变快的。
在职刷题需要下定决心,不然会因为已经有工作了而没有动力,很久都跳不成功,然后又想升职又想排卡,更没法跳了。Newgrad进了不喜欢的公司,一定要越早跳槽越好。不然大概率会温水煮青蛙,堕落下去。(虽然说的好听,其实我也是这样,差点鬼混下去了2333,在职跳槽真的很难有动力)基本上那三个月晚上回家/周末都在刷题,很辛苦,用完了所有假期去刷题和onsite
- 刷公司tag题吗?
我没有针对不同公司刷题,只会在面试前两三天看看那个公司的面经(偶尔能遇到原题,但不要有侥幸心理)。不同公司风格不同,有的题库小要求bugfree(比如fb?),刷tag可能有用。总体来说如果目标不止一个公司,最好刷经典题而不是tag题
- 刷几遍,怎么刷
经典的几十道题刷了三四遍,其他一遍。刚开始没概念好题烂题一起刷,后来就有感觉那些题比较好,哪些题纯粹浪费时间。比如bfs,dfs,backtracking,linked list,string,tree map,binary tree tranversal等等一定要熟练掌握。Dp什么的我觉得不太考。纯考edgecase,算法很少的题也没什么意思。基本上leetcode点赞多的就是值得好好研究熟练运用的好题。个人感觉按类型刷比较好。
- 怎么拿到面试?
直接推到manager手里最好,找不到的话去[linkedin]勾搭hr。然后就是找同学在内网内推。最后海投。
- 面试经验?面试中注意什么?
英语流利,沟通顺畅和会写代码都很重要。不要背答案,就算以前刷过这道题,因为一步步推出来和靠碎片式的记忆背答案区别很大。
白板写题和电脑很不一样。如果能选电脑可以考虑一下。不然要提前训练白板。(比如我周末会去公司会议室练习白板mockinterview)
写题之前要问清楚,写到一半/写完发现理解错了基本gg。思路要快,不用立刻想到所有步骤,但要有大概思路。在写的过程中不断填充一开始没想到的部分,注意交流和面试官的hint。
- 有性别优势/有被烙印黑嘛?
我的感觉是,大公司歧视男生,start up歧视女生。。。所以总的来说差不多吧,哈哈。比如我有的startup面的很好but还是不给offer; 相反的,传闻bar很高的大公司面我的题都不难。遇到的烙印也都人很好,没感觉被黑,不要有这种想法比较好。
- 推荐的资源?
强推印度小哥YouTube 频道:
讲的超清楚!算法刷题最佳导师
还有个小哥
系统设计讲的比较多(我很喜欢他因为感觉他概念很清楚,很聪明
- 面了什么公司?面经?
乱七八糟面了一堆,金融公司, tech 大厂, 小start up都面了,大概不到十家公司吧。Opendoor和two sigma没过,其他都过了好像。
整体感觉金融公司比较水,base和bonus 巨高因为没有股票。有的金融公司流程很快(比如bloomberg一天出结果,三天offer deadline。。。。
大厂比较好准备,因为就是算法。。。刷就行了。大厂流程慢,最好安排早点
Start up考的更实际更看基本功。(对我这种转专业的还是需要多准备一下的~)比如他们喜欢考multithread,lock,还有一些底层的东西(被考过实现queue,我用了arraydeque的写法,还好看过类似视频。。)还很喜欢问sql,nosql的区别,如何处理largescale data。一年经验的话问到这个地步就差不多了。这些内容我都是刷题之余看YouTube视频补充的知识。(转专业基础差硬伤呀)。以后有身份了想去startup玩玩。