如何选择适合自己的编程语言?

译者丨April Shen

编辑丨朱瑾
学习一种新的编程语言 不仅可以提升你的专业能力、处理信息和分析数据的能力,也能让你走上一条新的职业道路。甚至你还可以将在学习语言时学到的计算思维能力和解决问题的能力应用到各个领域。

然而,选择编程语言不仅要看个人兴趣,还要考虑这个语言是否与目标职业岗位匹配等众多因素。那么,

你应该如何选择适合自己的编程语言呢?

1

PHP

PHP是目前最流行的编程语言之一,也是一门非常 适合初学者 的语言 ,同时它也为有经验的程序员提供了很多高级功能。

PHP可以实现多任务并行处理,它可以生成动态页面内容,同时,也可以对服务器上的所有文件进行创建(create)、打开(open)、读取(read)、输入(write)、关闭(close)等操作。

使用理由

如果你打算 写一个网页 ,并且有像Laravel, Symphony 2, Zend, CodeIgniter, CakePHP这样的框架以及各种支持工具,用PHP就再适合不过了。
和其他语言相比,PHP能更快速地执行动态网页,而且随着不断的改进,它变得越来越容易部署。
由于PHP被广泛使用,所以世界各地都有大量的PHP用户。而如果你想了解更多关于PHP的知识,可以加入当地的PHP群组。

使用公司

很多服务器提供商都使用PHP服务器,它为超过2000万个网站服务,并被很多公司使用,比如:Facebook;Etsy;Drupal;WordPress;Whatsapp;Tumblr;SnapChat;Hootsuite;Nokia等。

使用岗位

PHP开发人员;软件工程师;全栈开发人员;前端开发人员。

2

JavaScript

JavaScript这几年来越来越流行。它是一门基于原型、函数先行的语言,也是一门多范式的语言。

它支持面向对象编程,命令式编程,以及函数式编程,被开发人员结合着HTML和CSS广泛使用。

使用理由

JavaScript 可以被认为是网页的行为端,它嵌入在大多数浏览器中,用于网页广告、网页分析和网页窗口小部件的制作。
JavaScript也可以用来建立网站上的自动完成功能、解决布局问题和增强HTML框,这样可以让用户自行预设,添加文本。
JavaScript既可以用于后台脚本,也可以用于前端脚本,现在很难找到一个不运行js的设备,它几乎无处不在。
JavaScript也是一种快速、灵活且富有表现力的编程语言,它有Angular和React等这些流行框架,你可以用它来编写可重用的组件,这些组件可以插入到应用程序中,从而控制一个“坚固”的框架。比如,开源平台Node.js,它就是建立在Chrome 的 JavaScript运行时刻上的,对于创建快速的、可扩展的网络app非常便利。

使用公司

Airbnb;Yahoo;Snapchat;LinkedIn;FitBit;Opsview;Adstream;PaySafe;Sky;Eurostar;HSBC;Thomas Cook等。基本上使用网站的公司都使用JavaScript。

使用岗位

JavaScript开发人员;前端开发人员;Web开发人员;软件开发人员;Web技术分析师;全栈JavaScript开发人员(Full Stack JavaScript Developer)

3

Java

尽管名字相似,但Java与JavaScript没有任何关系。
Java自1995年开始被使用,是关于网站开发最早的编程语言之一,它到现在仍然非常流行,在TIOBE编程语言排行榜中连续两年都排名第一。

Java是一门非常灵活的语言,它可用于开发Web应用程序、桌面程序和移动应用程序,还可应用于制作网络游戏、上传照片、参与虚拟旅行和使用交互式地图等。

使用理由

Java可以说 是Android的基础 ,它推动着Android应用程序的开发,所以对那些想进入移动开发行业的人来说,Java是一个很好的选择。
由于Java这门语言历史悠久,所以它有大量的图书和大量的文件可供你在学习时查阅参考。
并且Java软件有一个开源版本的Java编译器,程序员可以在Java平台上的开源应用上交流合作。
Java语言还有优良的工具,而且它为了让初学者学起Java来更容易,正在进行进一步改良。

使用公司

从Lloyds Bank Group, Credit Suisse, Financial Times, HSBC, Deutsche Bank, Goldman Sachs等金融银行到Facebook, Ebay, Netflix, Uber, DigitasLBi, BBC, Sky和Right move等知名网站,Java被大量的企业所使用。

使用岗位

Java开发人员;软件开发人员;后端开发工程师;Java软件架构师等。

4

Objective-C

和Java一样,Objective-C可以用来编写桌面软件和移动应用程序。
它是一种基于C语言的面向对象编程语言,被苹果开发人员用于开发iOS和Mac OS的移动应用程序。

使用理由

在Swift出现之前, Objective-C是iPhone原生应用程序的首选语言。
它有强大的界面生成器,支持泛型编程如Java,Scala 或 C#。
如果你想进入苹果公司,肯定需要学习Objective-C

使用公司

Apple;Instagram;Uber;Slack;Snapchat;9gag;TimeHop;Zillow;Weebly;FitBit;Luminosity等

使用岗位

全栈开发人员;软件开发人员;Objective-C开发人员;软件架构师;后端开发人员;IOS开发人员;应用程序开发人员;移动应用程序开发人员等

5

Swift

Swift于2014被引进, 用来部分替代Objective-C 。从Mac、iPad和iPhone到Apple Watch和Apple TV应用程序,Swift几乎参与了所有苹果产品的开发。

如果你 想从事苹果技术开发岗位,需要同时学习Objective-C 和Swift, 因为这两种语言通常被应用于同一个应用程序。

使用原因

和Objective-C一样, Swift也是苹果认可的语言。它被认为是一种新的创新型编程语言。它的源代码的开放性和易用性,旨在给开发人员提供更多的自由。
Swift支持推断类型(inferred types),这使得代码得到简化,而且因为这一语言中嵌入了强大的错误处理工具,所以在使用它的过程中不易犯错。

使用公司

Apple;Artsy;Lyft;DeloitteUK;Microsoft;Shazam;TransferWise;First Utility;On the Beach;BBC;comparethemarket.com;Amazon等

使用岗位

iOS开发人员;软件开发人员;iOS应用开发人员;移动应用开发人员;前端开发人员等

6

Python

Python和PHP一样是服务器端和非编译动态编程语言,它可以单独使用,也可以作为另一个框架的一部分使用。由于它是一种通用语言,所以它几乎可以用于从服务器自动化到数据科学和机器学习等各个领域。

大多数公司现在开始在他们的数据团队中引入机器学习,这意味着Python将成为实现高级算法的最常用的语言。而且该语言还扩展到创建移动应用程序——建立网站、软件和游戏,帮助研究人员破解相关数据并提供数据库访问。

Python和PHP的 区别在于 :python与PHP使用的堆栈类型不同。而且python的应用范围很广,你可以根据自己的兴趣有选择性地学习,比如:如果你只是想做网站建设,只要学习了web部分,你就能在浏览器中完成基本的建站工作了。

使用原因

对于 初学者来 说,Python是很好的入门语言,因为它易于阅读和理解,可以减轻初学者初学语言时的语法学习压力。
Python因为它简易的语法和可读性强的代码而备受推崇,同时它能处理大量复杂问题,所以使用者在使用Python时可以专注于学习编程概念而不必担心细节。
而且Python以其拥有大量的可用图书和大型社区而有名——它有第五大的堆栈溢出社区(5th largest Stack Overflow community )和第三大的Meetup社区(3rd largest Meetup community ),这些可以为你提供很多向其他开发者学习的机会。

使用公司

Instagram;Google;Vine;Snapchat;PayPal;DropBox;Pinterest;Netflix;Uber;Spotify;Reddit等。
从金融科技银行和金融公司(用于定价、风险管理和贸易管理的平台)到建立和维护零售网站的电子商务公司,都在使用Python。

使用岗位

Python开发人员;软件开发人员;后端开发人员;全栈开发人员;数据库管理员;数据科学家;解决方案架构师;运维工程师等

7

Ruby和Ruby on Rails

Ruby是一种服务器端解释型、非编译的动态编程语言。Ruby on Rails 是一个可以使开发、部署、维护 web 应用程序变得简单的框架,没有Ruby on Rails,Ruby是没用的。

Ruby可以使用命令式编程和函数式编程,这一语言是Perl, SmallTalk, Eiffel, Ada and Lisp等语言的融合。
Ruby被广泛应用于 初创公司和大型公司 ,用于构建模型和Web应用程序。同时Ruby on Rails可以使用户轻松高效的构建Web应用程序和网站。

使用原因

Ruby可以快速开发,而且它是有着强大单行命令的编程友好的语言。
Ruby on Rails是高度可移植的,而且它可以应用于UNIX,Max OS X和Windows 95到2000,DOS,BeOS等多种桌面环境。一些大的网站都是使用Ruby on Rails构建的,如Airbnb、Groupon和Kickstarter等。
而且它是一种功能强大的开源语言,涵盖前端和后端编程,这让你可以轻松地开发整个Web应用程序。
同时它也有一个蓬勃发展的社区,其中有很多适合初学者参加的会议和聚会。

使用公司

GitHub;Twitter;Snapchat;Tumbl;Kickstarter;GoPro;Airbnb;On the Beach;Citizens Advice;Deliver;Amazon等

使用岗位

Ruby on Rails开发人员;软件工程师;Ruby应用程序开发人员;前端开发人员;运维工程师;网站开发人员等

8

Perl

Perl是一种通用的编程语言,最初用于文本处理,但现在它已被广泛应用于Web开发、网络编程、GUI开发、生物信息学、系统管理、测试等各个方面。
近年来,Perl的普及率基本上已经恢复到20年前的水平。

使用原因

Perl是开源的,代码简洁而有效,而且它既有趣又容易使用,所以也非常适合初学者学习。
因为巨大的第三方代码库CPAN收集了大量的有用的、可重复使用的Perl模块,所以初学者可以参考图书库和简化编写代码。而且如果你学会了这门语言,那么你学其他语言,比如:Python,Ruby,PHP,java,.net时就不会有什么问题。
Perl有资源丰富的社区。Perl程序员热爱他们的语言,并且广泛地记录Perl的相关知识,所以在这里你可以很容易就找到关于Perl问题的答案。

使用公司

Snapchat;Booking.com;C.V.Library;Zoopla;cPanel;NET-A-PORTER;Deutsche Bank;XS4ALL;Amazon;LoveFilm等

使用岗位

Perl开发人员;Perl脚本编写员;Perl程序员;软件工程师;软件开发人员等

9

C#

“C-Sharp”是微软开发的一种面向对象的编程语言,它借用了与Java有类似功能的C++的语法。

由于它的灵活性,从提供大数据服务器软件到创建Web应用程序,C #几乎可以用于任何地方。它最初被用于微软.NET框架,这一框架有一个很大的关于预生成代码类的库。

使用原因

因为C #对于Windows平台的.NET能提供很大的支持,因此,当创建Windows桌面应用程序时,C #已经成为开发人员的首选语言。C #是在集合了在C++和Java语言中的优良元素的基础上创建的,并且它也打算发展成通用型语言。
C #是一种强类型语言,让初学者容易找到bug并消除bug,使初学者更容易养成用最优解编码的习惯。
如果你是C #的新手,你可以从微软找到很多可用的资源和教程。

使用公司

Microsoft;Huddle;StackOverflow;ASOS;BloombergLP;Moonpig.com;NextPLC;Hays;Natural History Museume等

使用岗位

C #开发者;.NET开发人员;软件架构师;测试开发人员;全栈开发者等

10

Scala

Scala 是一种可扩展的语言,这意味着它可以随着你的学习而成长改变。

你可以使用Scala随便键入一行表达式,看看结果会发生什么变化;也可以使用Scala构建大型的关键系统,像Twitter和LinkedIn这样的大公司就是使用Scala来构建大型的关键系统。

以灵活性著称的Scala 语言可用于面向对象编程、脚本或其内部的功能范型。
Scala 也是一个JVM语言,它可以用来生成运行在Java虚拟机的软件。

使用原因

Scala是开源的,它语法简洁,对一些人来说它就像是一种脚本语言。
Scala的类型系统相当复杂,但是它的REPL(解释器)为初学者学习编程语言提供了很大的帮助。
Scala擅长解决函数问题,并且有很多巨大的库可以参考,而且它可以提供不同的方法来解决同样的问题。

使用公司

LinkedIn;EDFT;Twitter;Novell;theGuardian;Xebia;Xerox;FourSquare;Sony;Siemens;Thatcham;OPower;GridGain;AppJet;Reaktor等

使用岗位

软件工程师;Scala开发人员;数据科学家;JVM开发人员;数据工程师;Dev Ops架构师;大数据开发人员;Scala工程师等