📅  最后修改于: 2023-12-03 15:34:53.437000             🧑  作者: Mango
本文是我作为一名拥有 3.5 年经验的 SDE-2,在 Cadence 面试的体验分享。希望能够帮助到即将面试的程序员们,并为大家提供一些参考。
我的面试官是一位年轻的工程师,他非常友善且富有耐心。在面试过程中,他给我提出了很多有意义的问题,并且引导我去深入探究。他也经常在了解我的经验和技能后对我进行一些鼓励。
面试分为四轮,每轮 45 分钟。以下是我的面试流程:
在这一轮面试中,我首先介绍了自己,并回答了一些基础的问题。然后,面试官让我实现一个具有以下要求的算法:
我用了大约 20 分钟的时间来解决这个问题。我首先使用了哈希表来存储每个元素的值和它的下标,这样就可以在 O(1) 的时间内查找到是否存在另一个元素与它的和等于目标值。我还用了一个双层循环的方法,但是在实现 hash 表后并不需要。
在这一轮面试中,我首先介绍了我在过去的工作中所做的一些项目。然后面试官让我介绍一下我在我们的代码库中最喜欢的代码。我选择了一些关于并发编程的代码,并简要介绍了一下这部分代码的主要特点和优势。这个过程中,我也和面试官讨论了一些有关代码的设计和实现细节。
在这一轮面试中,我首先讲述了我们的业务模型,并回答了面试官对模型的一些问题。那面试官提出了一些关于优化此模型的方案的问题,并让我从最简单的方案开始,一步步优化,直到达到一个较好的性能(但不能过度优化)。我给了面试官几个不同的策略,并让他自己选择最佳方案。
这一轮面试是由一位经理主持的,他介绍了一些我们正在处理的挑战,并提供了一些有趣的解决方案。我们还讨论了一些更广泛的问题,并分享了我们对独立开发者和开源开发的看法。
这次面试让我非常开心。我的面试官很好,问题也很有意义。我认为我对这个职位的了解更深了,并且也从面试官那里学到了一些新的东西。希望我的经验能够帮助到你,为你找到心仪的工作提供一些参考。