日,全球著名的 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
多朋友应该听说过程序员鄙视链:写汇编语言的工程师>写C语言的工程师>写C++语言的工程师>Python工程师>Java工程师>认为HTML是一种程序语言的设计师>PHP工程师。由此看出,前端程序员应该处于程序员鄙视链的底端,但是为什么有那么多计算机萌新都对HTML爱不释手呢?
HTML称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
使用HTML语言,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。
但很多人都会把HTML、HTML5、和H5混为一谈,在这里我来给大家简单区分一下:
HTML : HTML是一种纯文本类型的语言,它是Internet上用于编写网页的主要语言,HTML可以使用文本编辑器打开它产看其中的HTML源代码。
HTML5 : HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
什么叫做标准呢?你可以把标准理解为学生准则手册。你可以按照准则做,甚至可以超出准则更加严格的要求自己,也可以不按照准则来,但是会被老师训斥小伙伴讨厌,别人都不找你玩,就像IE6一样。
H5 :H5不是 HTML5、不是微信网页、不是移动 PPT。相反,从某种意义上来说,它是这些东西的母级,H5所指的就是移动网页本身,它能够包含所有这些分支。
前端之所以在计算机领域中被鄙视,是因为大家通常认为前端简单、缺少技术含量。他们觉得HTML就像一个玩具,很低端。早期的前端程序员俗称美工,每天的工作就是切图、写HTML,在很多Java或者C语言开发者眼中,就只是渲染一下网页,没多大的难度。
HTML确实很简单,门槛低易上手。但是,HTML简不简单真的那么重要吗?我们不能只看到HTML本身,HTML真正的精髓在于它是一条技术栈的核心:
HTML5+CSS+JS : 网页设计的基础语言 。如果把网站比作一个人,HTML5相当于人的骨骼,CSS相当于人的肉体,而JS相当于人体的动作。
PHP : PHP是创建动态交互性站点的强有力服务器脚本语言。门槛低,简单易学;拥有强大的面向对象包管理,可以方便地引用优质且维护良好的库,具有很高的易用性;开源,且拥有足够大的社区,具备动态语言的特性。
Node.js :Node.js既不是一个框架,也不是一门语言,简单来说就是一个应用编程平台。
Vue.js : 一套构建用户界面的渐进式框架。
HTML本身并没有那么重要,它只是一门纯文本类型的语言,重要的是它是一条技术栈的核心!学习一门计算机语言,看的不是这门语言有多么难学,算法多么高级,看的是你在学习这门语言的同时有没有建立一个完整的知识体系和技术栈!
或许有人会问,HTML会被时代淘汰吗?
答案是否定的。
整个互联网在不断发展,前端开发技术也在不断进步,前端开发市场会越来越广泛,人才需求当然也不会止步于当前,所以不论现在还是未来,淘汰的并不是HTML,应该是落后的技术和不合格的开发者。
在目前的移动应用开发大潮下,使用web技术进行移动应用开发正变得越来越流行,慢慢会变成以HTML为核心的技术栈配合数据库的天下。我们应该应该注重自身知识巩固和新知识的更新换代,建立完整的知识体系和技术栈,找准时代发展方向,努力专研,勇于创新,走在时代最前头!
好的 PHP 是世界上最好的语言的呢?
了解当下最流行的编程语言,那你知晓开发者中最不受欢迎的编程语言吗?是因为与时俱进的淘汰,还是“人红是非多”的不喜欢?
近日,全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言。没想到开发者最想规避的编程语言中,PHP、Objective-C 和 Ruby 等语言纷纷上榜。
在 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 语言使用率都在快速上升。
上述分析仅考虑编程语言,而不是操作系统、平台或库。那么什么是开发者最不喜欢的技术?据调查报告显示,开发者最不喜欢的技术包括 Internet Explorer、Visual Basic、Flash、COBOL、Fortran 和 Pascal 。
普遍喜欢的技术则包括:机器学习、Git、Python 3.x、HTML5 和 CSS3 。
值得强调的是,以上并非是对某一语言的歧视,而仅仅是衡量哪些技术在至少一部分开发人员的使用过程中,是让他们感觉到舒服还是负面的。
我们可以将所有这些标签组合成一个故事,将其组织成一个网络。在最近的一篇文章中,Julia Silge 展示了如何构建一个技术网络来代表整个软件生态系统。如果我们根据每个“dislike”标签的对节点进行着色,我们可以了解生态系统的哪些部分比其他标签更具争议性。
通过将“Developer Story”标签放在子生态系统中,我们发现有独立的子系统的集群:微软(以C # 和 .Net 为中心)、PHP(WordPress 和 Drupal 环绕),和移动开发(特别是 Objective-C)。操作系统的集群内(右下),我们可以看到,系统如 OSX 和 Windows 被标记为“dislike”,但标签如 Linux、Ubuntu 和 Unix 却并非如此。
有意思的是,数据还体现了行业中存在的技术型竞争关系,像是 Linux 、OSX vs Windows,Git vs SVN,vim vs emacs ,React vs Angular 等。开发人员通常不愿意使用他们认为过时的东西,建议用更现代的技术来取代。
以上并不表示直接的因果关系,标签不被程序员使用,导致它们被放弃。一种可能性是,如果人们感觉到语言已经越来越受欢迎,就会很乐意公开表达自己的喜欢与不喜欢;另一种原因就是与时俱进,以新的更新替换旧而复杂的编程语言。
对此,在 Hacker News 上网友也发表了自己的看法:
@chrisaycock:
文章定义了开发者在日常工作中编程语言的“喜欢”vs“不喜欢”偏好。例如,Perl 是最不受欢迎的语言,然其真正意义是,开发者将其归入不想要此类开发工作。
分析表明,语言的“喜欢”与其在 Stack Overflow 上的增长之间存在着相关性。 相关性并不是因果关系,这只能意味着开发者所从事的工作会使用较多的热门的语言。
@throwaway2016a:
Python 持续地受欢迎令我惊奇。虽然我喜欢 Python,它也适用于数据科学,但我不明白为什么人们将其用于网站。如果考虑到易用性,并且如果要执行性能,PHP 和 Ruby 生态系统将会更加成熟,Go 和 Java 框架也更好。即使在数据科学世界中,个人也喜欢 R 超过 Python。
@lmm:
Python 和 Ruby 在很多方面较为相似,它们具有相似可用性的简单 Web 框架。个人使用 Python 已经有一段时间了,如果纯粹的作为 Web 开发者选择,那么 Ruby 可能会有一些轻微的优势,但是如果公司中的某个人已经使用 Python 作为系统管理脚本或数据科学项目,那么这足以提升规模。
不知对此,你是否有不一样的看法?
*请认真填写需求信息,我们会在24小时内与您取得联系。