【转】Google 技术面试经验总结
3 min read
古人云:取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。

面试流程
- 在线评定:一到两个算法题,通过分享 Google Docs 链接的方式来让你输入代码。
- 电话面试:共有两轮,一轮一个工程师打电话,也是通过分享链接的方式。
- 现场面试:邀请到 Google 办公室,面试一天,大概 4 轮,包含算法和系统设计。
技巧
- 
练习在 Google Docs 或白板上写代码或者手写代码 
- 
练习在有时间限制的情况下编写代码 一轮大概有 45 分钟: - 5 分钟:介绍自己或简历
- 5-10 分钟:思考题目
- 20-25 分钟:编写代码
- 5 分钟:测试
 
- 
练习一边写代码一边跟面试官讲解思路 这样在思路不是很顺畅的时候可以得到提示,不能不说话。 
- 
练习人工测试代码 写完后把代码放在脑子里过一遍。 
- 
练习编写边界条件测试 - 预期的输入
- 空输入
- 空指针输入
- 异常输入
- 大输入
- 其他边界条件
 例子: 反转链表(leetcode-206-反转链表) - 常规情况: 带有 5 个元素的正常链表
- 边界条件:
- 1 个元素的链表
- 0 个元素的链表
- 空指针
- 长链表
 
- 特殊情况: 有环的链表
 
- 
澄清面试官的问题 例子: 正则表达式匹配 (leetcode-10-正则表达式匹配) 应该问的问题: - 输入只有字母吗?
- 输入包含点号和星号吗?
- 匹配字符串是格式良好的吗?
 
- 
从简单的暴力实现开始 例子: 搜索二维矩阵 (leetcode-240-搜索二维矩阵II) 
- 
计算每一个算法的时间复杂度和空间复杂度 
期待
- 代码的正确性
- 代码的质量
- 手写代码的话字迹要清晰