📌  相关文章
📜  APT 作品集面试经验 – 初级/中级 C++ 开发人员

📅  最后修改于: 2022-05-13 01:58:23.030000             🧑  作者: Mango

APT 作品集面试经验 – 初级/中级 C++ 开发人员

一家外部猎头公司(专门从事贸易招聘)与我联系,以寻求在阿姆斯特丹担任初级/中级 C++ 开发人员的机会。首先,我们就职位、公司、要求等进行了一般性的交谈。之后,我发送了我的简历并收到了 HackerRank 测试的链接。有4个问题。我会说他们在 leetcode 上都是中等难度的。我只记得其中两个:

  1. 到达客户端的网络数据包,其中一些可能出现故障。您必须实现一个接受数据包的函数,并将它们以正确的顺序即时写入 std::cout。
  2. 不相交集并集的一些问题。如果您熟悉 DSU,则该解决方案非常简单。

我很快就得到了回复,他们邀请我去面试。

高级开发人员访谈:高级开发人员的 1 小时访谈。

  1. 关于我的经历的很多问题。专注于我之前的 C++ 项目,我们做了哪些优化,我们使用了哪些工具,C++ 特性等。
  2. CPU 架构。它的主要组件以及它们的工作原理——alu、cu、ram、虚拟内存、tlb。多核系统如何共享缓存。什么是推测执行和分支预测。
  3. C++ 题:虚函数、模板、SFINAE、模板函数、enable_if。

这里没有实时编码部分。

采访 Project LeadL:关于操作系统的问题——为什么我们需要内核和用户模式,为什么系统调用很慢,什么是中断,中断期间会发生什么。

还有很多关于我的经历的问题。

与 CTO 的访谈(最终):关于我担任这个角色的动机、行为问题以及我的经验的几个问题。我不太记得技术问题,其中一些:

  1. 如果您要为外部计算设备实现驱动程序,您将如何实现数据交换(如果速度是主要优先级)
  2. memcpy 的幼稚实现。你会如何优化它?
void my_memcpy(char* from, char* to, int count)
{
    for (int i = 0; i < count; i++) {
        to[i] = from[i];
    }
}

我的回答:展开循环并使用 SSE 指令。最后,我问了几个关于公司的问题。

结果:等了3天后,我联系了外企的猎头,他说还没有决定,应该是下周。下周我又发了一封邮件,但两天没收到回复,就用手机给他打电话。他说 APT 正在进行另一次候选人面试,我应该再等一下,“别担心,他们对你很积极”。在第三周,他完全无视我的电子邮件。我直接给 APT 的 HR 发了邮件。她的话“还没有决定”开始把我吓坏了。等了一个多月后,我再次发短信给 HR,她回复说很遗憾,他们决定不参加我的竞选。没有反馈,没有解释,什么都没有。我要求提供反馈——什么进展顺利,什么不顺利。他们同意作曲,但没有做……

整个过程持续了大约3个月。结果,花了很多时间在上面,但没有收到任何反馈。面试体验差。