本文转载自微信公众号「程序员鱼皮」,作者鱼皮。转载本文请联系程序员鱼皮公众号。
大家好,我是鱼皮,今天聊聊编程语言的选择问题,通过对 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 或者前端吧~
最后,希望大家记住,第一门编程语言并不等于你找工作的语言。时间允许就大胆尝试,想学就学,先培养兴趣,等到后面再深入学习一门语言,学会一门再学其他的也会很轻松了。
也根本不存在什么最好的编程语言,没有银弹可以通杀,不同的个体、项目、团队都应该有自己的选择,解决问题、应用落地才真正体现了编程语言的价值,适合自己的才是最好的。