本文共 1236 字,大约阅读时间需要 4 分钟。
这是关于技术面试要做和不要做的一个列表,主要用于算法面试。其中一些可能只适用于白板面试或电话交流,但大多数两者都适用。每次面试前我都会温习这个清单,提醒自己,并最终把所有这些都消化到我不再需要依赖的地步。
图例: = 要做, = 不要做, = 视情况而定
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
译者:蒲公英
转载地址:http://opncl.baihongyu.com/