編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起

Visual Studio Code(VS Code)的使用率在迅速上升,現在已經成為大多數工程師的首選編輯器,并似乎正迅速搶占其他頂級編輯的市場份額。

Triplebyte 每周都會面試數百名工程師。在每次面試中,我們都會記錄面試者使用的編輯器、編程語言和操作系統。我們不會根據這些信息來決定面試者是否可以通過面試(我認為這不公平)。不過,這些非常令人著迷!它讓我們可以深入了解不同工程師群體喜歡哪些工具,以及這些偏好如何隨著時間發生變化。我們還可以借此識別出工程師選擇的工具與他們在面試期間的表現之間的相關性。

我的同事 Mike 在一年前寫了一篇有關這些數據的文章。Triplebyte 從那時起已經得到了長足的發展,因此我們現在可以更深入地挖掘這些數據,所以我寫下了這篇文章。

編輯器使用率

我提取了去年所有面試中使用的編輯器數據:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


從這張圖中可以看到,Visual Studio Code 有多么的突出。VS Code 占了 17%的比例,它是去年多個 Triplebyte 候選人使用的編輯器。這讓我感到些許驚訝,主要基于兩個方面的原因。首先,VS Code 是一款來自微軟的相對較新的產品。其次,去年它甚至都沒有出現在我們的排行榜上——它的比例小到足以落入“其他”部分。

為了更好地了解這一點,我基于相同的數據繪制了另一張圖:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


VS Code 正在吃掉其他編輯器的份額!很明顯,在過去的一年中,VS Code 的使用率從 5%上升到 22%。與此同時,Sublime Text 的使用率從 17%下降到 11%,Atom 的使用量從 11%下降到 6%,甚至連 Eclipse 也在下降。VS Code 每個月都在增加。Google Trends 顯示了類似的結果:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


VS Code 正在崛起,并有望成為我們見過的最具主導潛力的編輯器。也許我也應該試一試!

面試通過率

然而,編輯器的使用只是整個故事的一部分。并非所有編輯器的用法都相同。我想看看最好的程序員都在使用哪些編輯器。因此,我提取了與候選人在面試中表現有關的數據,并按他們使用的編輯器進行分組:

編輯器領域正發生變革?從面試看 Visual Studio 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# 的聯系非常緊密,那么我們可能只是看到了特定編輯器和特定編程語言之間的相關性結果嗎?

為此,我也按照編程語言查看了面試通過率:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


Java 和 C# 確實具有相對較低的通過率,盡管 Eclipse 的通過率低于 Java(-21.4%對 -16.7),因此我們無法完全解釋是不是 Java 拖了 Eclipse 的后腿。

還有,Go 語言發生了什么?Go 程序員表現都很不錯!為了深入研究這些問題,我按照編程語言查看了編輯器的使用情況:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


這張圖上的百分比對應的是每個編輯器。我們可以看到,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。

經驗水平和地理位置

最后,我按經驗水平和地理位置來切分數據。在下圖中可以看到不同經驗水平的人使用編程語言的情況:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


圖中顯示的是具有給定經驗水平的人使用每種語言的百分比。有趣的是 Python 和 Java 最受實習生或具有兼職經驗的候選人的歡迎。

下面是不同經驗級別的候選人使用編輯器的情況:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


首先,隨著經驗水平的增加,VS Code 的使用率在下降。可見 VS Code 在初級工程師中更受歡迎。我們還可以看到,Vim 和 Emacs 在經驗豐富的工程師中更受歡迎。這似乎是合乎邏輯的,這也是 Vim 和 Emacs 用戶在我們的面試中具有如此高通過率的主要原因。

最后,我們還研究了地理位置和使用的語言之間的關系:

編輯器領域正發生變革?從面試看 Visual Studio Code 的崛起


大公司一般位于半島地區,因此你會看到很多 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281323.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281323.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281323.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#7.0 ref引用傳遞

1.概要在工作中大家用到引用類型是非常多的,大家都知道引用類型在使用過程中傳遞的是對象引用并不會發生整個對象復制。而值類型在傳遞的過程中就不一樣了,我曾經在編寫代碼時希望通過值類型來壓低應用程序的內存占用,在高并發的情況大量的對…

Vue+Axios同步請求

axios本身是沒有同步請求的,要實現同步請求,用到的是ES7的async和await ES7的異步特性async / await async用于聲明一個函數是異步的,await用于聲明在一個異步函數中等待語句執行完畢。也就是說await只能在async函數中使用。簡單示例如下&a…

關于vue執行打包后,如何在本地瀏覽問題

最近一個人在搗鼓vue,寫完項目后發現在npm run dev下可以正常訪問,bulid之后卻一片空白,查看console出現許多Failed to load resource: net::ERR_FILE_NOT_FOUND。恩,看了下網上評論找到了正確的方法 webpack.prod.conf.js 中outp…

ELFhash

字符串哈希算法(以ELFHash詳解) 更多字符串哈希算法請參考:http://blog.csdn.net/AlburtHoffman/article/details/19641123 先來了解一下何為哈希: 哈希表是根據設定的哈希函數H(key)和處理沖突方法將一組關鍵字映射到一個有限的地…

android面試詳解

前臺就是和用戶交互的進程 可見進程例如一個activity被一個透明的對話框覆蓋,該activity就是可見進程 服務:service進程 后臺一個activity按了home按鍵就是從前臺退回到后臺 標準模式:不管任務棧是否存在相同的activity都會創建一個新的activ…

element-ui Notification重疊問題,原因及解決辦法

在1個方法中調用兩次this.$notify方法,會出現通知框重疊的問題 methods: {checkLogin: function () {if (this.username ) {this.$notify({title: 提示,message: 請輸入用戶名})}if (this.password ) {this.$notify({title: 提示,message: 請輸入用戶密碼})}}}網上…

Visual Stiudio使用技巧

技巧1 自動生成帶參構造函數當我們在編寫代碼時會經常遇到初始化一個的類,需要通過構造函數進行對象初始化。那么這個時候我們可能會需要逐個去手動寫,這樣的工作即重復又無趣。如果是在項目非常緊急的情況下還有大量的字段需要與入參一一對應起來簡直太…

js將時間戳格式化為HH:ii:ss的格式

將時間戳格式化為 HH:ii:ss的格式 <html> <head> </head> <body><span id"time"></span><script>var timestamp Date.parse(new Date())/1000;var time_old Date.parse(new Date())/1000;timeAdd()/*** purpose : …

Struts 整合 SpringMVC

Struts 整合 SpringMVC 過程&#xff1a;這篇文章是我在整合過程中所做的記錄和筆記 web.xml &#xff1a;篩選器機制過濾 原機制是攔截了所有 url &#xff0c;即 <url-pattern>/*</url-pattern>新機制為了將 structs2 的 url 與 SpringMVC 的 url 區分開來&#…

Vue保持用戶登錄及權限控制

vue-router-power-demo 核心內容有兩點&#xff1a; 一是保持用戶登錄狀態&#xff0c;二是根據登錄用戶的角色動態掛在路由 使用vuex保持用戶登錄 點擊登錄按鈕&#xff0c;使用vuex的actions分發登錄操作&#xff0c;發送用戶名和密碼到后臺獲取登錄token&#xff0c; 并存…

java B2B2C Springcloud多租戶電子商城系統-Spring Cloud Sleuth

在微服務框架中&#xff0c;一個由客戶端發起的請求在后端系統中會經過多個不同的的服務節點調用來協同產生最后的請求結果&#xff0c;每一個前段請求都會形成一條復雜的分布式服務調用鏈路&#xff0c;鏈路中的任何一環出現高延時或錯誤都會引起整個請求最后的失敗。 愿意了解…

C#性能測試BenchmarkDotnet

1.簡介在我們開發高性能代碼時&#xff0c;需要各種針對性能優化進行編碼。那么如何才能知道我們所加的代碼是否有性能方面的正向優化呢&#xff1f;有了BenchmarkDotNet&#xff0c;做性能對比測試就非常容易了&#xff0c;只需要把你的測試方法加上特性[Benchmark], 想做不同…

Requests獲取連接的IP地址

在接口自動化的時候&#xff0c;需要獲取到連接的本地IP地址&#xff0c;方法如下 1 import requests 2 3 rsp requests.get("http://www.baidu.com", streamTrue) 4 print rsp.raw._connection.sock.getpeername()[0] 5 print rsp.raw._connection.sock.getsockna…

阿里云APP(V4.3) SSH遠程登錄功能設置操作指南

阿里云APP V4.3 發布了&#xff0c;這次的升級&#xff0c;不僅在iOS和android平臺上支持SSH遠程登錄ECS功能&#xff0c;也支持密鑰登錄哦~~~ SSH遠程登錄&#xff0c;這是一個連阿里巴巴自己的技術人員都開心不已的功能&#xff01; 各位攻城獅們&#xff0c;從更新到V4.3的那…

JS專題之節流函數

本文共 2000 字&#xff0c;讀完只需 8 分鐘上一篇文章講了去抖函數&#xff0c;然后這一篇講同樣為了優化性能&#xff0c;降低事件處理頻率的節流函數。 一、什么是節流&#xff1f; 節流函數&#xff08;throttle&#xff09;就是讓事件處理函數&#xff08;handler&#xf…

vue 2.6 插槽v-slot用法記錄

v-slot用法簡記用法示例匿名插槽與具名插槽插槽作用域組件使用插槽動態命名總結用法示例 vue2.6統一了插槽的語法v-slot 匿名插槽與具名插槽 在其他組件中使用child組件 <child><template v-slot:slotName>hello world</template> </child>child組…

Latex排版全解(轉)

Latex排版全解 http://blog.csdn.net/langb2014/article/details/51354238轉載于:https://www.cnblogs.com/yifdu25/p/8338399.html

git-ftp Can't access remote 'ft://...', exiting...問題記錄

環境 服務器&#xff1a;西部數碼虛擬主機 本地系統&#xff1a;windows 10 (LTSC 2019) 軟件&#xff1a; Git Bash&#xff0c;gti-ftp (版本1.6.0) 問題 在使用git ftp init初始化上傳代碼的時候會出現 $ git ftp init fatal: Cant access remote ftp://dmkt:***dmkt.goto…

【Flutter教程】從零構建電商應用(一)

在這個系列中&#xff0c;我們將學習如何使用google的移動開發框架flutter創建一個電商應用。本文是flutter框架系列教程的第一部分&#xff0c;將學習如何安裝Flutter開發環境并創建第一個Flutter應用&#xff0c;并學習Flutter應用開發中的核心概念&#xff0c;例如widget、狀…

為OWA自定義快捷鍵

這篇短文分享一下如何為自己常用的網頁添加自定義功能&#xff0c;例如添加快捷鍵。我這里用一個常用的網站作為范例。它是Outlook Web Access (OWA), 它的地址一般如下。我在寫郵件時希望能用一些快捷鍵來提高工作效率&#xff0c;但系統默認自帶的快捷鍵特別少&#xff0c;而…