PCon全球产品创新大会即将开幕,抢占最后的交流席位! 了解详情
写点什么

编辑器领域正发生变革?从面试看 Visual Studio Code 的崛起

  • 2018 年 12 月 11 日
  • 本文字数:2571 字

    阅读完需:约 8 分钟

编辑器领域正发生变革?从面试看Visual Studio Code的崛起

Visual Studio Code(VS Code)的使用率在迅速上升,现在已经成为大多数工程师的首选编辑器,并似乎正迅速抢占其他顶级编辑的市场份额。


Triplebyte 每周都会面试数百名工程师。在每次面试中,我们都会记录面试者使用的编辑器、编程语言和操作系统。我们不会根据这些信息来决定面试者是否可以通过面试(我认为这不公平)。不过,这些非常令人着迷!它让我们可以深入了解不同工程师群体喜欢哪些工具,以及这些偏好如何随着时间发生变化。我们还可以借此识别出工程师选择的工具与他们在面试期间的表现之间的相关性。


我的同事 Mike 在一年前写了一篇有关这些数据的文章。Triplebyte 从那时起已经得到了长足的发展,因此我们现在可以更深入地挖掘这些数据,所以我写下了这篇文章。


编辑器使用率

我提取了去年所有面试中使用的编辑器数据:



从这张图中可以看到,Visual Studio Code 有多么的突出。VS Code 占了 17%的比例,它是去年多个 Triplebyte 候选人使用的编辑器。这让我感到些许惊讶,主要基于两个方面的原因。首先,VS Code 是一款来自微软的相对较新的产品。其次,去年它甚至都没有出现在我们的排行榜上——它的比例小到足以落入“其他”部分。


为了更好地了解这一点,我基于相同的数据绘制了另一张图:



VS Code 正在吃掉其他编辑器的份额!很明显,在过去的一年中,VS Code 的使用率从 5%上升到 22%。与此同时,Sublime Text 的使用率从 17%下降到 11%,Atom 的使用量从 11%下降到 6%,甚至连 Eclipse 也在下降。VS Code 每个月都在增加。Google Trends 显示了类似的结果:



VS Code 正在崛起,并有望成为我们见过的最具主导潜力的编辑器。也许我也应该试一试!


面试通过率

然而,编辑器的使用只是整个故事的一部分。并非所有编辑器的用法都相同。我想看看最好的程序员都在使用哪些编辑器。因此,我提取了与候选人在面试中表现有关的数据,并按他们使用的编辑器进行分组:



这张图显示了每种编辑器用户的通过率与所有候选人平均通过率的对比。首先,请注意脱颖而出的 Emacs 和 Vim!使用这些编辑的工程师的通过率远高于其他工程师。Emacs 用户通过率比其他工程师高 50%。我们该如何解释这种现象?一个可能的原因是因为 Vim 和 Emacs 是老牌编辑器。老牌编辑器的用户可能拥有更多的经验。但也请注意,VS Code 是第三好的编辑器——它是一个全新的编辑器,这反而让 VS Code 看起来更占优势。


Emacs 和 Vim 用户是否还有其他的一些特征让他们在面试中更有可能获得成功?也许他们倾向于花更多的时间和精力在短期内定制一个复杂的编辑器,以便在长期获得更多的回报?


另一方面,使用 Eclipse、intelliJ 和 Visual Studio 的工程师的通过率较低。Eclipse、IntelliJ 和 Visual Studio 有什么共同之处?它们都是 IDE。但是,PyCharm 也是一个功能齐全的 IDE,它的通过率也较高。Eclipes、IntelliJ 和 Visual Studio 的另一个显著特点是它们与 Java 和 C#的联系非常紧密,那么我们可能只是看到了特定编辑器和特定编程语言之间的相关性结果吗?


为此,我也按照编程语言查看了面试通过率:



Java 和 C#确实具有相对较低的通过率,尽管 Eclipse 的通过率低于 Java(-21.4%对-16.7),因此我们无法完全解释是不是 Java 拖了 Eclipse 的后腿。


还有,Go 语言发生了什么?Go 程序员表现都很不错!为了深入研究这些问题,我按照编程语言查看了编辑器的使用情况:



这张图上的百分比对应的是每个编辑器。我们可以看到,97%的工程师使用 PyCharm 开发 Python(很正常,这从它的名字就可以看出来)。使用 Eclipse 的主要是 Java(94%)用户,使用 Visual Studio 的主要是 C#和 C++(88%)用户。我无法说清楚它们之间的因果关系,但似乎编程语言(Java、C#)和 IDE(Eclipse、Visual Studio)都与较低的通过率相关联。这些数据来自我们的内部面试,但同样的结果也适用于使用我们平台进行招聘的外部公司。


在做出面试决策时,Triplebyte 不会考虑候选人使用哪门编程语言或哪种编辑器。并且外面有很多优秀的 C#和 Java 程序员。但是,通过我们面试的普通 C#或 Java 工程师似乎不如普通 Ruby 或 Go 工程师好,我不知道为什么。


我们从这张图中发现的另一个有趣的地方是 VS Code 和 Sublime 之间的区别。VS Code 主要用于 JavaScript 开发(61%),但不太常用于 Python 开发(22%)。而 Sublime 的数字基本上是相反的(51%Python 和 30%JavaScript)。有趣的是,VS Code 用户的通过率高于 Sublime 用户,尽管他们主要使用 JavaSript。


经验水平和地理位置

最后,我按经验水平和地理位置来切分数据。在下图中可以看到不同经验水平的人使用编程语言的情况:



图中显示的是具有给定经验水平的人使用每种语言的百分比。有趣的是 Python 和 Java 最受实习生或具有兼职经验的候选人的欢迎。


下面是不同经验级别的候选人使用编辑器的情况:



首先,随着经验水平的增加,VS Code 的使用率在下降。可见 VS Code 在初级工程师中更受欢迎。我们还可以看到,Vim 和 Emacs 在经验丰富的工程师中更受欢迎。这似乎是合乎逻辑的,这也是 Vim 和 Emacs 用户在我们的面试中具有如此高通过率的主要原因。


最后,我们还研究了地理位置和使用的语言之间的关系:



大公司一般位于半岛地区,因此你会看到很多 Java 开发人员。在旧金山,创业公司占主导地位,你会看到更多的人使用 JavaScript。


结论

以下是我们在过去一年中看到的工具使用趋势的总结,以及工程师选择的工具与编程能力之间的一些有趣的关系:


Visual Studio Code 正在崛起。在过去的一年里,它已经成为最受欢迎的编辑器,并且每个月都在增长。我在想,编辑器领域是否正在经历一场动荡的变革,从一个相对分散的市场转变为某个编辑器占据 50%以上份额的市场?


使用像 Vim 或 Emacs 这样的老派编辑器的工程师往往是有经验的程序员。也就是说,这些编辑器在经验丰富的工程师中特别受欢迎。


使用 Go 语言的工程师也很厉害。


使用 Eclipse 或 Visual Studio 的工程师在我们的面试中表现稍差一些(平均)。


最后我想说的是,我们认为它们之间没有必然的因果关系。也就是说,我不建议你基于这些数据开始使用 Emacs 和 Go 语言(或者停止使用 Eclipse 和 Java)。有些很厉害的程序员会使用每一种工具。在面试中,最重要的是要使用你最熟悉的工具。


英文原文:https://triplebyte.com/blog/editor-report-the-rise-of-visual-studio-code


2018 年 12 月 11 日 00:092982
用户头像

发布了 731 篇内容, 共 390.2 次阅读, 收获喜欢 1923 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

校招开始,你做好【终身成长】的准备了吗?

闲鱼技术

人脸识别无间道

脑极体

Kubernetes入门——Kubernetes工作原理及使用

百度开发者中心

#Kubernetes# #技术课程#

PHP-Trait解析与使用

一个大红包

3月日更

Nginx 一个高性能的HTTP和反向代理服务器

赖猫

nginx 后端 Linux服务器

第七.产品规划与功能规划

让我思考一会儿

对htmlMeta的实例详解

佰草

html5

五个问题,三大策略,手把手教你定制App性能监控方案

友盟全域数据

监控 应用性能 监控工具 告警设置 质量监控

吉他扒谱该怎么做?分享一款超好用的扒谱工具!

奈奈的杂社

网易云音乐:基于分布式图学习PGL的推荐系统优化之路

百度开发者中心

2021金三银四必备的1000道Java面试题以及答案整理【最新版】

Java 编程 程序员 面试

如何跨单元格绘制斜线

IT蜗壳-Tango

3月日更 IT蜗壳教学

uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

黑马腾云

微信小程序 uni-app 大前端 uniapp 3月日更

React在函数组件中使用Ant-Design的Form(form组件和按钮属于不同的组件)

依旧廖凯

28天写作 3月日更

面试官:啥?SynchronousQueue是钟点房?

四猿外

Java 并发编程 高并发 并发 SynchronousQueue

微服务的下一步,离不开服务网格

xcbeyond

微服务 Service Mesh 服务网格 3月日更

在vscode中go编码发生的问题整理

happlyfox

学习 vscode 28天写作 3月日更 Go 语言

Java程序员面试15家公司收到15份offer,月薪35K全靠这Java面试小抄(2021版)开源分享

Java 程序员 面试

PC五年,华为如水

脑极体

阿里二面:什么是mmap?

艾小仙

论如何快速吃透算法?186道高阶算法题+学习资料程序员面试必备

比伯

Java 编程 架构 面试 程序人生

(28DW-S8-Day26) 研发流程重整

mtfelix

28天写作

小争哥的算法打卡1群-算法题打卡

黄敏

算法

mysql5.7安装教程

xiezhr

MySQL 安装 MySQL 运维

思维转换 - 更好的认识世界

石云升

程序员 思维模型 28天写作 3月日更

Java的“泛型”特性,你以为自己会了?(万字长文)

比伯

Java 编程 程序员 架构 计算机

Kyuubi: 网易数帆开源的企业级数据湖探索平台(架构篇)

网易数帆

大数据 spark 开源 Kyuubi

Timewait是什么

我是程序员小贱

3月日更

ICASSP2021 M2VoC挑战赛报告会:高分队伍及评审分享回顾(附PPT)

爱奇艺技术产品团队

腾讯极客技术挑战赛-writeup

Kubernetes入门——深入浅出讲Docker

百度开发者中心

Docker Kubernetes 云原生

编辑器领域正发生变革?从面试看Visual Studio Code的崛起_语言 & 开发_Triplebyte_InfoQ精选文章