澳门新浦京电子游戏全栈开发者要掌握10大编程语言

本文由码农网 –
小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

编程语言有很多,但并非每一种的需求或工资都相同。人工智能和机器学习走热,让
Python 从众多编程语言中脱颖而出。

  1. Java

人们对PHP其实很吝啬。

澳门新浦京电子游戏 1

这是一个简单易懂的语言,通常用于开发原生的Android应用。Java语言通常用于后端技术,特别是处理复杂应用的时候。同时,它几乎能够在所有的平台上运行,如Mac
OS,Windows,Unix,Solaris,Linux等。

最近我拜读了一篇非常棒的文章——《How False Stereotypes Turn Into
Technical
“Truths”》:

图片.png

此外,Java还可以配置在多个应用服务器上。作为web开发人员,你需要学习如何使用Java进行编程,另外,由于Java的稳定性和兼容性,使其能够适用于很多大型的项目上。
作为Web开发人员,你需要学习如何为你的旅行计划使用java Web技术的景观。

我们对编程语言的偏见不仅仅影响 class=”wp_keywordlink”>程序员辩论时的气势,还会对该编程语言的应聘和薪资产生重大影响。

本文将综合各种信源,比较不同编程语言在美国市场的相关薪资水平、人气和前景,为你提供一些参考,大量统计数据袭来,你准备好了吗?

此外,由于java的稳定性和兼容性,大型项目是合适的,使它适合你可能承担工程。

这让我一下子想到了大家对PHP社区的看法。

有这样一个问题,使用空格和使用 Tab
的程序员谁挣得更多?你别说,还真有人做了统计:

  1. JavaScript

今天我在JavaScript Jabber网站的节目上听到了Jenn
Schiffer关于人们如何判断的精彩点评,感触良多,情不自禁地想与大家分享。

澳门新浦京电子游戏 2

如果你想给用户一个很好的体验,从而让页面之间尽可能多的进行交互,那么JavaScript是最合适的编程语言。这是一个基于浏览器的编程语言。如果你需要在你创建的网页上添加几个效果,或者需要在网站上创建弹窗,那么你肯定会需要JavaScript。对网站来说,这种语言还能吸引访客增加网站流量。它让网站看起来很美观,从而创造了一个强大的视觉效果。这是一个全栈web开发者不应该忽视的前端技术。所有web开发人员都需要这种编程语言,因为它是万维网所需的脚本语言。

澳门新浦京电子游戏 3

图1:根据 2017 年 Developer Survey 调查 12,426 名全职开发人员

  1. PHP

学习如何编程

虽然JavaScript的确迅速占据了PHP的地位,但是依然有很多的方面的原因吸引了新的开发人员到PHP领域中来:

  • 如果想要在共享的主机上建立网站或app。
  • 如果想要学习LAMP架构。
  • 所有入门级的招聘岗位要的都是PHP开发人员。

由上图可知,使用空格(红线)的人薪资比使用 Tab
的更多,使用空格的开发人员,工资中位数为 59,140 美元,而使用 Tab
的开发人员的工资中位数为 43,750 美元。

超文本预处理器是一种web开发者常用的服务器端的脚本语言。这意味着,使用PHP语言能够建立一个数据库或管理web服务器上的数据。它是一个后端技术,可以用于创建HTML写好的web页面。PHP具有较高的兼容性,支持跨平台使用,同时还是一个开源工具。作为一个全栈web开发者,当涉及到开发基于web应用时,PHP是你最好的选择,同时它还具有良好的大型在线社区支持。

每个人都恨PHP

下面是一些关于PHP编程社区围绕着消极氛围的例子:

  • PHP
    Sadness:整个网页都是在说明使用PHP有多么的“sad”——可悲。
  • PHP:a fractal of bad
    design:通篇抱怨PHP有多么烂的文章。
  • Why does PHP
    suck?另外一篇与上述类似的文章。

太多了,真心举不胜举,如果用发表在《Hacker
News》和Reddit上的一句话总结的话,那就是:

今天学习PHP,明天直接就淘汰。

看到这里,你是否开始质疑自己选择了一门糟糕的编程语言?

使用空格的程序员比使用 Tab 的挣更多!

欢迎加群496038649学习交流,备注浇水。

你可知——一切都是建立在PHP的基础上

不要怀疑自己的选择。尽管看上去似乎所有人喜欢的都是Clojure、Haskell和JavaScript——没有人喜欢PHP。不要以为你争取到你的第一份工作只是因为侥幸?

看到这里,有没有一种想去网上搜索哪些项目是基于PHP的欲望?那么我告诉你:

  • Facebook
  • WordPress
  • 雅虎
  • 维基百科
  • 4chan

有木有吓一跳?很多闻名于世的大型网站都是用PHP写的。不过,如果就此认定PHP只适用于创建web应用的话,那么请允许我为PHP喊冤……

上面这个调查 Developer Survey
[1]是面向全球进行的,而且不同的国家之间开发人员对空格和 Tab
的偏好差距并没那么大——实际上,根据这份调查,不同国家和地区的程序员使用两者的情况差不太多。

  1. Ruby

你还停留在2004年的观念上么?

不知道你有没有发现,很多对于PHP的批评针对的都是2000年初时的版本。

现在的PHP也具备了类,可以做OOP,有像Laravel和Symfony这些很棒的框架。

PHP的程序包管理器可以让你在浩瀚的存档开源软件包中翱翔。

PHP还具有很棒的测试框架。如PHPUnit单元测试框架,以及Behat和Codeception行为测试框架。

当然,我也不否认上面提到的一些抱怨,也是合情合理的。因为每一种编程语言都是不同的,也许有些语言的确是比PHP产生的问题要少,但是考虑到PHP的年龄、灵活性以及它的设计目的,那么你就不得不同意——PHP的容纳性真的很好。

澳门新浦京电子游戏 4

Ruby是一种动态编程语言,提供程序员提供了友好的开发界面。它也是一种面向对象的语言,对那些想要做创造性设计的来说它是最好的编程语言之一。由于它的简单性以和高效性,Ruby常被一些web开发人员使用。

对开发人员的影响

作为PHP开发人员,不被重视这个现状(除了是在一些严谨的开发项目中)——说出来还真是蛮让人沮丧的。这也影响了PHP开发人员在社区中的地位。

现在的话,PHP开发人员大多活跃在封闭的微社区中,因为在大型软件工程社区里,总感觉不那么受欢迎。不过,不用担心,他们也时常有他们自己的聚会,他们自己的用户群和他们自己的会议。

图2:不同国家和地区开发人员对空格、Tab 的偏好差距并不太大

Ruby简单易学,很适合初学者,它主要用于开发网站和移动应用。

无望的结局

老实说,尽管我坚信PHP是一门非常好的编程语言,但是我也不止一次地想要放弃。所以,我非常理解很多人的想法。

但是,如果仅仅是因为人云亦云,你就拒绝PHP——那么,PHP开发人员就会越来越少,PHP社区也越来越小——直至看不到PHP的出路。

2017 年 Developer Survey 调查了 12,426
名全职开发人员,来自美国、印度、英国、德国、加拿大和其他地区。红条、绿条和蓝条分别表示更爱用空格、Tab
和两者差不多。

澳门新浦京电子游戏 5

那么,收入之间的差距可能来自于这些开发人员所使用的编程语言,比如说,移动端开发人员更喜欢使用
Tab,而 DevOps 开发人员更常使用空格。

  1. HTML

于是,Developer Survey
调查又统计了开发人员的工作种类(比如是前端开发还是图形设计)和他们使用的语言,薪资情况如下:

超文本标记语言是全球公认的标准标记语言。如果你需要一个工具来格式化网页,从而是网页更美观,那么HTML是非常有用的。当使用JavaScript和CSS的时候,HTML会对网页进行页面布局。HTML还有一些优点就是,它的语法超级简单,易学,支持所有浏览器和开发工具,对搜索引擎也很友好。

澳门新浦京电子游戏 6

  1. Python

图3:使用 Tab 的开发人员的薪资中位水平

Python是一种简单的编程语言,具有面向对象编程,函数编程以及结构化编程等多种功能。它还是一种脚本语言,也就是说作为一个全栈web开发人员,你将需要这种编程语言,尤其是跟科学,学术,和应用研究相关的工作上。这是因为Python具有及时的可执行性,并且可以用于数学计算。另外,对初学者来说它是一种非常好的语言,并且可以很容易就被黑客和网络专家所使用。

这是个有趣的结果,但并不是决定性的。但是,有一个不可否认的事实——编程语言的种类有很多,并非每一种的需求或工资都相同。

  1. Perl

在本文中,你将看到几种主要编程语言的:
工作机会。

Perl是一种注释性语言,由Larry Wall 开发。Perl
常被推荐用于文本处理,它还融合了其他编程语言的大多数功能。加上Catalyst,
Dancer 和 Mojolicious几个框架,以及工具包,Perl使得web开发和部署更简单。
它的文本管理能力以及粘合系统的能力使其成为web开发中一个很棒的工具。

Github 流程程度及变化。

  1. Cascading Style Sheets

编程语言介绍(为想要学习编程的读者准备)。

CSS
是一种用来描述用其他语言尤其是HTML或XML写的文件的样式表语言。在开发期间,CSS可以控制web页面。CSS中一些令人惊艳的功能包括:与每个浏览器间的兼容性,制作网页时可以自定义,并且具有友好的打印功能,以及与其他web页面间的一致性。总之,对全栈web开发人员来说,使用CSS有非常多的好处。

薪资排行 & 工作机会

  1. SQL

在美国,软件工作岗位在线招聘数量从 2007 年到 2012 年增长了
31%,比总体工作岗位增速快了 3 倍。

结构化查询语言是一种特殊用途的编程语言,web开发人员从数据库中访问所需数据时所需要的语言。它可以在MySQL,Oracle,Sybase等数据库系统之间进行访问,这也使其适合在数据驱动网站上使用。

美国劳工统计局估计,软件开发人员的工作从 2012 年到 2022 年将以 22%
的增幅继续增长。这里有个数字,2016 年 5
月,软件应用程序开发员薪资的中位数为 100,080 美元。

  1. C++

使用国外招聘网站 Indeed.com
上招聘广告的数据,我们可以将编程语言的薪资水平划分为 9 档:

C++是一种通用的,面向对象的编程语言,用简单的英语语言就可以写。它是一种服务器端的web开发语言。C++的简易性和可移植性使其在程序员之间轻松高效的使用。由于其代码的可重用性以及高性能,C++是非常值得推荐学习的。

澳门新浦京电子游戏 7

基于这个结果,Ruby/Ruby on Rails 看起来会让你挣得最多,而
Python,C++,iOS 和 JavaScript
也是体面的选择。如果薪资是你的主要关注点,那么也许 C,PHP 和 SQL
不是最理想的选择……

平均薪资水平可能会受诸如需求(有多少招聘职位)、供应(有多少开发人员了解语言)和经验(资深开发人员自然挣得比初级开发人员多)等许多因素的影响,我们有必要深入了解这些因素,然后才下定论。

工作需求

根据你熟悉的编程语言找到工作的可能性有多大?以下是来自 Indeed.com
的工作趋势:

澳门新浦京电子游戏 8

可以看到,C,SQL,Java 和 JavaScript 在招聘启事中经常被提到,而 C#,C++
和 Python 也是表现不错的语言。

另一方面,如果你的目标是在创业公司工作,那么可能 Indeed.com
的工作趋势不是你应该参考的最佳指标。我们找到了 AngelList
网站,这里有更多美国初创公司发布的职位,来看看基于 AngelList
的软件开发人员需要的编程技巧:

澳门新浦京电子游戏 9

再一次地,JavaScript 高居榜首。但是,美国创业公司似乎更喜欢 Python 和
Java,对这两者的需求超过了 Ruby(两年前 Ruby 最受欢迎),PHP,C 或 C#。

供应情况

我们再来看开发人员这边,根据网站 Codementor 的数据(Codementor
是一个比较大的程序员交流网站,用户在注册时会填写自己使用的语言,因此数据在一定程度上可以反映开发人员掌握的编程语言):

澳门新浦京电子游戏 10

当然,这个结果并不能准确反映实际市场的情况,但可以作为参考。例如,虽然移动应用业务已经蓬勃发展了一段时间,但
Objective-C 专家仍然很少。由于 Objective-C
开发人员供应不足,他们的薪资自然相对更高。

另一方面,PHP
在劳动力中的供应量很大,因此雇主有更多的选择,在薪资方面议价能力更强。同时,市场对
PHP 开发人员的需求也不如 Java,SQL 或 JavaScript 那么多。 因此,PHP
开发人员普遍收入较少。这个情况也体现在了我们文章一开始的那张图里面(参见图2)。

JavaScript 是个很特殊的例子。尽管供应量最大,但 JavaScript
开发人员并不处于薪水层的底线。

薪资范围

现在,了解每种语言的需求和供应情况,我们再来看看根据招聘广告的薪资信息,你能得到的潜在工资。下面的数据来自
gooroo.io,根据每条招聘启事给出的薪酬范围取了平均数:

澳门新浦京电子游戏 11

懂 Ruby,C++ 或 Java 的开发人员看上去起始工资更高。Python 和 Ruby
开发人员的薪资潜力最大,这可能意味着好的 Ruby/Python
开发人员市场缺口相对较大。

更多人转而使用 Python

看各大语言前景,以及 Github 过去 16 年编程语言迁徙:更多人转而使用
Python。

接下来,我们可以看看各种编程语言的前景。

一种编程语言将来的发展前景如何?首先,这在很大程度上取决于其社区的发展,因为新鲜血液/采用率是使语言受欢迎的保障。因此,让我们来看看人们最感兴趣的语言是什么:

澳门新浦京电子游戏 12

图4:根据谷歌搜索,2016 年使用 Python 的兴趣大增

其次,Github 的项目数量能够从一定程度上体现出语言的流行程度。

澳门新浦京电子游戏 13

其中,星级超过 1000 的项目排行如下:

澳门新浦京电子游戏 14

同时,我们还需要注意——开发人员或许有过这样的体验,在挣扎完成第 N
个艰难晦涩的项目后,心想:“我可以用这种语言做这件事,但为什么不换种语言更加愉快地工作呢?”

分析了 4500 万 GitHub 用户、393 种不同的语言以及 10 TB 的源代码后,Waren
Long 在博客 source{d} 发表博文,用详尽的数据和科学的方法展现了过去 16 年
Github 用户编程语言的大变迁(也就是从一种语言换到另一种语言的情况)。

澳门新浦京电子游戏 15

使用 5 种最流行的语言(Java,C,C
++,PHP,Ruby)其中一种的开发人员,最有可能用切换到 Python,平均有 24%
的机率。

再来看一个更直观的图:

澳门新浦京电子游戏 16

过去 16 年,Python 和 Java 逐渐取代了 C 语言。

篇幅有限,我们这里就直接看结果了。要知道更详细的信息,可以访问参考资料
3。

澳门新浦京电子游戏 17

澳门新浦京电子游戏 18

澳门新浦京电子游戏 19

编程语言介绍

Python 在 2014
年成为美国高校入门课程最受欢迎语言,最后,为了想要学习编程语言的读者,我们简要介绍一下各种编程语言。

动态语言(Dynamic Languages)

动态语言通常更容易让初学者学习,因为它们灵活而有趣。你可以从头开始快速构建一个应用程序,需要的代码数量较少,并且没有硬性规则。

由于动态语言通常是非常高级(high
level)的语言,所以你会花更少的时间纠结细节,更多的时间学习编程概念,这也是动态类型的语言受初学者欢迎的一个原因,初学者一般都会因能够构建事物和快速看到结果得到反馈而受到鼓舞。

JavaScript
不要与 Java 混淆了,JavaScript
是主要用于前端开发的客户端脚本语言。JavaScript
在所有浏览器中都兼容,用于创建交互式 Web 应用程序,通常是通过诸如 jQuery
和前端框架(比如 AngularJS,Ember.js,React 等)的库来创建。

JavaScript 也可以通过 Node.js 平台用作服务器端语言。过去两年来,Node.js
开发社区已经有了很大的发展,现在你可以在这里找到很多资源。你还可以通过使用诸如
phonegap 这样的框架,用 JavaScript 构建混合移动应用程序。

Facebook 的 React Native 能让你使用 JavaScript
构建本地移动应用程序。不过,JavaScript
的难度很高,因为它是无类型的语言,因此很难调试。也有静态类型的版本,比如
Microsoft的 TypeScript 或 JSX,在 React 上使用。

Ruby
有了 Ruby,开发人员可以很开心地工作。Ruby 的流行得益于 Ruby on Rails
框架,Ruby 与英语很类似,而 Rails 框架(是全栈 Web
框架)有“开箱即用”的工具,让开发工作变得简单。因此,很多人会建议你首先学习
Ruby。

Ruby 主要用于后端开发,一些常用大网站,比如
Airbnb,Shopify,Bloomberg,Hulu,Slideshare 都是使用 Ruby on Rails
构建的。

Python
Python 是另一种强烈推荐初学者的学习语言,Python
也是美国顶尖大学最受欢迎的入门级介绍语言。开发人员使用 Python
构建桌面应用程序和网络应用程序,Python 也是数据挖掘的好工具。

此外,Python
在科学计算,数据分析和生物信息学的学术界尤其受欢迎。Google,Dropbox,Pinterest,Instagram,Reddit,BitTorrent,Civilization
IV 等都是用 Python 构建的。

不仅如此,Python 从 2014
年起就成为美国顶级高校入门级课程教学语言(Introductory Teaching
Language):

澳门新浦京电子游戏 20

下面是部分美国顶级高校计算机相关课程使用编程语言列表:

澳门新浦京电子游戏 21

澳门新浦京电子游戏 22

图5:美国顶级高校入门级课程使用编程语言的情况

在这里仅列出了部分高校,更完整的表单参见参考资料 4 的网页。

PHP
PHP 是一种服务器端脚本语言,通常被认为是对初学者友好的。理解 PHP
代码要做什么比较容易,因此 PHP 很容易学。

大多数网站都是用 PHP
构建的,因为这种语言是专门针对网络的。Facebook,维基百科,Yahoo!,
Tumblr,Wordpress 等都是用 PHP 构建的。

静态语言

使用静态类型的语言构建的应用程序有更高的可扩展性、稳定性和可维护性。静态语言在通过类型检查查找错误时一般更严格,并且需要更多的代码来构建一个原型。游戏引擎、移动应用和企业级后端通常使用静态类型的语言构建。

Java
作为通用语言,Java 用于构建 Android
应用程序、桌面应用程序和游戏。Java也常用作企业级后端开发的服务器端语言——90%
的财富 500 强公司使用 Java。

此外,用于存储和处理大数据的 Hadoop 是基于 Java
的流行框架,Yahoo,Facebook 和 Amazon Web Services 等企业都在用 Hadoop。

C
C 常用于编程系统软件,是操作系统的通用语言(lingua franca)。C
几乎影响了本文中提到的所有编程语言,尤其是 Objective-C 和
C++。所以,如果你知道 C 语言的话,你可能更容易学习其他流行的语言。

由于 C 语言需要用更复杂的代码来执行简单的任务,所以初学者如果把 C
语言作为第一语言往往很难保持动力。但是,从长远看,C
语言的知识肯定对你程序员的工作有所帮助。

Objective-C
Objective-C 是建立在 C
语言之上的一层,因此是静态的。话虽这么说,Objective-C
也可以用于动态打字。

Apple 的 Swift 是一种静态语言,与 Objective-C
兼容,但它的静态类型使其更有弹性。Swift 受 Python
启发而来,旨在为新手轻松编写程序,旨在修复 Objective-C 的一些问题。

C++
C++ 是基于 C
语言的一种强大的语言,专为编程系统软件而设计,但也被用于构建游戏/游戏引擎,桌面应用程序,移动应用程序和网络应用程序。

C++ 功能强大且速度很快,Facebook 用 C++
已经开发出了好几个高性能、高可靠性的组件。许多软件都用 C++ 构建,包括
Adobe Systems,Amazon,Paypal,Chrome 等。与 C 语言类似,C++
通常被认为不太好让初学者自己学习。

所以,如果你决定学习 C++
作为你的第一个编程语言,建议与人讨论或找一个导师。

C#
C# 用于微软的 .NET 框架,主要在Microsoft Windows 上运行。C# 用于 Web
开发、游戏开发和一般 Microsoft 开发。

此外,Xamarin 一直在开发一个名为 Mono 的开源项目,该项目旨在将 C#
移植到其他平台,为 Linux 开发人员带来更好的开发工具。最近,你还可以使用
C# 通过 Xamarin 为 iOS 和 Android 构建原生手机应用。

其他

SQL
SQL(“Sequel”)或结构化查询语言,是用于与数据库通信的查询语言。虽然 SQL
不能用于构建应用程序,但它用于管理使用关系数据库管理系统(RDMS)的应用程序中的数据。

参考资料:
1.https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
2.https://www.codementor.io/codementorteam/beginner-programming-language-job-salary-community-7s26wmbm6
3.https://blog.sourced.tech/post/language_migrations/
4.https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext

编译 闻菲
来源: codementor.io,stackoverflow.blog

发表评论

电子邮件地址不会被公开。 必填项已用*标注