之前面试过 10 家左右湾区的公司,主要是技术面,算法为主。
我准备的经验是,按照一步步流程,比如自我介绍,项目介绍,解题,面试后提问题,把每一个流程要讲的话都在纸上写好,然后练着说,这个非常重要,因为以我的经验,之前准备好了,在面试时候会经常忘记一些之前准备好要说的点,特别是在英文环境下面试。可能因为紧张和英语表达匮乏的原因,我们在面试时候都会在潜意识下想尽快结束对话。我发现即时是英语母语的同学也是这么准备的。
自我介绍一定要带有具体例子,比如你说你学习很热情,你可以跟他说你在课余时间学习一些公开课程,参与开源项目之类的,当然要有真实的记录。
项目介绍的结构最好是:总--分--总。这个是我在进公司之后参加英语表达的 club 时候教练教的,在技术面试中,比较直接简介的表达比较容易让人接受。以项目介绍为例子,首先告诉对方你这个项目的目的是什么,然后如何做设计和实现的,然后遇到什么具体的问题,然后你是如何解决的。最后提一下你在项目中的具体工作和贡献。
解题的套路也差不多。开始先和面试官明确题目的问题和目标,然后拆分成一个个子问题,然后逐一解决,然后计算好时间复杂度,最后再合在一起,考虑完整的情况。最后总结下,看看有没有潜在的问题和 Scaling 的问题,然后主动提出一些 corner cases 。
最后说到培训机构,硅谷这边会有一些华人工程师提供模拟面试的服务,会用全英文模拟面试,然后给你反馈和提升建议。我之前试过包子:
http://baozitraining.org ,你可以试试,收费稍微贵一点。
祝你好运!