各编辑器/操作系统/语言的技术面试表现

2025-06-10

各编辑器/操作系统/语言的技术面试表现

最初发表于Triplebyte 博客

我的同事 Daniel 非常喜欢 Emacs。它是他的主要编辑器,他的购物清单(通过org-mode生成),也是他在 OkCupid 个人资料中“生活中不可或缺的六件事”中的第四件。然而,办公室里的其他工程师更喜欢 Vim(或者 Sublime Text,甚至 RubyMine)。这自然引发了一场争论。但经过数月的争论(VimGolf 的胜券在握,以及对Stack Overflow 上这个问题的无端引用),最终仍未分出胜负。

因此,上周,我开始研究 Triplebyte 的数据对这个问题有何看法。对此持保留态度(相关性并不意味着因果关系),但工程师使用的编辑器、编程语言和操作系统,以及他们通过编程面试的能力之间确实存在关联。而且,根据我们的数据,Vim 用户的面试通过率比 Emacs 用户略高![1]

关于数据

在 Triplebyte,我们每周评估数百名工程师。每次面试都会通过 Google Hangouts 与我们的一位面试官(比如我!)进行交流。我们会记录每位工程师使用的语言和编辑器。面试结束后,我们会将工程师介绍给其他公司(他们无需进行电话面试)。

为了收集我想要的数据,我提取了过去一年 Triplebyte 每次面试的编辑器/语言数据,以及 Triplebyte 的面试结果(通过/未通过),以及同一批工程师通过我们平台进行的面试结果。以下是编辑器使用情况的细分:

编辑器和 IDE

它不再仅仅是 Emacs 和 Vi(m) 的世界了(曾经是吗?):

编辑器-Breakdown.png

我们在面试中看到的最常用的编辑器是 Sublime Text,紧随其后的是 Vim。

目前,Emacs 的市场份额相当小,在我们的采访中,它的用户群仅为 Vim 的四分之一左右。这与谷歌搜索趋势中这两款编辑器 4:1 的比例恰好吻合。

然而,我真正关注的是质量而非数量的信号。哪些工程师最有可能成功通过我们的面试?

编辑器 - 技术面试通过率.png

Vim 在这方面拔得头筹,但 PyCharm 和 Emacs 紧随其后。我们发现,这些编辑器的用户通过面试的几率往往高于平均水平。

另一个极端是 Eclipse:看起来,使用 Vim 或 Emacs 的人通过我们的技术面试的可能性是 Eclipse 用户的两倍多。

我很好奇面试之后会发生什么,所以我观察了每组通过最终现场面试并获得我们联系的公司录用的可能性:

编辑 - 现场成功率.png

在大多数情况下,这在各个编辑器中看起来相当均衡,这告诉我们,即使在 Triplebyte 的采访中,Vim 用户作为一个群体比 Sublime 用户更强大,我们仍然可以确定在我们合作的公司中表现良好的正确的 Sublime 用户子集。

我惊讶地发现这里有一个巨大的异常值:Eclipse!奇怪的是,即使我们对 Eclipse 用户的编程技能进行了预先筛选,他们收到的现场面试录用通知仍然只有我们发送给他们的其他用户的一半。我对这种相关性还没有很好的解释,我会继续调查。(无论如何,别担心,我们仍然很乐意接受并为许多优秀的 Eclipse 用户找到工作!)

编程语言

在我们的技术面试的第一部分,你可以使用任何你喜欢的语言。如今,许多工程师选择用 Python 进行面试:

语言 - Breakdown.png

嘿,PHP 怎么了?作为一名前 PHP 开发者,我发现它现在只是“其他”语言中很小的一部分,这很有意思。作为这里的面试官之一,我个人从未见过有人用 PHP 面试(尽管其他人见过)。

Python 也以对初学者友好而闻名,那么它会出现类似 Eclipse 的趋势吗?嗯,不完全是:

语言 - 技术面试通过率.png

在这种情况下,我们发现 Ruby、Swift 和 C# 用户的平均水平往往更高,而 Python 和 Javascript 则处于中间位置。

深入研究这些数据时,值得注意的是,某些编辑器和某些语言之间存在着不可避免的强相关性:90% 的 Eclipse 或 IntelliJ 用户也使用 Java,而 99% 的 PyCharm 用户使用 Python。我发现一个引人入胜且具有统计意义的结果是,与使用 Eclipse 的 Java 开发人员相比,使用 Eclipse 以外其他工具的 Java 开发人员通过我们面试的可能性高出 47%。

在我们选定工程师并将其派往现场后,会发生以下情况:

语言 - 现场成功率.png

这里没有异常值,但让我们来看看 C++ 部分。虽然 C++ 程序员在 Triplebyte 的技术面试中平均难度最大,但我们选择合作的 C++ 程序员在每次现场面试中拿到 offer 的难度相对较低。

我不太确定该如何解释这一点,但一种假设或许就是看看我们平台两端的整体供需情况。我们发现,我们合作的公司对优秀的系统和底层程序员的需求非常强劲。另一方面,我们受到 C++ 开发者申请比例相对较小的影响,而我们发现的优秀人才中,能够合作的人数也相对较少。另一种想法是,或许更多细分领域的专业化人才可能会为我们的匹配过程提供更多信号。无论如何,这告诉我,我们应该寻找更多优秀的 C++ 开发人员!

操作系统

如果你过去几年经常去旧金山的咖啡店,那么你就不会对如今大多数工程师都在 macOS 上进行面试感到惊讶:

操作系统-故障.png

在这种情况下,最受欢迎的选择也是最成功的:

OS - 技术面试通过率.png

我们发现,Windows 用户平均而言会遇到更多挑战。在这方面,Linux 竟然没有领先,这让我很惊讶。作为一名曾经的 Linux 桌面用户,我猜想 Linux 用户可能掌握着与日常计算相关的广泛技术知识。

这一趋势在现场面试中依然存在:

OS - 现场成功率.png

有趣的是,我们合作的苹果粉丝在现场面试中的通过率似乎比Windows或Linux用户高出约20%。(这让我想起了OkCupid之前一篇比较苹果和安卓用户数据的博客文章。)

很难确切知道为什么会发生这种情况,但这里可能存在一个隐藏的变量。例如,虽然我们采访的人中有 60% 使用的是 macOS,但如果你走进旧金山的任何一家科技公司,你都会发现使用 MacBook 的比例远超 60%。虽然我们的采访不考虑背景信息,但拥有几年的专业编程经验通常会有所帮助!

结论

作为这里的采访者和工程师,我认为看看我们拥有哪些关于工程师今天使用的工具的数据会很酷。

在我们 2017 年的数据集中,我们发现在 macOS 上使用 Vim 编写 Ruby 的工程师通过技术面试的几率高于平均水平,而在 Windows 上使用 Eclipse 编写 C++ 的工程师则处于相反的水平。我们不会明确使用这些指标来决定与谁合作,但这确实是我们在面试过程中收集的数据的一个副产品。

从更高层面来看,我们认为招聘流程应该专注于发现优势,而不是发现劣势,我们也撰写了大量关于如何面试工程师的文章。我们给公司的最佳建议是允许候选人使用能够最大程度展现个人优势的工具。就我们而言,这意味着我们允许工程师选择他们喜欢的任何语言和环境,并通过屏幕共享在家中进行便捷的面试。

如果您是一名工程师并且想要尝试我们的流程,第一步就是完成我们的多项选择编程测验

如果您的公司正在寻找工程师,并且想了解有关与 Triplebyte 合作的更多信息,您可以从这里开始。


[1]需要明确的是,我认为这对招聘没有任何预测价值,也不认为工程师应该根据我们的分析更换他们的编辑器。Emacs(和 Eclipse)都是很棒的编辑器!

鏂囩珷鏉ユ簮锛�https://dev.to/triplebyte/technical-interview-performance-by-editoroslanguage--35kf
PREV
2020 年开发者预测
NEXT
我如何在没有工作经验或计算机科学学位的情况下获得软件工程师职位 AWS Security LIVE!