2021,編程語(yǔ)言如何選擇?
我適合學(xué)什么編程語(yǔ)言呢?
大家好,我是魚皮,今天聊聊編程語(yǔ)言的選擇問(wèn)題,通過(guò)對(duì) 10+ 主流編程語(yǔ)言的特點(diǎn)、優(yōu)劣、應(yīng)用場(chǎng)景、發(fā)展前景等簡(jiǎn)單分析,希望幫還在迷茫的小伙伴們選擇最適合自己的語(yǔ)言去學(xué)習(xí)。
編程語(yǔ)言選擇
本文大綱:

前言
先來(lái)看張最新的 TIOBE 編程語(yǔ)言排行榜,C 第一、Python 第二、Java 第三:

那可能就會(huì)有一些 “追求極致” 的同學(xué)說(shuō)了,我要學(xué)編程,就學(xué)最牛逼的 C 語(yǔ)言!
千萬(wàn)別!排行榜的統(tǒng)計(jì)方式、人群多種多樣,并不代表一切,不要盲目跟風(fēng)。
我們做事一定要有目的,先想清楚自己學(xué)編程是為了什么?
單純出于好奇、感興趣?為了搞錢?想多門手藝、提高工作效率?想開拓視野?想創(chuàng)業(yè)做自己的產(chǎn)品?還是只是碰巧選了計(jì)算機(jī)專業(yè)呢?

有不少轉(zhuǎn)專業(yè)、其他行業(yè)的在職同學(xué)都想學(xué)編程,但切記:沒(méi)有目標(biāo)是絕對(duì)學(xué)不下去的!
下面介紹下主流編程語(yǔ)言,大家可以跟據(jù)自己的目標(biāo)進(jìn)行選擇。
語(yǔ)言介紹
此前做過(guò)一個(gè)投票,大多數(shù)朋友學(xué)編程還是為了找工作,那我們就先說(shuō)說(shuō)如今最適合找工作、企業(yè)需求量最大的兩個(gè)方向:Java 和前端。

Java
Java 本身是一門相對(duì)高級(jí)的語(yǔ)言,成熟穩(wěn)定,寫出來(lái)的程序可以跑在不同的操作系統(tǒng)上。
但真正促使 Java 被推向神壇、內(nèi)卷之王、培訓(xùn)機(jī)構(gòu)賺錢寶典的呢,還是他豐富的應(yīng)用場(chǎng)景和生態(tài)。后端、桌面程序、安卓 APP、大數(shù)據(jù)等等,但凡你能想到的東西,Java 都有現(xiàn)成的開發(fā)工具和方便的類庫(kù)框架,就是讓你寫更少的代碼、更快地完成開發(fā)。
而且只要是你學(xué) Java 時(shí)人類可能會(huì)遇到的問(wèn)題,在網(wǎng)上都能搜到答案。
這些正好符合企業(yè)的需求:老板給錢,就是希望你能夠快速完成工作,而且最好不出意外事故。
再加上前幾年我國(guó)移動(dòng)互聯(lián)網(wǎng)的發(fā)展,安卓 APP 大肆開道那會(huì)兒,Java 作為安卓的主要開發(fā)語(yǔ)言,被大推了一波。

前端
前端,簡(jiǎn)單來(lái)說(shuō)就是寫網(wǎng)站界面(大多數(shù)情況下),它其實(shí)包含了三種語(yǔ)言:HTML、CSS 還有最重要的 JavaScript。
Web 前端入門相對(duì)簡(jiǎn)單,優(yōu)點(diǎn)是寫出代碼能立刻看到效果,適合培養(yǎng)興趣。
那為啥說(shuō)它適合找工作呢,畢竟大部分公司做產(chǎn)品就是要給用戶使用的,所以界面是必須的,因此需求量大。
此外,現(xiàn)在前端的應(yīng)用越來(lái)越廣泛了,像大前端,你可以用同一套代碼開發(fā)出網(wǎng)頁(yè)、桌面程序、安卓、IOS APP、小程序等,大大節(jié)省了開發(fā)成本。

提到小程序,這玩意的數(shù)量已經(jīng)超過(guò)了 APP!它有很多優(yōu)點(diǎn),免安裝、方便、易分享、基于微信用戶量大等,再加上開發(fā)成本很低,所以是很適合創(chuàng)業(yè)的一個(gè)產(chǎn)品形態(tài)。
也是因?yàn)樾〕绦颉⒋笄岸说陌l(fā)展吧,讓 Android 和 IOS 移動(dòng)端、甚至還有客戶端的開發(fā)前景逐漸變差。就現(xiàn)在來(lái)看呢,IOS、Android 開發(fā)供過(guò)于求,往以后看呢,完全看不到 APP 他的增量在哪里?畢竟除了一些主流的 APP 外,主動(dòng)安裝 APP 的人真是越來(lái)越少了。沒(méi)有市場(chǎng),新人怎么入行,怎么生存?
所以想開發(fā)界面同學(xué),網(wǎng)頁(yè)也好、小程序和 APP 也罷,都建議先從前端學(xué)起,像布局、組件化、模塊化,很多方法和思想是類似的。
C 語(yǔ)言
再說(shuō)說(shuō)大多數(shù)計(jì)算機(jī)專業(yè)同學(xué)接觸的第一門語(yǔ)言 —— C 語(yǔ)言。
有句話說(shuō)的好,任何比 C 語(yǔ)言高級(jí)的語(yǔ)言都能用 C 語(yǔ)言來(lái)代替,任何比 C 語(yǔ)言低級(jí)的語(yǔ)言都不足以完整抽象一個(gè)計(jì)算機(jī)系統(tǒng),這足以證明它的地位。
為啥它那么牛逼呢?

且不說(shuō)他的語(yǔ)法靈活,最關(guān)鍵的是他足夠底層,底層到所有的操作系統(tǒng)(Windows、Linux)都是用它實(shí)現(xiàn)的。所以學(xué)習(xí) C 的過(guò)程中能讓我們接觸到更多底層的概念(比如自己分配和維護(hù)內(nèi)存),有助于我們?nèi)蘸髮懗鲂阅芨叩某绦?。也是因?yàn)檫@點(diǎn),C 語(yǔ)言很適于操作系統(tǒng)、底層軟件、各種嵌入式系統(tǒng)和軟硬件開發(fā)。
C++
C++ 在 C 語(yǔ)言的基礎(chǔ)上增加了一些能力和思想,比如經(jīng)典的面向?qū)ο缶幊?,讓開發(fā)者有更好的開發(fā)體驗(yàn),能夠提高代碼的重用和開發(fā)效率。
它本身就是 C 語(yǔ)言的超集,因此性能也很高。
綜合這兩點(diǎn)呢,C++ 的應(yīng)用場(chǎng)景也是非常之廣,常用于后臺(tái)開發(fā)、桌面程序、語(yǔ)言、框架開發(fā)(Java 都是C++開發(fā)的)、圖像處理、音視頻處理等計(jì)算任務(wù)、3D 引擎等。
C# .NET
提到引擎,就必須要說(shuō)下 C# 和 .NET,千萬(wàn)別讀成 “C 井” 和 “點(diǎn) NET” ??!
.NET 是一個(gè)框架和環(huán)境,而 C# 是運(yùn)行在其上的編程語(yǔ)言之一,此外還有 VB .NET 等。
雖然最近幾年 C# 在國(guó)內(nèi)流行度一般,但仍是 Unity(游戲、VR、AR 開發(fā)平臺(tái))主要使用的編程語(yǔ)言,所以還是有用武之地的。

下面再聊幾個(gè)有爭(zhēng)議的語(yǔ)言。
Python
首先是 Python,入門簡(jiǎn)單、生態(tài)好、很多現(xiàn)成的代碼類庫(kù)能直接用,因此在工作中適合編寫小的腳本和工具,像文件表格處理,能提高辦公效率。
它也是啥都能做,還是爬蟲、數(shù)據(jù)分析、數(shù)據(jù)挖掘、人工智能的一流語(yǔ)言。鋪天蓋地的 Python 廣告、小學(xué)生都開始學(xué) Python 了,這些都反映了 Python 的重要性和易學(xué)性,真的是每個(gè)人都可以學(xué) Python。

但是呢,它并不是企業(yè)開發(fā)的推薦語(yǔ)言,想找開發(fā)工作,就不要去重點(diǎn)研究 Python 了,把它當(dāng)成工具或者入門培養(yǎng)興趣的語(yǔ)言就好。因?yàn)橥乳_發(fā)效率下,Python 作為一門解釋執(zhí)行的動(dòng)態(tài)語(yǔ)言,運(yùn)行效率實(shí)在是太低了,甚至可以比 C++ 慢 100 倍!
PHP
曾經(jīng)熱火朝天的 PHP,他有一個(gè)美稱 “世界上最好的編程語(yǔ)言”。
但是如今 PHP 卻逐漸走向衰落,不再受到大公司的青睞。
為啥?
以前 PC 網(wǎng)站時(shí)代,拿 PHP 做個(gè)網(wǎng)站,弱類型很靈活,開發(fā)起來(lái)賊快賊方便,用 Java 寫 5 天的程序,用 PHP 1 天就能搞定。
但如今,互聯(lián)網(wǎng)的產(chǎn)品形態(tài)逐漸傾斜于移動(dòng)端,而非傳統(tǒng)網(wǎng)站,PHP 雖然能也做服務(wù)端開發(fā),但它的性能太低了!而且隨著 Java 和其他后臺(tái)語(yǔ)言的發(fā)展,它們的開發(fā)效率也上來(lái)了,都能花同樣的時(shí)間完成開發(fā),誰(shuí)還會(huì)選擇性能更低的 PHP 呢?

Go
近幾年 Go 語(yǔ)言在國(guó)內(nèi)發(fā)展迅猛。
他語(yǔ)法簡(jiǎn)單,且天然支持高并發(fā)、性能賊高,因此很適合開發(fā)現(xiàn)在主流的云原生應(yīng)用。像大名鼎鼎的 Docker 容器、還有 B 站都是拿 Go 語(yǔ)言寫的。
再加上國(guó)內(nèi) Go 語(yǔ)言的生態(tài)也越來(lái)越好,類庫(kù)和輪子多了、最佳實(shí)踐也多了,使得開發(fā)成本大大降低。同等時(shí)間開發(fā)個(gè)性能更高的應(yīng)用,它不香么?
像字節(jié)跳動(dòng)和騰訊等互聯(lián)網(wǎng)大公司早就擁抱了 Go 語(yǔ)言,可以想象未來(lái)兩三年, Go 的未來(lái)將是一片光明。

SQL
SQL 是數(shù)據(jù)庫(kù)查詢語(yǔ)言,可以從數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)、操作數(shù)據(jù)。想從事后臺(tái)開發(fā)、數(shù)據(jù)庫(kù)管理相關(guān)工作的同學(xué)必須把它學(xué)好。
除了程序員,現(xiàn)在很多產(chǎn)品經(jīng)理都要學(xué) SQL 了,別看程序員卷,那產(chǎn)品經(jīng)理更是神仙打架。

此外,還有一些程序員常用的語(yǔ)言。像 Linux Shell 腳本編程語(yǔ)言,和 Python 類似,當(dāng)成工具學(xué)就好了。還有 Kotlin、Scala、Rust 等較新的編程語(yǔ)言,都有自己的應(yīng)用場(chǎng)景,大家可以自行了解、按需學(xué)習(xí)。
總結(jié)
綜上,目的、時(shí)間、前景、學(xué)習(xí)成本都是我們選擇編程語(yǔ)言的重要因素。
如果想快速就業(yè),可以直接學(xué)前端或后端。更傾向于所寫即所得、盡快看到效果,就選前端;更想鍛煉思維邏輯能力,就首選后端 Java 或 Go 語(yǔ)言。
還在學(xué)校,時(shí)間充足,想打好基礎(chǔ),就老老實(shí)實(shí)從 C 語(yǔ)言開始學(xué)起。
如果對(duì)編程只是出于興趣,或者想做些小工具,就學(xué) Python 或者前端吧~
最后,希望大家記住,第一門編程語(yǔ)言并不等于你找工作的語(yǔ)言。時(shí)間允許就大膽嘗試,想學(xué)就學(xué),先培養(yǎng)興趣,等到后面再深入學(xué)習(xí)一門語(yǔ)言,學(xué)會(huì)一門再學(xué)其他的也會(huì)很輕松了。
也根本不存在什么最好的編程語(yǔ)言,沒(méi)有銀彈可以通殺,不同的個(gè)體、項(xiàng)目、團(tuán)隊(duì)都應(yīng)該有自己的選擇,解決問(wèn)題、應(yīng)用落地才真正提現(xiàn)了編程語(yǔ)言的價(jià)值,適合自己的才是最好的。
我是魚皮,最后再送大家一些 幫助我拿到大廠 offer 的學(xué)習(xí)資料:
指路:https://t.1yb.co/qOJG
歡迎閱讀 我從 0 自學(xué)進(jìn)入騰訊的編程學(xué)習(xí)、實(shí)習(xí)、求職、考證、寫書經(jīng)歷,少走彎路不迷茫!
指路:https://t.1yb.co/w66s
以上就是本期分享,有幫助的話點(diǎn)個(gè)贊吧 ??