在白板编码面试中构筑思维过程的4步策略
白板编码采访通常是不完善的技术采访过程的一部分。 45分钟的白板编码问题不能代表工作中的实际工作,特别是由于其时间限制不切实际。但是,解决编码问题可以使应聘者通过与面试官沟通并逐步思考过程来展示其解决问题的技能。
这些是我在Virta Health的编码面试研讨会上的笔记。
假设您有45分钟的时间,这是一个4步策略,可在白板编码面试中构建您的思维过程:
1.了解问题(5分钟)
阅读问题。如果您不了解某些部分,请与面试官澄清。用自己的话重复这个问题,仔细检查一下您的理解。与面试官一起验证您的假设,以确保您解决问题的正确范围。
2.解决问题(10分钟)
在编写代码之前,请提出解决问题的策略。
以下是一些解决问题的策略:
-
分而治之:将问题分解为较小的子问题,并单独解决它们。
-
从幼稚的方法进行迭代:您想到的第一个解决方案可能不是最佳解决方案。如果您知道您的第一个解决方案不会针对时间和空间的复杂性进行优化,请说“天真的方法是……”来构成您的工作。如果您有时间结束,请迭代您的幼稚解决方案。
-
数据结构和算法模式匹配:贯穿用于编码采访的通用数据结构和算法,以查看是否适用于您的问题。一些示例是集合,字典和地图。
-
编写伪代码:伪代码是算法或程序功能的非正式高级描述。您的笔记将帮助您在开始编码时处于问题的境地,并始终如一。
3.代码(20分钟)
在编写代码之前:
- 了解您的编码环境。知道如何运行您的代码。
- 澄清是否可以使用库并查找库结构。
在编写代码时:
- 在编写代码时大声解释您在做什么。当您解释自己的思维过程时,您的面试官有机会根据您的尝试为您提供帮助。面试官试图帮助您成功
- 在面试的每个步骤的早期和每个阶段进行非正式的测试,以防止在面试结束时进行棘手的调试会话。
- 在整个编码过程中,请参考第2步(解决问题)中的注释以保持进度。
4.复习(5分钟)
-
测试:检查您的测试用例,并确保正确处理边缘用例。
-
优化:寻找优化速度和内存的代码的方法。
-
清理:重构代码以整理并改善代码结构。
白板代码面试是一种可以并且可以学习的技能。继续练习
非常感谢Virta Health主持了这次编码面试研讨会并分享了这个框架
您的白板编码面试策略是什么?你有什么秘诀?
图片由Undraw.co