第1章 面试的流程
第2章 面试需要的基础知识
第3章 高质量的代码
第4章 解决面试题的思路
第5章 优化时间和空间效率
第6章 面试中的各项能力
第7章 两个面试案例
第7章 两个面试案例
在第一章中,我们讨论了面试的流程。通常一轮面试是从面试官对照着简历了解应聘者的项目经历及掌握的技能开始的。在介绍自己的项目经历时,应聘者可以参照STAR模型,着重介绍自己完成的工作(包括基于什么平台、用了哪些技术、实现了哪些算法等),以及最终对项目组的贡献。
接着进入重头戏技术面试环节。在这一环节中面试官会从编程语言、数据结构和算法等方面考查应聘者的基础知识是否扎实全面(详见第2章),并且很有可能会要求应聘者编程实现一两个函数。如果碰到的面试题很简单,应聘者也不能掉以轻心,一定要从基本功能、边界条件和错误处理等方面确保代码的完整性和鲁棒性(详见第3章)。如果碰到的题目很难,应聘者可以尝试画图让抽象的问题变得形象化,也可以尝试举几个具体的例子去分析隐含的规律,还可以尝试把大的问题分解成两个或者多个小问题再递归地解决小问题。这3种方法能够帮助应聘者形成清晰的思路,从而解决复杂的难题(详见第4章)。很多面试题都不止一种解决方案,应聘者可以从时间复杂度和空间复杂度两个方面选择最优的解法(详见第5章)。在面试过程中,面试官除了关注应聘者的编程能力外,他还会关注应聘者的沟通能力和学习能力,并有可能考查应聘者的知识迁移能力、抽象建模能力和发散思维能力(详见第6章)。
在面试结束前的几分钟,面试官会给应聘者机会问几个最感兴趣的问题。应聘者可以从当前招聘的项目及其团队等方面提出几个问题。不建议应聘者在技术面试的时候向面试官询问薪资情况,或者立即打听面试结果。
接下来是两个典型的面试案例,我们从中可以直观地感受到面试的整个过程。在第一个案例(详见7.1节)中,我们将看到面试过程中很多应聘者都曾犯过的错误;而在第二个案例(详见7.2节)中,我们将看到面试官所认可的表现。我们希望应聘者能够少犯甚至不犯错误,在面试过程中充分表现出自己的综合素质,同时也衷心祝愿每个应聘者都能拿到自己心仪的Offer。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论