動態

詳情 返回 返回

主流編程語言的“介紹”與“選擇” - 動態 詳情

前言:

《編程語言》本身沒有優劣之分,不同的語言適合不同的場景,文中説的建議,多是站在小白要就業的立場給出的建議。

適合場景:

  • Perl、VBScript:系統腳本;
  • C/C++:運算程序;
  • C#、.Net:C/S、B/S 系統應用;
  • Lua、Ruby、Rust:函數腳本;
  • Python、Golang:算法程序;
    { 靜謐、蠕動、邏輯、規則、策略、排序、哈希、匹配、搜索、加密;動態規劃(DP)、二分查找、線性迴歸、邏輯迴歸、梯度增強、遞推、遞歸、窮舉、貪心、分治、迭代、分支界限、回溯。決策樹、隨機森林、馬爾可夫、樸素貝葉斯、K 近鄰、K 均值、主成分分析、K-means 聚類、Adaboost、Apriori、神經網絡、卷積神經網絡、循環神經網絡、長短期記憶網絡、生成對抗網絡、人工神經網絡、支持向量機、集成學習、深度強化學習;基本算法 [ 深度優先搜索 / 廣度優先搜索 / 啓發式搜索 /遺傳 / 枚舉 ]、數據結構算法、數論與代數算法、計算幾何算法 [ 凸包 ]、圖論算法 [ 哈夫曼編碼 / 樹遍歷 / 最短路徑 / 最小生成樹 / 最小樹形圖 / 網絡流 / 分團問題 ]、其他算法 [ 數值分析 / 檢索 / 隨機化 ] 。}
  • Java:C/S、B/S 服務應用;
  • PHP:門户網站;
  • Node.js:推廣網頁;
  • React Native/Uni-App X、Flutter/QT:程序應用;

正文

我們看這張腦圖,這張圖右側是《前端類》的編程語言,左側是《後端類》的編程語言:

 

我們先説右側。

第一個就是 JavaScript,簡稱 JS。

我強調下它 和 Java 是沒有關係的,只是名字類似。

它的用途是前端開發,它負責網頁上的交互事件 和 交互數據,比如你在界面上做了點擊滑動的操作,這都是 JS 負責的,你能在界面上看到文章、視頻等數據,比如在知乎你能看到推薦的文章(數據),這也是 JS 負責的(通過 Ajax 調用後端接口獲取)。

建議:你要做前端,那只有這一門語言能選擇,屬於必選項,JS 佔了前端很大的比重,説白了做前端開發就是在搞 JS。

第二個 和 第三個都是原生 App 的開發語言

我對這兩個的建議就是不建議作為入行語言,

因為 App 開發分原生 和 混合:

原生開發擁有更好的流暢度,更豐富的動畫,但是一套 App 要分兩個版本,要兩組不同的人來維護。

而混合開發就是前端來做的,不需要分兩組,這幾年混合開發也在進步,考慮到成本問題,中小公司或者説這個項目沒有很高的要求,那一般會採用混合開發的方案。

所以説如果你是已經在做 Android 或者 iOS 的,可以根據情況來斟酌,但作為想入行的小白,不建議以這兩個語言入門。

我們再看這張圖左邊的語言。這邊都是後端類的語言。

 

Node.js

Node.js 用途一般是後端開發,它其實就是 JS,只是 Node.js 多了操作文件 和 數據庫的語法,所以可以做後端,但是真用它做後端的公司很少很少。不適合作為第一門語言學,一般是做前端之後,把它作為了解後端的跳板。

PHP

PHP,用途也是 web 後端開發,它還有個頭銜是——“世界上最好的語言”。

不過以現在來説,這個世界上最好的語言可以説大勢已去~

PHP 在互聯網初期因為其輕量 和 快捷,適合中小型應用,再加上易學,所以在以前的互聯網很有統治地位,後來前後端分離了,公司也慢慢成熟,面對性能等問題其它語言有更好的解決方案,所以公司大多捨棄了 PHP,到了現在就算是初創公司做web後端的項目適合用 PHP,但是出於跟風或者為了拉投資畫餅,以及招人成本,也會選擇其它語言。

我認識的在一線工作的 PHP 程序員基本都轉前端、轉 Go 或者 Java 了,二線做Php還有在堅持的,新手不建議再從 PHP 入手,並不是它不好,語言沒有好壞之分,但是我們要考慮到我們要就業的事實。

Python

應該很多人在網上看過 Python 的廣告吧,比如 9.9 學 Python,下班早等。

它的用途服務器開發,數據相關工作(採集分析,機器學習)。

Python 語法簡單易學,插件豐富,作為工具確實會方便很多人的日常工作。

如果你是以學習為目的,可以把 Python 當成第一門語言,因為更容易上手,能做的事兒也多,會體會到編程的趣味性,從而更積極的學習編程。

如果你是小白,以找工作為目的,我不建議你把 Python 當成第一門語言。因為 Python的主力還是人工智能、數據處理這一塊,而這一塊對數學是有要求的。

雖然 Python 還能做後端啊,比如知乎 和 豆瓣的後端就是 Python,但是以後端來説 Python 的就業崗位是遜於java的。

當然也有可能你搜 Python 你還會説,老師這 Python 崗位數量也不少啊。

那是因為做數據相關的、做測試時候也需要懂 Python,招聘網站會把這些統計到 Python 工程師之下,這樣來説就多了。

總得來説,你以學習為目的,以 Python 為第一語言不會讓你自閉,因為它語法簡單,插件豐富的特點,能讓你學的輕鬆,並且能快速實現一些東西,讓你感受到編程的魅力,但是如果以工作為目的選擇第一語言,我不會把這一票投給 Python。

Golang

新晉的寵兒——Golang,説它新晉也不準確,它出來也有10年多了,只是相對其它語言比較年輕。

它的領域也是後端開發,對 Go 的建議嘛 emmm...

我個人認為,小白以找工作為目的,不適合把 Go 當成第一門語言。

因為同樣是服務端開發,Go 的生態 和 市場佔有率不如 Java,而且 Go 主要集中在一線大廠,並不是每個人都有資格進一線大廠,而且中小公司在技術選擇上肯定是願意用 Java 而不是 Go,

一來 Java 的生態足夠豐富,二來員工容易招。所以我不建議把 Go 當成入門第一語言。

當然如果你學歷好,對自己的成長有規劃,或者目前還是大學階段不着急找工作,也可以選擇 Go。

如果你只是一般學歷,就要面臨就業還沒有熟悉能用來工作的語言,我認為這種情況,隨大流更好。

Java

Java——後端第一語言,縱然現在存在內卷嚴重,但是小白以找後端工作為目的的情況下,我認為 Java 仍然是不二選擇,因為生態足夠豐富,招聘需求大!

這幾年裏有人説 Python 會超過它,有人説 Go 會取代它,可事實證明 Java 還是那個 Java,還是那個後端一哥。

所以如果你面臨就業沒有能夠開發的語言,且又想做後端,你就學 Java。

C 語言

C 是底層語言,能做操作系統、嵌入式、網絡安全,但是不是學會了 C 你就會以上的事情,C 只是一個工具,你還要搭配相應的知識與工具。比如你想做嵌入式,你還需要了解數字電路、模擬電路、Linux 等

建議:C 語言能夠讓你更加深刻的認識內存 和 編譯原理,還有程序思想,數據結構,瞭解程序的每一個細節,夯實基本功,所以優秀的程序員都會學習 C 語言。但多數程序員的開發語言不是它,因為它偏向底層,而多數程序員做的事情偏應用層。

所以你不會 C 語言你也能做程序員,計算機也分層,就像你開車並不需要會修車一樣,只是 C 語言能讓你讓你瞭解的足夠深,能讓你有希望在技術道路上走的更長遠。

C++

C++ 也是偏底層的語言,用途:桌面軟件開發、遊戲開發。

建議:其實建議 和 C語言差不多,C++ 崗位不多但是精,不少大廠需要性能的業務是由 C++ 來做,比如微軟、字節的廣告系統都是 C++ 來做的。

如果你是本專業的大一,學 C/C++ 這類偏底層的語言,是能夠打好你的基本功的;

如果你面臨就業,還是選擇 Java、或者前端更合適。

C 和 C++ 也是院校計算機專業基本都教的,雖然工作可能用不上,但是學的是程序思想 和 數據結構,你可以理解打好基本功。

C#

最後一個 C#,這個我瞭解的不多,我去招聘軟件上看了看,它的崗位主要分佈在遊戲開發、後台、工具開發等方面。

建議:C# 在國內就業市場確實行情不佳,在 Unity 3D 上比較有發展前景,其它領域前景不明。

C# 還經常 和 .Net 連在一起,不過 .Net 不是編程語言,嚴格來説 .Net 是一個平台,支持很多語言,C# 是支持的最好的,所以在大多數語境下,.Net 工程師等於 C# 工程師。

 

總結:

如果你是零基礎要就業的情況下,前端方向肯定是 JS(唯一的選擇),後端方向最建議 Java。

如果你在學校以學習為目的,把學校教的基本功打好,然後從 Python、JS、Java 選擇一個來學習,在我看來從 Python 或者 Java 選擇了一個,然後 JS 基本也不會繞過去,因為你做了個工具,你肯定還想展示出來嘛,展示的事兒就是前端就需要用到JS了。

其實我也很建議大家大學時候就開始自學,時間多,做出小工具後的成就感能讓你繼續學下去,很有可能你大學幾年能把前端後端(其中一門語言)都學會,再搭配良好的計科基礎知識,很有希望進大廠,就算進不去大廠,那這個時候的你也不會為找不到工作發愁。

相反,如果你大學沒有自學,那你就算是計算機專業,你畢業也基本找不到工作,別提什麼實習,實習也是要的能幹活的,大多數計算機專業的同學自己到底幾斤幾兩能不能幹活心裏都應該有數吧。

到時候只能參加培訓,進入大廠的機會減少(因為失去了校招),而且還要交錢學習,不過你如果真的錯過了大學自學,到了畢業才開始學,那培訓反而成了性價比高的選擇了。

user avatar jingdongkeji 頭像 sevenShaw 頭像 qteasy 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.