程式設計師為什麼討厭這些語言
全球著名的 IT 網站 Stack Overflow 根據數百萬開發者專案標籤的使用頻率,釋出了一份程式語言的調查報告,試圖找出最不受歡迎的程式語言。沒想到開發者最想規避的程式語言中,PHP、Objective-C 和 Ruby 等語言紛紛上榜。
說好的 PHP 是世界上最好的語言的呢?
你知曉開發者中最不受歡迎的程式語言嗎?
開發者最討厭的程式語言
01最不受歡迎的程式語言
在 Stack Overflow 上,開發者可以建立屬於自己的“Developer Story”,用來記錄專案開發、獲得的成就等個人開發經驗,相當於簡歷,待發布之後也可以提升職場機遇。
在建立“Developer Story”時,可以新增喜歡或者不喜歡的語言標籤,而本調查報告的資料來源正是基於此。
將該資料作為衡量標準,並以特定的程式語言列表(並非是像 Android 這樣的平臺或是 JQuery 這樣的庫)進行篩選。
Stack Overflow 使用 Bayes 方法來預估這些平均值,最終發現開發者中最不受歡迎的語言前三名分別為 Perl、Delphi 和 VBA,緊隨其後的是 PHP、Objective-C、Coffee 和 Ruby。
如果此前看過有關 Stack Overflow 的程式語言報告,就會發現,那些很少被標記為不受歡迎的程式語言往往就是使用率快速增長的語言。比如 R、Python、Type、Go 和 Rust 等語言增長率都比較高。
下面我們可以通過比較每種語言的增長與標記“dislike”的百分比進行驗證,橙色點表示最不受歡迎的語言。以下我們將統計資料限制在已開發國家(如美國、英國、德國和加拿大)。
總體而言,語言的增長率與開發者“dislike”的頻率之間有一種關係。被標記為“dislike”標籤的程式語言佔比在 3% 以上的,使用率越來越少,而最少被標記為“dislike”的 R、Rust、Type 和 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 正發展為資料科學社群成員中最頻繁使用的工具,排行第二的是谷歌搜尋。
說到找工作,更多的人可能是到指定技術方向的招聘網站上找,但是根據多年資料科學領域工作經驗的前輩們,直接聯絡招聘者或通過自己的人際圈進入這個領域才是他們的首選。(注意:該報告包含多個國家的資料,可能存在收集不夠全面的情況,僅供參考。)
相關文章
- 為什麼這麼多程式設計師和IT公司討厭敏捷開發?程式設計師敏捷
- 為什麼程式設計師會有最喜歡與最討厭的程式語言?(earthly)程式設計師
- 為什麼高階程式設計師討厭程式設計面試? - Adam程式設計師面試
- 為什麼每個人都討厭GO語言?Go
- [譯] 為什麼設計師討厭政治(如何解決)
- 為何程式設計師討厭運維平臺?程式設計師運維
- 為什麼有些程式設計師不待見 PHP 這門語言?看看30萬程式設計師怎麼說!程式設計師PHP
- 程式設計師你為什麼這麼累?程式設計師
- Stack Overflow:最令人討厭的程式語言
- 令人討厭的程式語言排行榜
- 為什麼我如此討厭scrums? - RedditScrum
- 我為什麼討厭GNU/Linux?Linux
- 為什麼女程式設計師會這麼少?程式設計師
- 程式設計師為什麼喜歡程式設計這項工作?程式設計師
- 沒人比程式設計師更討厭軟體程式設計師
- 這些程式語言程式設計師工資最高!Java才第四程式設計師Java
- 為什麼會有這麼多程式語言
- 最喜歡與最討厭的程式語言
- 程式設計師,你為什麼值這麼多錢?程式設計師
- 【譯】你的程式語言能做到這個嗎?(為什麼要學函數語言程式設計)函數程式設計
- 為什麼大部分的 PHP 程式設計師轉不了 Go 語言?PHP程式設計師Go
- 程式設計師討厭沒有價值的任務程式設計師
- 程式設計師都幹些什麼?程式設計師
- 為什麼會有這麼多的程式語言?
- 程式設計師用什麼語言:技術為王還是產品為王程式設計師
- 程式設計師你為什麼這麼累? - 配置規範程式設計師
- 為什麼我們程式設計師工作得這麼累?程式設計師
- 開發者最討厭的程式語言:PHP、Ruby 中槍PHP
- 為什麼Julia語言這麼棒?
- 《快學 Go 語言》第 2 課 —— 變數什麼的最討厭了Go變數
- 程式設計師為什麼焦慮於程式語言和框架?程式設計師框架
- 我討厭智力題,我還是個程式設計師嗎?程式設計師
- 程式設計師討厭專案經理的5個原因程式設計師
- 如果程式設計師是士兵,程式語言是武器,那麼每種語言都是什麼武器?程式設計師
- 最喜歡與最討厭的函數語言程式設計語言情緒排名 | Scalac.io函數程式設計
- 為什麼不討論ace,tao, hl2.0這些原始碼的設計模式?原始碼設計模式
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 為什麼Go是一種設計糟糕的程式語言Go