前言: 編程語言本身沒有優劣之分,不同的語言適合不同的場景,文中說的建議,多是站在小白要就業的立場給出的建議。 正文 我們看這張導圖,這張圖右側是前端類的語言,左側是服務端的語言: 我們先說右側。 第一個就是 JavaScript,簡稱 JS。 我強調下他和 Java 是沒有關係的,只是名字類似。 ...
前言:
編程語言本身沒有優劣之分,不同的語言適合不同的場景,文中說的建議,多是站在小白要就業的立場給出的建議。
正文
我們看這張導圖,這張圖右側是前端類的語言,左側是服務端的語言:
我們先說右側。
第一個就是 JavaScript,簡稱 JS。
我強調下他和 Java 是沒有關係的,只是名字類似。
他的用途是前端開發,他負責網頁上的交互事件和交互數據,比如你在界面上做了點擊滑動的操作,這都是 JS 負責的,你能在界面上看到文章、視頻等數據,比如在知乎你能看到推薦的文章(數據),這也是 JS 負責的(通過 Ajax 調用後端介面獲取)。
建議:你要做前端,那隻有這一門語言能選擇,屬於必選項,JS 占了前端很大的比重,說白了做前端開發就是在搞 JS。
第二個和第三個都是原生 App 的開發語言
我對這兩個的建議就是不建議作為入行語言,
因為 App 開發分原生和混合:
原生開發擁有更好的流暢度,更豐富的動畫,但是一套 App 要分兩個版本,要兩組不同的人來維護。
而混合開發就是前端來做的,不需要分兩組,這幾年混合開發也在進步,考慮到成本問題,中小公司或者說這個項目沒有很高的要求,那一般會採用混合開發的方案。
所以說如果你是已經在做安卓或者 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了。
其實我也很建議大家大學時候就開始自學,時間多,做出小工具後的成就感能讓你繼續學下去,很有可能你大學幾年能把前端後端(其中一門語言)都學會,再搭配良好的計科基礎知識,很有希望進大廠,就算進不去大廠,那這個時候的你也不會為找不到工作發愁。
相反,如果你大學沒有自學,那你就算是電腦專業,你畢業也基本找不到工作,別提什麼實習,實習也是要的能幹活的,大多數電腦專業的同學自己到底幾斤幾兩能不能幹活心裡都應該有數吧。
到時候只能參加培訓,進入大廠的機會減少(因為失去了校招),而且還要交錢學習,不過你如果真的錯過了大學自學,到了畢業才開始學,那培訓反而成了性價比高的選擇了。
業務捋定方向,設計決定發展。 —— SA 系統架構設計師(System Architect)