154

百万开发者调查告诉你:程序员最讨厌什么编程语言?

 6 years ago
source link: http://news.51cto.com/art/201711/556327.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

百万开发者调查告诉你:程序员最讨厌什么编程语言?-51CTO.COM

be0a7bf1f1da0f3b02e6f49ff1d9ba5d.jpg
百万开发者调查告诉你:程序员最讨厌什么编程语言?
作者:佚名 2017-11-03 10:21:08
全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言。没想到开发者最想规避的编程语言中,PHP、Objective-C 和 Ruby 等语言纷纷上榜。

f7984c34472f354415be979937e2b050.jpg

近日,全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言。没想到开发者最想规避的编程语言中,PHP、Objective-C 和 Ruby 等语言纷纷上榜。

5a00abeff518f2c69e9fd873382c0bd0.gif

说好的 PHP 是世界上最好的语言的呢?

前段时间,小编分享了GitHub2017年度报告,了解到当下最流行的编程语言,那你知晓开发者中最不受欢迎的编程语言吗?

开发者最讨厌的编程语言

01最不受欢迎的编程语言

在 Stack Overflow 上,开发者可以创建属于自己的“Developer Story”,用来记录项目开发、获得的成就等个人开发经验,相当于简历,待发布之后也可以提升职场机遇。

在创建“Developer Story”时,可以添加喜欢或者不喜欢的语言标签,而本调查报告的数据来源正是基于此。

ce4440e2152f52e6caa1dc9bb0815f75.jpg

将该数据作为衡量标准,并以特定的编程语言列表(并非是像 Android 这样的平台或是 JQuery 这样的库)进行筛选。

Stack Overflow 使用 Bayes 方法来预估这些平均值,最终发现开发者中最不受欢迎的语言前三名分别为 Perl、Delphi 和 VBA,紧随其后的是 PHP、Objective-C、Coffeescript 和 Ruby。

fd4edd33fc104ec9b1dc99ef569fbfaf.jpg

如果此前看过有关 Stack Overflow 的编程语言报告,就会发现,那些很少被标记为不受欢迎的编程语言往往就是使用率快速增长的语言。比如 R、Python、Typescript、Go 和 Rust 等语言增长率都比较高。

下面我们可以通过比较每种语言的增长与标记“dislike”的百分比进行验证,橙色点表示最不受欢迎的语言。以下我们将统计数据限制在发达国家(如美国、英国、德国和加拿大)。

1b42ec8c486b795c1311b1b3f3d6b8e9.jpg

总体而言,语言的增长率与开发者“dislike”的频率之间有一种关系。被标记为“dislike”标签的编程语言占比在 3% 以上的,使用率越来越少,而最少被标记为“dislike”的 R、Rust、Typescript 和 Kotlin 语言使用率都在快速上升。

02那些开发者喜欢及不待见的技术

上述分析仅考虑编程语言,而不是操作系统、平台或库。那什么是开发者最不喜欢的技术?

据调查报告显示,普遍喜欢的技术则包括:机器学习、Git、Python 3.x、HTML5 和 CSS3 。

7bb0f92172ac5614b1b36b7cd9411158.jpg

开发者最不喜欢的技术包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。

a57dcdda2d69b17f9b862f932ebdc996.jpg

值得强调的是,以上并非是对某一语言的歧视,而仅仅是衡量哪些技术在至少一部分开发人员的使用过程中,是让他们感觉到舒服还是负面的。

03独立的标签网络

我们可以将所有这些标签组合成一个故事,将其组织成一个网络。在最近的一篇文章中,Julia Silge 展示了如何构建一个技术网络来代表整个软件生态系统。

如果我们根据每个“dislike”标签的对节点进行着色,我们可以了解生态系统的哪些部分比其他标签更具争议性。

47fb8e1205910af8771567243a6948bf.jpg

通过将“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 等。开发人员通常不愿意使用他们认为过时的东西,建议用更现代的技术来取代。

74bd1f626a67d8752ad656692a014119.jpg

以上并不表示直接的因果关系,标签不被程序员使用,导致它们被放弃。一种可能性是,如果人们感觉到语言已经越来越受欢迎,就会很乐意公开表达自己的喜欢与不喜欢;另一种原因就是与时俱进,以新的更新替换旧而复杂的编程语言。

Python 成为数据科学家首选语言

数据平台 Kaggle 近日发布了 2017 机器学习及数据科学调查报告,这也是 Kaggle 首次进行全行业调查。

该调查收集了1.6万多问卷,问卷内容包括在机器学习行业中最火的编程语言,以及如何更好的入门数据开发等。

下面就是其中一部分调查结果,如:

  • Python 是最常用的工具, R 语言用户的忠诚度更高。
  • 数据科学家的年龄平均在30岁左右,但这种平均年龄在不同国家之间有所不同。例如,来自印度的平均受访者年龄比澳大利亚的平均受访者年龄年轻9岁。
  • 获得了硕士学位的受访者占比最多,但那些收入超过 150K + 的,大部分获得博士学位。

以下就是 Kaggle 报告内容:

01年龄

03f0933f20f7d55d59c37f8937776231.jpg

本次调查对象的平均年龄在 30 岁左右。当然,不同国家之间的数值会有所不同。例如,日本的机器学习从业者的年龄中位数为 33 岁。

4831a4e20a2f8856c56131bc558edddb.jpg

全球全职工作者占比为 65.7%,中国为 53%, 其中,白俄罗斯的占比最高,全职工作者占比达到 75.5%。

02学历

09fbb69673bdac6690e46ffc8ae500c3.jpg

正常情况下,在数据科学工作中,获得硕士学位的人数比例最高。但那些收入高于 150K+ 的人大部分取得博士学位。拥有硕士学位的开发者,年薪约 5.5 万美元。

03全职薪资(年薪)

3015674c0018abc67690a686a8417174.jpg

尽管在调查中发现,对于受访者来说,“薪酬福利”的重要性不及“专业发展的机会”,但如果能了解到自己行业中的普遍薪资情况也是不错的。调查发现,在美国,机器学习工程师的薪资是最高的。

在全球范围内,机器学习工程师的薪资中位数是 55,441 美元,不过由于很多人没有全职工作(收入为 0),所以这一数值还是存在一定误差。

04最常使用的数据科学方法

18f6f6b72c960e88b400aa70bac16225.jpg

Logistic 回归是除了军事和国安领域外,最常用的数据科学研究方法。它在军事和国防安全领域以及神经网络领域使用更为广泛。

05工作中最常使用什么工具?

89ab258b72c9e6d2755cc62ed7b14072.jpg

Python 是数据科学家们最常用的语言,不过仍然有很大一部分数据科学家忠诚于 R 语言。

06最常使用的数据类型

d9a1a644d607975c33f3901cf3fc0ea0.jpg

关系型数据是开发者在工作中最常用的数据类型,因为大多数产业工程师都较青睐关系型数据。而学术研究者和国防安全产业则更青睐于文本和图像。

4c95e058bb4c47ea02148a7889367c29.jpg

Dirty Data (脏数据)是从业者遇到的最大障碍。数据科学家一般最常见的困扰就是需要对数据进行大量的预处理工程。理解不同算法的能力不足也是困扰数据工作者的一大障碍。此外,缺乏一定有效管理和资金支持也是面临的两大外在困境。

50c51a78ea9e8f72e0ee294539305b6e.jpg

Git 是他们最常用的代码共享和托管方式 ,占比有 58.4%。但大公司的开发者更倾向于将代码保留在本地,通过电子邮件的方式来共享代码。而初创公司为了追求便捷可能更青睐于云共享。

当你进入一个新的职业生涯时,了解别人成功的秘诀可以让你少走很多弯路。以下是数据科学行业的前辈给出的几条最有用的建议,希望对想要进入这个行业的人有一定帮助:

07入门数据科学最推荐先学哪门语言?

4737ffa254d3d6494ec25b9390071b29.jpg

每个数据科学家都坚信自己选择的语言是正确的。比如完全使用 Python 或 R 的人,他们分别最先推荐学习的语言分别为 Python 和 R。但是,同时使用 R 和Python的人中,推荐使用 Python 的人数是推荐学习 R 语言的两倍。

08数据科学学习平台

e7efea2465cc549ca9f615d325c224aa.jpg

数据科学是个变化极快的领域,业内人员需要不断更新知识体系,才可以在业内保持一定地位,不被时代淘汰。Stack Overflow Q&A、Conferences 和 Podcasts 是已从业者经常使用的学习平台。

09开源数据获取平台

146d0ce36d5397e7ad1c9cc995c84a99.jpg

没有数据就没有数据科学。当谈到学习数据科学时,知道如何找到开放数据集用于实践项目是相当重要的。dataset aggregators 正发展为数据科学社区成员中最频繁使用的工具,排行第二的是谷歌搜索。

fdbc38b1505e3d9b50e31d4864d967eb.jpg

说到找工作,更多的人可能是到指定技术方向的招聘网站上找,但是根据多年数据科学领域工作经验的前辈们,直接联系招聘者或通过自己的人际圈进入这个领域才是他们的首选。(注意:该报告包含多个国家的数据,可能存在收集不够全面的情况,仅供参考。)

Python 的 14 张思维导图

最后给大家分享 Python 的 14 张思维导图(微信后台回复关键词“Python”下载),结合这些思维导图主要参考的资料,分享一下大神们的学习体验,一方面可供初学者参考,另一方面,也便于大家结合思维导图深入学习、理解、思考。

01总览

b306e19e3c894f6d8cf74301f0a9bfef.jpg

02基础知识

5cb17c1c6967979dfbbb30a57e7e4277.jpg

05db84820ade5e99827d8cdb4c53df7e.jpg

03数据类型

746ff754b26c863c507dedd8dd85caa2.jpg

04序列

200def873d6a6dc215a1b6f1a16702e0.jpg

05字符串

d4a5755b262c5ac0364aaf7691beef23.jpg

06列表 & 元组

9c058a605bf169fefe9fab37dec6c39f.jpg

07字典 & 集合

2fa9097b281c1843f49e776d73d738b8.jpg

08条件 & 循环

24d3c5aaedf3d01092f2803d416c0dd1.jpg

09文件对象

c6b8e07f816c98a41621af755ee8145f.jpeg

10错误 & 异常

4aafc6c32adf581504dc5c62291ecf90.jpg

11函数

096544100fda8e5c2e424f2f08a8ddf7.jpg

 

08faf7208331beb1a9e2118a5dc93ce7.jpg

12模块

4df8d2759d8ccfddfbf32b4609918e2a.jpg

13面向对象编程

1e54383784636ff335ab7725c1e41c47.jpg

微信后台回复关键词“Python”下载 14 张思维导图

Stack Overflow调查报告:https://stackoverflow.blog/2017/10/31/disliked-programming-languages/

2017 机器学习调查报告:https://www.kaggle.com/surveys/2017

aa516130267d72c3ac5360d7c1eb1b19.jpg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK