互聯網大熱,隨之對技術、程序員的需求也是很大,因此,很多大學生或想轉行從事計算機編程工作,但市場上編程語言眾多,我們該選擇哪種語言呢?今天我們大圣眾包(www.dashengzb.cn)小編從多個角度分析該選擇哪個語言!
1.什么決定流行指數?
那么,哪種語言最流行?這個問題回答起來不如你想象的那么輕松。關鍵是要確定什么決定流行指數。
這是個極其開放性的問題,以至于維基百科有一篇文章專門衡量編程語言的流行指數。該文章表明了衡量流行指數的許多可能的因素,包括如下——
某種語言的名稱在網絡搜索中提到的次數,比如谷歌趨勢表明的結果;
提到某種語言的招聘廣告的數量;
教授或介紹某種語言的圖書的銷量;
用某種語言編寫的現有代碼的行數(估計值),這可能低估了不常出現在公共搜索中的語言;
SourceForge、Freecode和GitHub上使用某種語言的項目數量;
論壇和新聞組上關于某種語言的帖子數量;
連上面這些都不完整。你可以添加其中一些衡量標準:
編程培訓班銷售的課程數量;
全球報名編程課的學生數量;
YouTube上關于某種語言的視頻數量;
Reddit或StackExchange上關于某種語言的帖子數量。
想必你也明白了。如果你考慮在不同國家的流行指數,這個問題會變得更復雜。某些語言在印度是不是更流行?在美國?在俄羅斯?
結論就是,流行指數并不是唯一的決定性答案。
2.不同的衡量來源
這時問題來了。即便明白流行指數要結合諸多不同的因素來衡量,但是學生和專業人員仍想知道自己是否在引領職業生涯及公司往正確的方向發展。
有許多網站發布語言流行指數衡量指標,每一份遵循不同的標準。IEEESpectrum采用了值得關注的一種方法,因為它的交互圖形讓你可以權衡不同的因素,比如求職網站上的招聘廣告或開源項目。
CodingDojo有一個圖形,它整合了來自求職搜索引擎Indeed.com的統計數字。Tiobe長期以來使用搜索引擎的整合結果來估算流行指數。PyPl關注谷歌上語言教程的流行指數。
遺憾的是,這其實毫無幫助。如果你看一下要學習哪些語言,或者想支持哪些語言,很難決定哪個圖形是值得信賴的。
3.那么,哪種是最流行的語言呢?
為了幫助你厘清頭緒,我結合了上面提到的各個來源。就IEEE的三個類別而言,趨勢(IEEETrending)意味著會是有流行趨勢的語言的排名,工作(IEEEJobs)體現了Dice.com和CareerBuilder上的崗位空缺的排名,而開放(IEEEOpen)體現了開源項目的數量的排名。
語言流行指數衡量指標的合并圖:
可是問題是,這其實無法告訴你著重關注哪種語言。
為了深入問題的核心,我對數據進行了一番分析。我整合了來自六個來源中五個的數據(我擯棄了CodingDojo,因為它只顯示十種語言)。然后,我根據它在每個圖形上出現的名次、出現了多少次給每種語言加權。我拿來前十名結果后制作了下面這張語言分類聚合圖形。
DavidGewirtz基于IEEE、CodingDojo、PyPl和Tiobe的加權后的合并分析。
正如你所見,有三類語言。第一大類包括Java、C、Python和C++。毫無疑問,你應該熟悉這四種語言。下一大類包括JavaScript、C#、PHP和Swift。剩余兩種語言是Objective-C和R。
4.結果告訴了我們什么?
第一大類中的語言:Java、C、Python和C#是很普遍的語言。它們并不與某一種特定的編程平臺相關聯。
最值得關注的線索是第二大類,包括JavaScript、C#、PHP和Swift。JavaScript和PHP主要是Web開發語言。C#是一種以微軟為中心的語言。Swift是蘋果新的主要編程語言。從根本上來說,第二大類針對特定的平臺。
同樣,這告訴了我們什么?如果你了解現代編程,就認識到不僅僅使用語言。你始終為某個對象從事開發,無論該對象是嵌入式系統、iPhone、Web應用程序還是微軟服務器應用程序。
語言熟悉程度只是其中的一個方面。比如說,不管你有多喜歡Python或很普通但仍然管用的C,如果你編寫WordPress插件或主題,就會用JavaScript和PHP來編寫。其他語言有多流行并不重要。如果你的雇主是微軟技術開發商,那么你最好了解C#。
5.從字里行間體會言外之意
我希望你注意到幾個比較有意思的方面。首先,CodingDojo的頭號語言是SQL。這既合理,又不合理。你很少只用SLQ編程。你使用SQL來訪問數據,但用另一種語言管理那些數據查詢。所以有必要知道SQL。然而,僅僅上SQL課無法保證你有工作、有豐厚薪水或過上好日子。
其次,考慮到iOS應用程序的流行指數,針對蘋果的語言在圖形上的排名比你預計的要低。但是這有其道理。如果你想構建自己的應用程序,應該學習那些語言。但是招聘蘋果應用程序開發人員的公司數量并不是很多。這就是為什么Swift在圖形上的排名相對較低。Objective-C已被Swift取代,我們眼睜睜地看著它的名次下滑。
C家族語言仍是主導者。Java、C++、C、C#甚至Objective-C都是基于C的語言。如果你只想學習一種語言,那么應該從中挑選一種。我會建議Java或C++,因為學會這兩種語言后,C家族的其余語言學起來很輕松。
在我職業生涯的現階段,我可以用20種語言來編程。我通常可以在幾天內學會一種新語言。那是由于我在工程學校的論文就是以語言設計為主題,而且20年來我一直斷斷續續地在教編程。通曉多種語言對我大有幫助,因為我幾乎總是可以為當前的工作選擇一種語言,不是由于我只上了一門課,我就無所不知了。這聽起來難度很大,但是你也能做到。
我給你的忠告就是,學習多種語言和多種框架,如果你想從事編程行業更是如此。用語言來構建產品。編程不僅僅是一種心智的運用,你還得開發實際的東西。
通曉多種語言和框架很重要,因為計算機行業在發生天翻地覆的變化。當然,C的歷史比數字手表和Pong還長,但是Swift問世才短短幾年,卻已經躋身前十名。你今天所學的語言可能不足以滿足整個事業生涯的要求。所以學會如何學習語言就跟學一種語言一樣重要,而最好的辦法就是學不止一種語言。
我的建議很簡單。選擇C++或Java,好好學。然后學JavaScript。越來越多的基于Web的應用程序需要良好的JavaScript技能。然后選擇PHP、Swift或Python,具體要看你想完成哪一種類型的工作。一旦你熟練掌握了這三種語言中的某一種,就能夠比較輕松地選擇你所需要的任何其他語言或框架。
(更多大數據與商業智能干貨、或電子書請關注大圣眾包,或添加個人微信號(dashenghuaer))