百万开发者调查告诉你:程序员最讨厌什么编程语言?
近日,全球著名的 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
精彩文章推荐:
刚刚,自学3天的阿法元100:0完爆阿法狗,GitHub2017年度报告见证人工智能有多火!