这是关于技术面试要做和不要做的一个列表,主要用于算法面试。其中一些可能只适用于白板面试或电话交流,但大多数两者都适用。每次面试前我都会温习这个清单,提醒自己,并最终把所有这些都消化到我不再需要依赖的地步。
图例:
= 要做,
= 不要做,
= 视情况而定
1.面试前
| 事项 | |
| 准备笔,纸和耳机/头戴式耳机。 | |
| 找一个网络连接良好的安静环境。 | |
| 确保摄像头和音频正常工作。有几次我不得不重新启动Chrome让Hangouts重新工作。 | |
| 申请通过Hangouts/Skype而不是电话面试;Hangouts/Skype更容易传递链接或文本。 | |
| 采用熟悉的编程语言。 | |
| 熟悉编码环境(CoderPad/CodePen)。设置编码的快捷方式,打开自动填充,tab的空格数量等。 | |
| 准备面试中常见问题的答案。 | |
| 准备面试结束时要问的一些问题。 | |
| 穿着舒适。通常你不需要穿时髦的衣服,休闲装就可以。T恤衫和牛仔裤在大多数地方都是可以接受的。 | |
| 镇静沉着。 | |
| 如果可能的话,关掉网络摄像头。 |
2.介绍
| 事项 | |
| 在一两分钟内用几句话介绍自己。 | |
| 提及与你申请的职位相关的兴趣点。 | |
| 听起来热情!带着微笑说话,你的声音自然会更迷人。 | |
| 自我介绍花费太长时间。你花在谈话上的时间越多,你编码的时间就越少。 |
3.得到问题
| 事项 | |
| 在面试官面前重复这个问题。 | |
| 澄清你下意识做的任何假设。许多问题都是故意规定的。一个像树的图很可能是一个允许循环的图,而一个简单的递归解法无效。 | |
| 澄清输入格式和范围。询问输入是否可以被假定为格式良好的和非空的。 | |
| 通过一个小例子来确保你理解这个问题。 | |
| 解释一个高水平的方法,即使它是“蛮力”的。 | |
| 改进方法并优化。减少重复工作和缓存重复的计算。 | |
| 仔细想想,然后陈述和解释你采用方法的时间和空间的复杂性。 | |
| 如果卡住了,想想你以前见过的相关问题,以及它们是如何解决的。查看本节的提示。 | |
| 忽略给你的信息。每个都很重要。 | |
| 直接跳到编码。 | |
| 在没有面试官允许的情况下开始编写代码。 | |
| 对你的方法或分析不太确定。 |
4.编码过程中

5.编码过后
| 事项 | |
仔细细看代码来查找错误,就好像这是你第一次看到别人写的代码一样。 | |
| 检查一个错误。 | |
| 想出更多的测试用例。尝试极端测试用例。 | |
| 用这些测试用例单步执行代码。 | |
| 寻找你可以重构的地方。 | |
| 重申代码的时间和空间复杂度。 | |
| 解释取舍以及在给定更多时间的情况下如何改进代码/方法。 | |
| 马上宣布你完成了编码。先做上面的事! | |
| 与面试官争论。他们可能是错的,但鉴于他们熟悉这个问题,这是不大可能的。 |
6.结束
| 事项 | |
| 问问题。更重要的是,问针对该公司的好的、引人入胜的问题!从这个列表(日后会作为单独的文章发出)中挑选一些问题。 | |
| 感谢面试官。 | |
| 询问你的面试表现。会很尴尬。 | |
| 什么都不问就结束面试。 |
英文原文来源:https://github.com/yangshun/tech-interview-handbook/blob/master/preparing/cheatsheet.md
本文提供了一个技术面试准备的全面指南,包括面试前的准备、面对问题时的策略、编码过程中的注意事项以及面试结束时的行为建议。

198

被折叠的 条评论
为什么被折叠?



