百萬開發者調查告訴你:程序員最討厭什么編程語言?
近日,全球著名的 IT 網站 Stack Overflow 根據數百萬開發者項目標簽的使用頻率,發布了一份編程語言的調查報告,試圖找出最不受歡迎的編程語言。沒想到開發者最想規避的編程語言中,PHP、Objective-C 和 Ruby 等語言紛紛上榜。
說好的 PHP 是世界上最好的語言的呢?
前段時間,小編分享了GitHub2017年度報告,了解到當下最流行的編程語言,那你知曉開發者中最不受歡迎的編程語言嗎?
開發者最討厭的編程語言
01最不受歡迎的編程語言
在 Stack Overflow 上,開發者可以創建屬于自己的“Developer Story”,用來記錄項目開發、獲得的成就等個人開發經驗,相當于簡歷,待發布之后也可以提升職場機遇。
在創建“Developer Story”時,可以添加喜歡或者不喜歡的語言標簽,而本調查報告的數據來源正是基于此。
將該數據作為衡量標準,并以特定的編程語言列表(并非是像 Android 這樣的平臺或是 JQuery 這樣的庫)進行篩選。
Stack Overflow 使用 Bayes 方法來預估這些平均值,最終發現開發者中最不受歡迎的語言前三名分別為 Perl、Delphi 和 VBA,緊隨其后的是 PHP、Objective-C、Coffeescript 和 Ruby。
如果此前看過有關 Stack Overflow 的編程語言報告,就會發現,那些很少被標記為不受歡迎的編程語言往往就是使用率快速增長的語言。比如 R、Python、Typescript、Go 和 Rust 等語言增長率都比較高。
下面我們可以通過比較每種語言的增長與標記“dislike”的百分比進行驗證,橙色點表示最不受歡迎的語言。以下我們將統計數據限制在發達國家(如美國、英國、德國和加拿大)。
總體而言,語言的增長率與開發者“dislike”的頻率之間有一種關系。被標記為“dislike”標簽的編程語言占比在 3% 以上的,使用率越來越少,而最少被標記為“dislike”的 R、Rust、Typescript 和 Kotlin 語言使用率都在快速上升。
02那些開發者喜歡及不待見的技術
上述分析僅考慮編程語言,而不是操作系統、平臺或庫。那什么是開發者最不喜歡的技術?
據調查報告顯示,普遍喜歡的技術則包括:機器學習、Git、Python 3.x、HTML5 和 CSS3 。
開發者最不喜歡的技術包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。
值得強調的是,以上并非是對某一語言的歧視,而僅僅是衡量哪些技術在至少一部分開發人員的使用過程中,是讓他們感覺到舒服還是負面的。
03獨立的標簽網絡
我們可以將所有這些標簽組合成一個故事,將其組織成一個網絡。在最近的一篇文章中,Julia Silge 展示了如何構建一個技術網絡來代表整個軟件生態系統。
如果我們根據每個“dislike”標簽的對節點進行著色,我們可以了解生態系統的哪些部分比其他標簽更具爭議性。
通過將“Developer Story”標簽放在子生態系統中,我們發現有獨立的子系統的集群:微軟(以C # 和 .Net 為中心)、PHP(WordPress 和 Drupal 環繞),和移動開發(特別是 Objective-C)。
操作系統的集群內(右下),我們可以看到,系統如 OSX 和 Windows 被標記為“dislike”,但標簽如 Linux、Ubuntu 和 Unix 卻并非如此。
04技術型的競爭之路
有意思的是,數據還體現了行業中存在的技術型競爭關系,像是 Linux 、OSX vs Windows,Git vs SVN,vim vs emacs ,React vs Angular 等。開發人員通常不愿意使用他們認為過時的東西,建議用更現代的技術來取代。
以上并不表示直接的因果關系,標簽不被程序員使用,導致它們被放棄。一種可能性是,如果人們感覺到語言已經越來越受歡迎,就會很樂意公開表達自己的喜歡與不喜歡;另一種原因就是與時俱進,以新的更新替換舊而復雜的編程語言。
Python 成為數據科學家首選語言
數據平臺 Kaggle 近日發布了 2017 機器學習及數據科學調查報告,這也是 Kaggle 首次進行全行業調查。
該調查收集了1.6萬多問卷,問卷內容包括在機器學習行業中最火的編程語言,以及如何更好的入門數據開發等。
下面就是其中一部分調查結果,如:
- Python 是最常用的工具, R 語言用戶的忠誠度更高。
- 數據科學家的年齡平均在30歲左右,但這種平均年齡在不同國家之間有所不同。例如,來自印度的平均受訪者年齡比澳大利亞的平均受訪者年齡年輕9歲。
- 獲得了碩士學位的受訪者占比最多,但那些收入超過 150K + 的,大部分獲得博士學位。
以下就是 Kaggle 報告內容:
01年齡
本次調查對象的平均年齡在 30 歲左右。當然,不同國家之間的數值會有所不同。例如,日本的機器學習從業者的年齡中位數為 33 歲。
全球全職工作者占比為 65.7%,中國為 53%, 其中,白俄羅斯的占比最高,全職工作者占比達到 75.5%。
02學歷
正常情況下,在數據科學工作中,獲得碩士學位的人數比例最高。但那些收入高于 150K+ 的人大部分取得博士學位。擁有碩士學位的開發者,年薪約 5.5 萬美元。
03全職薪資(年薪)
盡管在調查中發現,對于受訪者來說,“薪酬福利”的重要性不及“專業發展的機會”,但如果能了解到自己行業中的普遍薪資情況也是不錯的。調查發現,在美國,機器學習工程師的薪資是最高的。
在全球范圍內,機器學習工程師的薪資中位數是 55,441 美元,不過由于很多人沒有全職工作(收入為 0),所以這一數值還是存在一定誤差。
04最常使用的數據科學方法
Logistic 回歸是除了軍事和國安領域外,最常用的數據科學研究方法。它在軍事和國防安全領域以及神經網絡領域使用更為廣泛。
05工作中最常使用什么工具?
Python 是數據科學家們最常用的語言,不過仍然有很大一部分數據科學家忠誠于 R 語言。
06最常使用的數據類型
關系型數據是開發者在工作中最常用的數據類型,因為大多數產業工程師都較青睞關系型數據。而學術研究者和國防安全產業則更青睞于文本和圖像。
Dirty Data (臟數據)是從業者遇到的最大障礙。數據科學家一般最常見的困擾就是需要對數據進行大量的預處理工程。理解不同算法的能力不足也是困擾數據工作者的一大障礙。此外,缺乏一定有效管理和資金支持也是面臨的兩大外在困境。
Git 是他們最常用的代碼共享和托管方式 ,占比有 58.4%。但大公司的開發者更傾向于將代碼保留在本地,通過電子郵件的方式來共享代碼。而初創公司為了追求便捷可能更青睞于云共享。
當你進入一個新的職業生涯時,了解別人成功的秘訣可以讓你少走很多彎路。以下是數據科學行業的前輩給出的幾條最有用的建議,希望對想要進入這個行業的人有一定幫助:
07入門數據科學最推薦先學哪門語言?
每個數據科學家都堅信自己選擇的語言是正確的。比如完全使用 Python 或 R 的人,他們分別最先推薦學習的語言分別為 Python 和 R。但是,同時使用 R 和Python的人中,推薦使用 Python 的人數是推薦學習 R 語言的兩倍。
08數據科學學習平臺
數據科學是個變化極快的領域,業內人員需要不斷更新知識體系,才可以在業內保持一定地位,不被時代淘汰。Stack Overflow Q&A、Conferences 和 Podcasts 是已從業者經常使用的學習平臺。
09開源數據獲取平臺
沒有數據就沒有數據科學。當談到學習數據科學時,知道如何找到開放數據集用于實踐項目是相當重要的。dataset aggregators 正發展為數據科學社區成員中最頻繁使用的工具,排行第二的是谷歌搜索。
說到找工作,更多的人可能是到指定技術方向的招聘網站上找,但是根據多年數據科學領域工作經驗的前輩們,直接聯系招聘者或通過自己的人際圈進入這個領域才是他們的首選。(注意:該報告包含多個國家的數據,可能存在收集不夠全面的情況,僅供參考。)
Python 的 14 張思維導圖
最后給大家分享 Python 的 14 張思維導圖(微信后臺回復關鍵詞“Python”下載),結合這些思維導圖主要參考的資料,分享一下大神們的學習體驗,一方面可供初學者參考,另一方面,也便于大家結合思維導圖深入學習、理解、思考。
01總覽
02基礎知識
03數據類型
04序列
05字符串
06列表 & 元組
07字典 & 集合
08條件 & 循環
09文件對象

10錯誤 & 異常
11函數
12模塊
13面向對象編程
微信后臺回復關鍵詞“Python”下載 14 張思維導圖
Stack Overflow調查報告:https://stackoverflow.blog/2017/10/31/disliked-programming-languages/
2017 機器學習調查報告:https://www.kaggle.com/surveys/2017