Tips
03 Dec 2015##Tips Original from posts 这个repository的资料都是网上搜索+自己的总结经验, 我也不是什么大牛, 只是一介卖油翁, 无他, 唯手熟尔. 至于资料的正确性, 不敢有百分百的把握, 希望看官也能边看边帮我挑错, 有问题可以create ticket或者联系我, 非常欢迎!
关于面试准备, 说下心得吧.
- 我是在职码农骑驴找马, 每天回家后大概有5个小时学习, 一周大概是30~40小时的学习量, 持续了两三个月的样子. 各位按自己的情况来斟酌时间分配.
- 战线不要拖太长, 要不最后你的身体和精神上的压力都会很大的.
- 我这个人很笨, 不像刚毕业的学生有脑子有干劲儿. 我Leetcode过了三遍, 第一遍写得很吃力, 好多题没写完. 第二遍精细地写, 争取做到每道题都弄懂. 第三遍主要是靠笔在纸上写的, 然后再对答案, 把记住corner case, 强化思路.
- Leetcode对于提升自信心很重要, 面试遇到类似的题目基本就不会慌了, 剩下的就是靠”演技”, 简单分析下题目, 然后一气呵成地coding之后再分析过程, 把思路清晰地展现出来就行了.
- 遍数多是没有用的, 三五遍题目还不懂和一遍全懂bug free是没法比的.
- 有些题目理解困难就不要揪着, 看看别的先, 没事的时候多多思考. 但是也不要放着太多甚至觉得这个题太难肯定不会考, leetcode没有真正意义上的难题, 只有比较难AC的题(需要优化算法).
- 记忆是需要反复刺激的, 题目理解后的corner case也是需要反复做的. 公司们虽然嘴上说不想把面试弄得跟应试一样, 但是身体上却很老实…
- System Design网上的资料很多, 面试起来感觉还是蛮看运气的, 比如我准备了很多large scale的东西最后面试聊的根本不沾边, 很难准备, 但是即使这样也不能掉以轻心, 平时没事抽午饭时间看看资料, 多总结多记笔记会很有帮助.
- 除了以上两点, 对于自己过去的project也要__十分__熟悉, 每一个细节都要分析到位, 为什么project用了这个tech, 好处坏处, 有没有alternative way, 重新做会不会继续用这种方法, 有没有提升空间都要提前演练好. 对于project甚至简历上的每一个key word都不能放过. 大致可以参见我个人的总结
- 对于CS专业知识还有强项语言的知识一定要把握住. 如果java不是强项语言, 最好再稍微准备下java的非常基础的知识, 因为java太火太基础了, 有些公司会默认java的基础知识大家都会.
- Behavior question必须准备, 要不你会被问的很恶心的.
- 每次面试完之后记录面经, 回忆自己哪里做的不好, 哪里卡壳, 尤其是behavior question. 做错的题不会的题一定要搞懂, 这里跟高考没区别.
- 跪了的公司不要多留恋, 继续下一家. 想着他们不要我是他们的损失的同时, 也要总结经验教训, 每次面试都要有所收获.
- 平时多多整理自己总结的东西, 最好还是弄成电子版的, 易读易修改, 防止重复劳动.
- 这个是我自己的方法, 弄个录音笔(用电脑也能录其实), 买个耳机分线器, 电话面试的时候可以录音(不同州的法律是不同的, 纽约州允许未告知对方的情况下电话录音, 我可不负法律责任哟), 只作为自己分析错误提升自己用. 二面或者onsite前听听之前面试, 注意下面试官对公司, team的介绍, 非常有用, 尤其是小公司.
- 面试之前做好公司background check, 如果有面试官的名字提前Linkedin查好, 准备好对应他职位的问题, 要给人一种很积极, 很了解对方公司的感(cuo)觉(jue).
- Background check 包括公司规模, 历史, 主要产品, 如何盈利之类的.
- 见人说人话, 见鬼说鬼话. 对HR就问general的问题, 比如Interview Process之类的(别傻呵呵让HR介绍公司, 这都是自己应该提前查好的), 对engineer就问些team, project问题.
- 平时没事可以来版上看看实事和面经, 了解了解就业情况. 这里有很多面经和refer, 大家人都很好, 互相帮助.
至于这个Repository, 很多总结的东西大家看到的蓝色的都是可点击的link, 点进去会有更多帮助. 上面的几个蓝的都是可点的.
如果要搜题目的话, 可以点这里, ctrl+f搜索就行了. 序号152之后的题目都不是leetcode之外的题目, 有些是群里或者版上讨论的内容, 有些是实际我的面经.
暂时就只想到这么多, 有问题可以跟我联系, 大家一起讨论, 一起进步.
2014/10/11