在問答 | 我適合做軟件開發(fā)嗎一文中橄镜,提到了“我是否適合做軟件開發(fā)”和“怎樣開始行動”兩個問題,這次我們來回答這個問題:我應(yīng)該學(xué)哪種語言冯乘?
編程語言流行度在說什么
TIOBE編程語言社區(qū)排行榜是編程語言流行趨勢的一個指標(biāo)洽胶,每月更新,這份排行榜排名基于互聯(lián)網(wǎng)上有經(jīng)驗的程序員裆馒、課程和第三方廠商的數(shù)量妖异。TIOBE的排名很值得參考,但請注意這個排行榜只是反映某個編程語言的熱門程度领追,并不能說明一門編程語言好不好他膳。下面是2015年TIOBE的編程語言排行:
Stack Overflow是最火、最專業(yè)绒窑、最有效的IT技術(shù)問答網(wǎng)站棕孙,很多機(jī)構(gòu)或個人通過它的標(biāo)簽來分析編程語言的流行趨勢,也具有很強(qiáng)的可參考性些膨。
Stack Overflow 2015年的開發(fā)者調(diào)查結(jié)果中最受歡迎的技術(shù)如下:
最被喜愛的語言如下:
Github是全球最火最流行的開源代碼托管站點和社區(qū)蟀俊,下圖是其2015年8月份的數(shù)據(jù),包含了最熱的10大編程語言订雾,以及2008年到2015年熱門語言的變化趨勢:
關(guān)于編程語言和技術(shù)的流行度排名有很多很多肢预,它們在說什么?我們能否根據(jù)它們來選擇學(xué)習(xí)哪門語言洼哎?
編程語言的流行度說明了:
- 哪些語言當(dāng)下一段時間內(nèi)比較流行
- 比較近的將來(2~3年)哪些語言比較有生命力
- 語言的就業(yè)難度
所以烫映,選擇語言時沼本,編程語言排行榜有一定參考價值。編程語言的熱門程度很大程度上決定了你能夠進(jìn)入什么樣的公司锭沟,獲得什么樣的項目抽兆。
選擇語言時你在選擇什么
對還沒入行的人來說,要選擇一門編程語言族淮,確實要考慮很多因素辫红。在這里,我把我知道的列出來祝辣,供初學(xué)者參考贴妻。
1. 技術(shù)圖譜
當(dāng)你選擇一門編程語言時,你不僅僅選擇了語言本身蝙斜,還有圍繞著這門語言產(chǎn)生了各種各樣的應(yīng)用框架名惩。比如你選擇C++,將來就可能接觸到這些框架:
Boost乍炉,Qt绢片,Silicon,tufao岛琼,TreeFrog底循,WTL,STL槐瑞,libev熙涤,Cocos2d-x,Dlib困檩,Ultimate++祠挫,Asio,TinyXML悼沿,libxml++等舔,CEGUI、FLTK糟趾、wxWidgets慌植、Ogre 3D、Cairo义郑、Skia蝶柿、OpenCV、CxImage非驮、Json++交汤、Json11箍土、CppUnit凫佛、OpenSSL溉躲、Crypto++胚宦、C++React、OpenCL纵顾、OpenAL伍茄、Vorbis栋盹、Memcached施逾、libcurl、SQLite……
除了直接與你所選語言相關(guān)的技術(shù)框架例获,還有一些可能經(jīng)常會與你所用語言搭配的其它語言汉额,比如你選擇C++,那Java榨汤、C蠕搜、Python、JavaScript就是與它搭配使用比較頻繁的語言收壕。像Node.js妓灌,就是混合體了;像JNI蜜宪,也在Java和C之間搭建了橋梁……
你最終會根據(jù)你選擇的語言構(gòu)建出自己的技術(shù)圖譜虫埂,你的技術(shù)圖譜決定了你將來的發(fā)展和你在企業(yè)眼中的價值。
從這點來講圃验,應(yīng)當(dāng)關(guān)注流行度高掉伏、應(yīng)用廣泛、有大公司參與的語言澳窑。
2. 行業(yè)
有機(jī)構(gòu)通過分析與 C++ 語言相關(guān)的招聘信息得出的結(jié)果斧散,使用C++語言的前三個行業(yè)是:金融、銀行和游戲摊聋。接下來是:Front Office鸡捐、通信、電子麻裁、投行箍镜、市場、制造業(yè)悲立、零售業(yè)鹿寨。
你選擇了某種語言,就可能到該語言應(yīng)用最多的行業(yè)里去薪夕。所以脚草,在選擇語言時,有必要了解這種語言被應(yīng)用最多的行業(yè)原献。
有時是你想做的產(chǎn)品決定了你要用的語言馏慨,比如你想做iOS上的游戲埂淮,那估計就得選擇Objective-C比教靠譜,而如果你想做跨平臺的游戲写隶,支持Android和iOS倔撞,可能C++和Cocos2d-x會比較適合。
3. 薪水
技術(shù)本身無優(yōu)劣慕趴,應(yīng)當(dāng)根據(jù)特定場景下適合不適合來選擇和看待痪蝇。打個比喻,產(chǎn)品和需求是腳冕房,技術(shù)是鞋子躏啰。但,不可否認(rèn)的是耙册,不同的語言给僵,在你擇業(yè)時,薪水起點是不同的详拙。
比如你選擇Objective-C帝际、JavaScript、Android饶辙,起點是不同的蹲诀,到招聘網(wǎng)站搜索一下對應(yīng)崗位用人企業(yè)給出的薪水范圍就可以看出來。
職業(yè)規(guī)劃公司Gooroo通過仔細(xì)查看了美國畸悬、英國和澳大利亞的超過50萬份的IT職位空缺侧甫,統(tǒng)計出了需求熱度排名前10的語言對應(yīng)的職位的薪水(http://www.sitepoint.com/best-programming-language-learn-2015-job-demand-salaries/):
語言有地區(qū)性差異,上面的數(shù)據(jù)可能更偏向美國蹋宦。國內(nèi)我沒找到這樣的數(shù)據(jù)披粟,但語言與薪水有相關(guān)性,這是毋庸置疑的冷冗。
4. 同行多寡
不同語言使用的人數(shù)不同守屉,你選擇語言時還會選擇和哪些人同行、和多少人同行蒿辙。搞技術(shù)無人切磋是寂寞的拇泛。所以,使用人數(shù)多少也是一個考慮因素思灌。而一門語言的絕對使用人數(shù)有時并不能影響你俺叭,相對的,你身邊有多少人用可能會對你有很大影響泰偿。此時地理因素又很重要熄守,比如Scala,可能北京有一些人用,西安則找不到幾個裕照,你要在西安用Scala攒发,就很少能找到同伴來溝通。
如果你的身邊有有很多和你一樣學(xué)習(xí)該語言的人晋南,那么在遇到困難的時候能夠及時的尋求幫助惠猿。這一點很重要哦。
2015年4月15日 JetBrains(牛B公司负间,各種IDE)發(fā)布了 CLion偶妖,,一個跨平臺的 C/C++ IDE唉擂。還捎帶著統(tǒng)計了C/C++程序員及其它程序員的數(shù)量餐屎。以下數(shù)據(jù)是全球范圍內(nèi)的檀葛,估算的哦:
- Java 有 900 萬玩祟;
- C# 大約 780 萬;
- JavaScript 大約 760 萬屿聋;
- PHP 將近 600 萬空扎;
- C++ 大約 440 萬;
- Python 有 400 萬润讥;
- Objective-C 大約 330 萬转锈;
- C 大約 190 萬;
- Ruby 大約 180 萬楚殿;
5. 主要看氣質(zhì)
語言有性格撮慨,會與人的氣質(zhì)相互影響。有人就喜歡C不喜歡Java脆粥,有人就喜歡Java討厭C#砌溺,有人就喜歡C#憎惡PHP……為什么有時你對一種技術(shù)會有“相看兩不厭,唯有敬亭山”的感覺变隔?那是因為规伐,你和這門技術(shù)氣質(zhì)相近,和創(chuàng)建者氣質(zhì)相近……
這里有一張使用不同語言的程序員的氣質(zhì)圖::
能參考匣缘?能參考猖闪?真的能吧……
總結(jié)
回顧一下,其實選擇編程語言時經(jīng)臣〕考慮下面幾個因素:
- 應(yīng)用范圍培慌,即行業(yè)和產(chǎn)品所需
- 薪資多少
- 同行多寡,和語言有關(guān)柑爸,有時也和地理屬性有關(guān)
- 熱門程度
這些都可以通過互聯(lián)網(wǎng)信息檢索吵护、整理得出,所以,你可以自己決定選擇哪一門語言嘍何址。