對IT職業、學習軟體開發的人員來說,開發語言真是五花八門、相當凌亂,作為過來人,在剛剛入行時也經歷過語言選型的苦惱,花費很多時間學習的語言找不到合適的作業崗位、或者試圖用一種語言去解決所有問題,雖說任何一種語言理論上都可以解決某個問題,但每種語言的特性和用法不一樣,解決問題的效率也不一樣,薪水也不一樣,
語言就是開發者的工具利器,選對了語言,解決問題事半功倍,而且不同行業不同語言的薪酬差異也很大,希望本文對入門者的開發語言選型以及打算轉行其它語言的同行有所幫助,也歡迎同行關注我,與我交流,
各種開發語言
談到開發語言的前景,業內一般都會參考TIOBE指數,TIOBE指數是根據互聯網上有經驗的程式員、課程和第三方廠商的數量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube統計出排名資料,此類排行只是反映某個編程語言的熱門程度,并不能說明一門編程語言好不好,因為工具沒有好壞之分,適合的就是最好的,
TIOBE指數每月更新一次,對世界范圍內開發語言的走勢仍具有重要參考意義,該指數可以用來檢閱開發者的編程技能是否符合趨勢,以及什么編程語言是應該及時掌握的,從而做出是否有必要作出轉行的決定,
上圖是TIOBE 2020年的開發語言熱門度排行榜,我們只針對前十以及前二十中的主要開發語言進行介紹,前二十里面有些事國內不常用的就不在此介紹了,
C語言
如果你是計算機相關專業,肯定學習過C語言;如果你不是計算機相關專業,打算從事軟體開發,也建議你將C語言作為啟蒙語言,因為編程的許多關鍵概念,比如結構體、陣列、指標、記憶體管理等等都是參考C語言標準,
C語言是目前流行語言中最接近硬體的語言,語言特性越接近硬體,它的執行效率就越高,通常開發效率會越低(費勁),很多硬體的韌體、嵌入式程式以及對程式執行效率有特殊要求的,都需要使用C語言開發,這也是C語言為什么能夠流行40多年經久不衰,不可替代的原因,如果你打算從事硬體開發或者挑戰高性能開發,C語言是最佳選擇,
Java
Java是目前最大眾化的開發語言,已經流行了將近20年,在Java流行的前10年,它和C#.net統治著各種應用程式的開發;近10年,Java在服務端和桌面應用開發領域應該是在逐漸減少(因為出了很多后起之秀),但由于Android移動應用的普及,Android移動應用開發只能使用Java,所以Java依然保持流行,
Java語言的通用性很強,也就是說Java開發者的橫向跨行業發展空間和縱深垂直發展空間都是目前最大的,作業機會也是目前(2020年)最多的,注意,是我說的是只是當前的現狀,我的判斷是Java在服務端開發的方面會越來越少,Java之所以還能保持流行,很大程度上取決于Android移動應用開發只能使用Java,別無選擇,以及大資料Hadoop生態是用的Java語言,如果你打算從事服務端開發,Java已經不是最好的選擇,因為學習成本相對較高;如果你打算從事Android移動應用開發也只能選擇學習Java語言,
Python
Python是目前公認的最容易上手的開發語言,容易到什么程度?現在兒童編程教學領域,用的就是Python,因為Python上手容易,這也促使基于Python的現成輪子(開源庫)很多,很多問題都有現成的庫和代碼,直接就能使用,任何事物有兩面性,Python容易上手,但他的單執行緒解釋語言的特性,決定了他的執行性能不高,而且也不符合現在CPU多核多執行緒的發展趨勢,
很多性能要求不高的應用服務端,都可以用Python快速實作,Python這種膠水語言的通用性也很強,但是很難將性能做到極致,所以Python開發者也很難挑戰業界高薪,通常,Python除了用于開發一般應用(實作功能就行,別的要求不高)之外,自動化運維、自動化測驗、人工智能、大資料崗位會將Python作為工具腳本語言,這樣Python與運維、測驗、人工智能、大資料等相結合之后,也是可以勝任高薪的,注意,是需要與另一種技能組合使用才能挑戰高薪,單純的Python開發者薪酬普遍偏低(學習投入與收益成正比),
C++
C++和C語言屬于宗親,都比較接近硬體,只是C語言是面向程序的開發語言,C++與C語言相比更具備面向物件特性,因此C++的開發效率要比C語言高,但C++與C語言的性能相差無幾,所以在高性能開發領域,很多開發者都使用C++而不使用C語言,硬體開發領域依然使用C語言(這是無可替代的),
如果你想挑戰高薪,從事高性能開發,C和C++是不錯的選擇,
C#
C#與Java曾經流行于同一個時代,甚至超越Java的流行,Java有Android移動應用開發繼續保持流行,但C#的流行很快就衰退了,現在除了構建微軟家族各種桌面應用之外,很少開發者會選擇C#,現在C#依然能夠排到前五,是因為Windows桌面應用(如辦公軟體、游戲軟體)還有很大需求,畢竟大多數人都還在用微軟的Windows作業系統,但C#的流行度,就目前來看,很難持續,
當前,新手很少有人會選擇C#,除非作業所屬行業或者由于歷史遺留問題,必須使用C#開發(國內是這樣,國外可能不太一樣),
VisualBasic .Net
在TIOBE上VisualBasic .Net竟然能排到第六的位置,你是不是覺得很奇怪,我也覺得很奇怪,但仔細想想,也有一定的合理性,在2000年前后的5年(大概10年期間),最流行的開發工具,當屬微軟的Visual Studio莫屬了,那時的大多數開發者都是使用VisualBasic .Net,后來有一部分轉向了C#,因為C#同屬微軟體系,但C#的代碼比VisualBasic .Net更簡潔,也就是說15年前最流行的VisualBasic .Net現在排到第六有其合理性,畢竟瘦死的駱駝比馬大,
當前,新手連比VisualBasic更簡潔的C#都不會選擇,更別說選擇VisualBasic .Net了,除非作業所屬行業或者由于歷史遺留問題,必須使用VisualBasic .Net開發(國內是這樣,歐美使用VisualBasic比國內要更多),
JavaScript
JavaScript在TIOBE上才排到第七,也是我很不理解的,因為在我心目中JavaScript是最流行最通用的開發語言,幾乎每一個Web頁面都需要用到JavaScript,JavaScript是世界上最流行的腳本語言,因為你在電腦、手機、平板上瀏覽的所有的網頁,以及無數基于HTML5的手機App,互動邏輯都是由JavaScript實作的,簡單地說,JavaScript是一種運行在瀏覽器中的解釋性的編程語言,在當今Web世界里,只有JavaScript能跨平臺、跨瀏覽器驅動網頁,與用戶互動,你沒有其它選擇,而且隨著Nodejs生態的完善,用JavaScript也可以實作服務端和桌面應用程式,
JavaScript跟Python差不多容易上手,如果你是新手入門,或是打算從事Web前端開發,或者打算從事全堆疊開發(前端后端都能拿下),JavaScript是最省心的選擇,前端和后端技術堆疊一致,都是JavaScript,所有的互聯網產品和互聯網企業,沒有不需要JavaScript開發的,
PHP
PHP是公認的做網站開發效率最快的編程語言,PHP原意為Personal Home Page的縮寫,后來更名為 "PHP: Hypertext Preprocessor超文本前處理器",它就是為做網站而生的開發語言,現在很多網站、開源建站系統都是用PHP開發的,PHP除了用于做網站,也很少用于別的應用,如果你打算從事網站開發、建站工具開發,PHP是不錯的選擇,PHP開發者的薪資水平和其它建站語言開發者相比,通常偏低,
SQL
SQL結構化查詢語言是一種能被資料庫理解的語言,是每一個開發者都必須要會的開發語言,因為幾乎沒有軟體不需要使用資料庫,所以不管你是哪種語言的開發者,都必須熟悉SQL,先是學習通用的SQL語法,然后再結合某種資料庫學習基于某種資料庫的SQL語法,比如MySQL,各種資料庫的SQL略有差異,
Go語言
Go語言是谷歌公司近些年推出的一款開發語言,屬于后起之秀,對于web服務器開發、網路開發以及命令列程式開發來說,它是又一個非常不錯的選擇,Go語言的語法風格和C/C++很接近,性能也不比C/c++差多少,是一種真正兼顧性能和開發效率的語言,這也是Go語言迅猛流行的根本原因,如果你打算從事互聯網行業,挑戰高性能開發和高薪酬,Go語言是不錯的選擇,
關于開發語言選擇的總結性建議
對于初學編程的人來說,選擇Python或JavaScript可以提高入門的學習效率;對于想從事Android移動應用開發的人來說,只能選擇Java;對于想從事蘋果iOS移動應用開發的人來說,不再選擇Objective-c而是選擇Swift;對于想從事Web前端開發或者全堆疊開發的人來說,JavaScript是很好的選擇(還需熟練HTML和CSS);對于web后端開發來說,PHP、Java、Python和Go語言都可以,建議選擇Go語言(不僅高效而且高薪);對于硬體開發,首選C語言;對于高性能的演算法實作,首選C++;不管從事哪種語言開發,都需要熟悉SQL語言,
至于開發者的薪酬,除了看從事哪種開發語言和所屬行業之外,關鍵看你處在哪個段位,國內一線城市開發者的薪酬,初級(1-2年)在10K左右,中級(3-5年)在20K左右,中高級(5年以上)在30k左右,更高級開發者的年薪百萬以上也很常見,
那么是不是開發者的薪酬與語言類別就沒有關系了呢,當然不是,每個行業的薪酬水平是不一樣的,而不同行業通常使用的語言也不一樣,舉個例子,用Python支撐一個生產型非互聯網企業的門戶網站(單機秒并發不超過100),和用Go語言支撐一個千萬級秒并發用戶的互聯網應用相比(單機秒并發超過2000),當然是后者Go語言開發者的含金量更高(高幾倍甚至幾十倍),而一個千萬級秒并發用戶的互聯網應用通常不會使用Python開發,
另外如果你想更好的提升你的編程能力,好好學習C/C++編程知識的話!那么你很幸運~
C語言C++編程學習交流圈子,QQ群1095293493【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:

編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/176995.html
標籤:其他
下一篇:生物醫學目標的分割與跟蹤
