专栏首页Lemon黄职场生存指南:颇具前景的五大编程语言

职场生存指南:颇具前景的五大编程语言

玲琅满目的编程语言,经常会让入门级开发人员身陷选择困难症。在本文中,我将从适用范围、职业道路和未来发展等方面,和您比较五种编程语言的各种特点,以方便您根据自己的兴趣,进行轻松的选择与学习。

编程语言的简介

编程语言是一种包含了一组能够产生各种输出性指令的语言。它常被用于通过计算机编程来执行各种算法。虽然每年都会新产生大量不同的编程语言,但是只有那些易于使用和理解的编程语言,才会得到市场的认可,才会被开发人员大量使用。

通常,编程语言由两个部分所组成:语法(形式)和语义(含义)。

语法

  • 它是编程语言的表面形式。
  • 大多数编程语言都是纯文本形式的,因此它们会用到诸如:单词、数字和标点符号等文本序列。
  • 编程语言语法一般是各种文本符号的组合。

语义

即:编程语言的含义,通常包括两类语义:

  • 静态语义 - 定义了在标准句法形式中,那些难以或不可能表达的有效文本结构。
  • 动态语义 - 必须指示机器来对数据执行各种操作。

头部编程语言的特征和未来范围

如上图所示,目前流行的五种编程语言,普遍针对的是不同类别的开发人员(如:初学者、普通程序员和专家),以及不同的开发用例(如:Web应用、移动应用、游戏开发、分布式系统等)。下面我们来逐一进行讨论。

Python

它是一种通用的编程语言,可用于构建简单的工具和代码库。对于普通的后端Web开发、人工智能、数据分析、以及科学计算来说,Python是一项不错的选择。由于简单易学,因此许多开发人员都会使用Python来构建其生产力工具、游戏、以及桌面应用。

如今,Python有着多种实现方式,包括:针对Java虚拟机的Java语言脚本—Jython;针对公共语言基础结构且由C#编写的IronPython;以及由RPython编写的、并翻译成C语言的PyPy版本。这些实现方式都能够通过使用不同的模块,与其他语言进行交互。而这些模块中的大多数都是由开源社区免费为用户开发的。

Python的优点

Python语言的不同功能可以组合并开发出各种应用。通常他们具有如下优势:

支持库 - Python提供了一个大型的标准库,其中包括:互联网协议、字符串操作、Web服务工具、以及操作系统接口等方面。

第三方模块 - Python包索引(Python Package Index,PyPI)包含了许多第三方模块,它们能够保证Python与大多数语言平台进行交互。

生产力和速度 –通过简洁的面向对象设计,Python提供了增强的过程控制,并具有强大的集成和文本处理功能。

开源和社区开发 - Python语言是在OSI的开源许可下开发的,它可以被免费使用与分发,当然也可以被用于商业目的。

轻松学习– Python具有出色的可读性,并提供了简单易学的语法。其代码风格指南--PEP 8,提供了一组有助于格式化代码的规则。

具有用户友好的数据结构 - Python具有内置的列表和字典数据结构,可以被用于创建快速运行时(runtime)的数据结构。而且,它还提供了高级的数据类型选项,可以减少支持性程序代码的长度。

Python的职业道路

总的说来,Python优于其他编程语言。

随着其受欢迎程度的增加,Python相关的职业机会也得到了显着增长。

许多IT企业正在寻找更多具有Python编程经验与技能的程序员。

总体而言,Python程序员在不久的将来会有更好的职业前景。

上图是那些使用Python编程语言的顶级公司。可见,无论是Web应用还是游戏应用,Python几乎适用于所有类型的应用开发。

Python的未来

在2019年7月8日,Python更新到了3.7.4。它提供了许多显着的改进与新功能。

JavaScript

JavsScript是遵循ECMAScript规范的高级解释性脚本语言。这种基于原型的JS,能够支持面向对象、动态化、命令、声明等多种范式。

作为一种简单易用的语言,Javascript不但能够在许多非浏览器的环境中被使用,而且能够在设计网页和编程中被用于控制目标网页的行为。由于Javascript的基本语法与Java和C++相关,因此需要重新学习的新概念并不多。Javascript的语言结构如下:

  • “If”陈述
  • “For”和“While”循环
  • “Switch,Catch”块的函数

JS的动态功能包括:运行时对象构造,函数变量,动态脚本创建,变量参数列表,对象内省(object introspection),以及源代码恢复。Javascript常被用作Web服务器端的脚本语言。

Javascript Web服务器能够通过Javascript程序的HTTP请求和响应对象,来生成动态的Web页面,例如业界广泛使用的是Node.js。另外,像MongoDB和CouchDB之类的数据库也都采用Javascript作为其编程语言。

上图展示的是Javascript的不同功能。

JavaScript的职业道路

  • 前端Web开发人员 – 其工作重点包括:HTML、CSS、JavaScript、以及后端。
  • Web应用开发人员 - 使用Javascript创建各种基于Web的软件应用,包括:交互式在线表单,购物车,文字处理,电子邮件软件和文件转换。
  • Javascript开发人员 - 设计与开发各种平台新的前端应用。
  • UX/UI设计师 – 为用户或客户设计新的产品功能,找到改善用户体验的创新方法,与UI设计师合作创造更有吸引力的产品。
  • 全栈开发人员 - 设计Web应用程序的体系结构。
  • DevOps工程师 – 起到IT和开发人员的连接作用,包括:测试服务器,应用部署,版本控制,以及构建服务器软件等。

JavaScript的未来

目前,与之相关的各种框架(包括:VUE.js,jQuery,Angualr.js和React.js)正在市场上“野蛮生长”。从下图的统计数据和市场地位可知,React.js最受欢迎。

将来,JS将作为一种非常简易且完美的端到端解决方案,与Web组件、以及AI等应用形成技术上的互补,给开发人员带来完美的开发解决方案。

Java

这是一种基于类、且面向对象的通用编程语言。用Java开发的应用程序可以在任何Java虚拟机(JVM)上被编译成字节码,并且可以在任何支持Java的平台上运行,而无需重新编译。作为一款被广泛使用的编程语言,Java的语法类似于C和C++。它既适用于互联网的分布式环境,又可以被用于创建完整的本地应用。

Java广受欢迎的原因在于:

  • 数据的安全性
  • 简单易学
  • 代码的鲁棒性
  • 提供灵活的小程序
  • 网络可移植性
  • 面向对象
  • 独立于平台

目前,Java的三大主流平台分别为:

  • Java SE(标准版)
  • Java EE(企业版)
  • Java ME(微型版)

最新版本的Java 12已于2019年3月发布。

Java的职业道路

  • 后端开发人员 - 这是最受欢迎的职业方向之一。无论是作为自由职业者,还是远程办公的开发人员,雇主公司都会为后端开发人员开出丰厚的薪酬待遇。
  • 大数据开发人员 - 这是一种快速增长的职业选择。大多数公司都在寻求利用大型数据集,来开展各种业务和营销活动。
  • Android开发人员 - Android程序员经常用Java来开发各种应用。
  • 嵌入式设计开发人员 – 这条职业道路不但有着广阔的职业前景,而且有利于开发人员迅速地成长。

上图显示了2018~2020年间,开发人员的职位需求量。随着Android应用商店里不同功能的应用程序日趋丰富,业界对于Java编程能力的需求也持续走高。

Java的未来

除了继续深耕面向未来的编程方式,Java还会助力于企业应用的安全性等方面。

Ruby on Rails

这是一种解释性的高级通用编程语言。作为一种动态类型的语言,Ruby不但可用于收集垃圾,而且能够支持多种编程范例,其中包括:各种程序、面向对象的函数等。

而作为开发工具的Rails,为Web开发人员提供了编写代码的框架和结构,有助于各种网站和应用的构建。另外,Ruby的关键原则在于“约定优于配置(Convention over configuration)”。

Ruby on Rails在开发方面具有如下优势:

  • 比其他框架和语言的执行速度更快。
  • 其结构易于开发者实现编码。
  • 适用于快速的应用程序开发(RAD),且便于各种适应性的修改。
  • 比较注重于测试环节。
  • 自带各种开源库。

上图列出了Ruby的更多特征。

Ruby的职业道路

如今,大量初级程序员和协同开发者都在使用Ruby on rail这门流行的编程语言。而该领域的经验丰富者,则能够获得首席技术官、项目负责人、以及高级开发师等高级岗位的契机。通常,他们的年薪从100,000到154,000美元不等。具体分级如下:

  • 入门级开发人员的工作内容包括:掌握基本的HTML、JavaScript和CSS知识,设置rail环境,管理数据库,处理请求,以及执行与Ruby on Rails应用开发相关的基本任务。
  • 中级开发人员的工作要求包括:了解各种Active Record关联,设计模式和面向对象。
  • 高级开发人员的岗位要求有:熟悉Ruby Metaprogramming,数据库建模,具备监控、规划和评估等技能。

Ruby on Rail的未来

凭借如下优势,Ruby的前景一片大好:

  • 是低预算的理想选择。
  • 拥有强大的社区。
  • 易于测试。
  • 具有一致性。

上图是正在使用Ruby on Rail的各大顶尖公司。

PHP

作为一种免费的通用编程语言,Hypertext Preprocessor(PHP)是专为Web开发设计的。在Web服务器的模块中,PHP解释器负责处理PHP代码,并使用命令行界面(CLI)来执行。虽然主要是一种服务器端的脚本语言,并能够从Web服务器向客户端提供动态内容,但是PHP也可以被用于客户端的GUI和命令行脚本中。

目前,许多Web托管提供商都能够为其客户提供对于PHP的支持。类似于一种过滤器,PHP能够从文本中获取各种输入,然后将其转换为常见的HTML类型的输出流。

通常,开发人员根据如下特点来选用PHP:

  • 支持数据库管理系统,且开源。
  • 支持MySQL、Oracle、Sybase等。
  • 简单易学。
  • 能够在Linux和Windows等平台上运行。

PHP的职业道路

PHP开发人员能够敲开整个职场的大门,并籍此逐步提升为高级Web开发人员。初级开发人员的工作通常包括:创建各种网站和软件。而高级Web开发人员则根据资质与发展道路的不同,一般可担当IT经理、开发总监、首席技术官、以及高级.NET开发师等职位。

PHP的未来

如今PHP + MySQL的网页构建模式,以及以PHP结尾的网页在互联网上比比皆是。而且这种趋势会不断持续下去。

本文分享自微信公众号 - Lemon黄(lemonhunag)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊聊rocketmq的retryTimesWhenSendFailed

    本文主要研究一下rocketmq的retryTimesWhenSendFailed

    codecraft
  • 老大说,网上这种获取真实IP地址的方法不对,我不信

    其中headers属性X-Forwarded-For,WL-Proxy-Client-IP不就是被更改了吗?

    物流IT圈
  • 云调用01-发送模板消息

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/op...

    专注APP开发
  • 零基础学习 Python 之初识生成器

    昨天的文章中(Python 拓展之迭代器)我们学了「迭代器」,今天我们就来学学另一个 -- 「生成器」。如果不出意外的话,「生成器」这个部分是我们在“类”里面的...

    Rocky0429
  • 自然语言处理:基于PCFG的中文句法分析样例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    程裕强
  • 面试必备 | 带你彻底搞懂 Python 生成器。

    Python 的高级语言特性一直是我们学习 Python 的一个难点,大部分人并没有做到熟练的掌握,甚至去学习它都感觉很困难,「生成器」作为其中甚是有用的特性之...

    Rocky0429
  • 聊聊rocketmq的retryAnotherBrokerWhenNotStoreOK

    本文主要研究一下rocketmq的retryAnotherBrokerWhenNotStoreOK

    codecraft
  • Python 拓展之迭代器

    今天来讲讲「迭代器」的内容,其实已经拖了好多天了,感觉再不写就要忘记了。「迭代」相信对你来说已经不陌生了,我前面曾经专门用一篇文章来讲,如果你已经没有什么印象的...

    Rocky0429
  • Python 生成器之细说 yield

    在前天的文章(零基础学习 Python 之初识生成器)中我们留了这么一个问题:“yield 除了作为生成器的标志以外,还有一个「返回值」的功能,我们知道 ret...

    Rocky0429
  • 关于Spring的BeanUtils

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    chenchenchen

扫码关注云+社区

领取腾讯云代金券