聊聊编程语言的选择

开发 后端
今天聊聊编程语言的选择问题,通过对 10+ 主流编程语言的特点、优劣、应用场景、发展前景等简单分析,希望帮还在迷茫的小伙伴们选择最适合自己的语言去学习。

[[416685]]

本文转载自微信公众号「程序员鱼皮」,作者鱼皮。转载本文请联系程序员鱼皮公众号。

大家好,我是鱼皮,今天聊聊编程语言的选择问题,通过对 10+ 主流编程语言的特点、优劣、应用场景、发展前景等简单分析,希望帮还在迷茫的小伙伴们选择最适合自己的语言去学习。

编程语言选择

本文大纲:

编程语言选择 - 鱼皮

前言

先来看张最新的 TIOBE 编程语言排行榜,C 第一、Python 第二、Java 第三:

2021-08 TIOBE 编程语言排行

那可能就会有一些 “追求极致” 的同学说了,我要学编程,就学最牛逼的 C 语言!

千万别!排行榜的统计方式、人群多种多样,并不代表一切,不要盲目跟风。

我们做事一定要有目的,先想清楚自己学编程是为了什么?

单纯出于好奇、感兴趣?为了搞钱?想多门手艺、提高工作效率?想开拓视野?想创业做自己的产品?还是只是碰巧选了计算机专业呢?

有不少转专业、其他行业的在职同学都想学编程,但切记:没有目标是绝对学不下去的!

下面介绍下主流编程语言,大家可以根据自己的目标进行选择。

语言介绍

此前做过一个投票,大多数朋友学编程还是为了找工作,那我们就先说说如今最适合找工作、企业需求量最大的两个方向:Java 和前端。

Java

Java 本身是一门相对高级的语言,成熟稳定,写出来的程序可以跑在不同的操作系统上。

但真正促使 Java 被推向神坛、内卷之王、培训机构赚钱宝典的呢,还是他丰富的应用场景和生态。后端、桌面程序、安卓 APP、大数据等等,但凡你能想到的东西,Java 都有现成的开发工具和方便的类库框架,就是让你写更少的代码、更快地完成开发。

而且只要是你学 Java 时人类可能会遇到的问题,在网上都能搜到答案。

这些正好符合企业的需求:老板给钱,就是希望你能够快速完成工作,而且最好不出意外事故。

再加上前几年我国移动互联网的发展,安卓 APP 大肆开道那会儿,Java 作为安卓的主要开发语言,被大推了一波。

前端

前端,简单来说就是写网站界面(大多数情况下),它其实包含了三种语言:HTML、CSS 还有最重要的 JavaScript。

Web 前端入门相对简单,优点是写出代码能立刻看到效果,适合培养兴趣。

那为啥说它适合找工作呢,毕竟大部分公司做产品就是要给用户使用的,所以界面是必须的,因此需求量大。

此外,现在前端的应用越来越广泛了,像大前端,你可以用同一套代码开发出网页、桌面程序、安卓、IOS APP、小程序等,大大节省了开发成本。

大前端

提到小程序,这玩意的数量已经超过了 APP!它有很多优点,免安装、方便、易分享、基于微信用户量大等,再加上开发成本很低,所以是很适合创业的一个产品形态。

也是因为小程序、大前端的发展吧,让 Android 和 IOS 移动端、甚至还有客户端的开发前景逐渐变差。就现在来看呢,IOS、Android 开发供过于求,往以后看呢,完全看不到 APP 他的增量在哪里?毕竟除了一些主流的 APP 外,主动安装 APP 的人真是越来越少了。没有市场,新人怎么入行,怎么生存?

所以想开发界面同学,网页也好、小程序和 APP 也罢,都建议先从前端学起,像布局、组件化、模块化,很多方法和思想是类似的。

C 语言

再说说大多数计算机专业同学接触的第一门语言 —— C 语言。

有句话说的好,任何比 C 语言高级的语言都能用 C 语言来代替,任何比 C 语言低级的语言都不足以完整抽象一个计算机系统,这足以证明它的地位。

为啥它那么牛逼呢?

且不说他的语法灵活,最关键的是他足够底层,底层到所有的操作系统(Windows、Linux)都是用它实现的。所以学习 C 的过程中能让我们接触到更多底层的概念(比如自己分配和维护内存),有助于我们日后写出性能更高的程序。也是因为这点,C 语言很适于操作系统、底层软件、各种嵌入式系统和软硬件开发。

C++

C++ 在 C 语言的基础上增加了一些能力和思想,比如经典的面向对象编程,让开发者有更好的开发体验,能够提高代码的重用和开发效率。

它本身就是 C 语言的超集,因此性能也很高。

综合这两点呢,C++ 的应用场景也是非常之广,常用于后台开发、桌面程序、语言、框架开发(Java 都是C++开发的)、图像处理、音视频处理等计算任务、3D 引擎等。

C# .NET

提到引擎,就必须要说下 C# 和 .NET,千万别读成 “C 井” 和 “点 NET” 啊!

.NET 是一个框架和环境,而 C# 是运行在其上的编程语言之一,此外还有 VB .NET 等。

虽然最近几年 C# 在国内流行度一般,但仍是 Unity(游戏、VR、AR 开发平台)主要使用的编程语言,所以还是有用武之地的。

下面再聊几个有争议的语言。

Python

首先是 Python,入门简单、生态好、很多现成的代码类库能直接用,因此在工作中适合编写小的脚本和工具,像文件表格处理,能提高办公效率。

它也是啥都能做,还是爬虫、数据分析、数据挖掘、人工智能的一流语言。铺天盖地的 Python 广告、小学生都开始学 Python 了,这些都反映了 Python 的重要性和易学性,真的是每个人都可以学 Python。

但是呢,它并不是企业开发的推荐语言,想找开发工作,就不要去重点研究 Python 了,把它当成工具或者入门培养兴趣的语言就好。因为同等开发效率下,Python 作为一门解释执行的动态语言,运行效率实在是太低了,甚至可以比 C++ 慢 100 倍!

PHP

曾经热火朝天的 PHP,他有一个美称 “世界上最好的编程语言”。

但是如今 PHP 却逐渐走向衰落,不再受到大公司的青睐。

为啥?

以前 PC 网站时代,拿 PHP 做个网站,弱类型很灵活,开发起来贼快贼方便,用 Java 写 5 天的程序,用 PHP 1 天就能搞定。

但如今,互联网的产品形态逐渐倾斜于移动端,而非传统网站,PHP 虽然能也做服务端开发,但它的性能太低了!而且随着 Java 和其他后台语言的发展,它们的开发效率也上来了,都能花同样的时间完成开发,谁还会选择性能更低的 PHP 呢?

Go

近几年 Go 语言在国内发展迅猛。

他语法简单,且天然支持高并发、性能贼高,因此很适合开发现在主流的云原生应用。像大名鼎鼎的 Docker 容器、还有 B 站都是拿 Go 语言写的。

再加上国内 Go 语言的生态也越来越好,类库和轮子多了、最佳实践也多了,使得开发成本大大降低。同等时间开发个性能更高的应用,它不香么?

像字节跳动和腾讯等互联网大公司早就拥抱了 Go 语言,可以想象未来两三年, Go 的未来将是一片光明。

SQL

SQL 是数据库查询语言,可以从数据库中查询数据、操作数据。想从事后台开发、数据库管理相关工作的同学必须把它学好。

除了程序员,现在很多产品经理都要学 SQL 了,别看程序员卷,那产品经理更是神仙打架。

此外,还有一些程序员常用的语言。像 Linux Shell 脚本编程语言,和 Python 类似,当成工具学就好了。还有 Kotlin、Scala、Rust 等较新的编程语言,都有自己的应用场景,大家可以自行了解、按需学习。

总结

综上,目的、时间、前景、学习成本都是我们选择编程语言的重要因素。

如果想快速就业,可以直接学前端或后端。更倾向于所写即所得、尽快看到效果,就选前端;更想锻炼思维逻辑能力,就首选后端 Java 或 Go 语言。

还在学校,时间充足,想打好基础,就老老实实从 C 语言开始学起。

如果对编程只是出于兴趣,或者想做些小工具,就学 Python 或者前端吧~

最后,希望大家记住,第一门编程语言并不等于你找工作的语言。时间允许就大胆尝试,想学就学,先培养兴趣,等到后面再深入学习一门语言,学会一门再学其他的也会很轻松了。

 

也根本不存在什么最好的编程语言,没有银弹可以通杀,不同的个体、项目、团队都应该有自己的选择,解决问题、应用落地才真正体现了编程语言的价值,适合自己的才是最好的。

 

责任编辑:武晓燕 来源: 程序员鱼皮
相关推荐

2022-11-02 09:00:02

编程语言拓荒者

2018-11-11 15:29:13

大数据语言Java

2018-08-21 13:50:05

编程语言JavaPython

2009-02-06 09:08:04

Scala函数语言轻量级

2009-08-13 17:14:55

2009-02-27 09:25:28

编程语言程序员C#

2012-05-11 10:00:37

PaaS云计算编程语言

2022-02-19 22:47:46

编程语言开发C++

2015-03-16 09:18:53

2010-03-15 15:45:15

Python编程语言

2009-07-28 08:28:15

2014-08-18 10:58:20

编程语言编程书籍

2022-08-02 20:21:42

开源项目工具

2020-11-14 15:49:40

编程语言C语言Java

2021-12-16 06:52:33

C语言内存分配

2020-04-15 10:50:19

编程语言工具技术

2021-11-30 23:01:51

编程语言数据Python

2020-12-18 07:41:01

码农编程语言

2022-02-21 11:15:59

编程语言后端开发

2013-04-19 10:40:03

点赞
收藏

51CTO技术栈公众号