- 解憂程序員:高薪編程、求職面試與成長轉(zhuǎn)型寶典
- 安曉輝
- 2014字
- 2019-01-04 16:37:01
問答|當(dāng)你選擇編程語言時(shí)你在選擇什么
在“問答|我適合做軟件開發(fā)嗎”中提到了“我是否適合做軟件開發(fā)”和“怎樣開始行動(dòng)”兩個(gè)問題,這次我們來回答這個(gè)問題:我應(yīng)該學(xué)哪種語言?
編程語言流行度在說什么
TIOBE編程語言社區(qū)排行榜是編程語言流行趨勢(shì)的一個(gè)指標(biāo),每月更新,這份排行榜排名基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量。TIOBE的排名很值得參考,但請(qǐng)注意這個(gè)排行榜只是反映某個(gè)編程語言的熱門程度,并不能說明一門編程語言好不好。下面是2015年TIOBE的編程語言排行:

Stack Overflow是最火、最專業(yè)、最有效的IT技術(shù)問答網(wǎng)站,很多機(jī)構(gòu)或個(gè)人通過它的標(biāo)簽來分析編程語言的流行趨勢(shì),也具有很強(qiáng)的可參考性。
Stack Overflow 2015年的開發(fā)者調(diào)查結(jié)果中最受歡迎的技術(shù)如下:

最被喜愛的語言如下:

Github是全球最火最流行的開源代碼托管站點(diǎn)和社區(qū),下圖是其2015年8月份的數(shù)據(jù),包含了最熱的10大編程語言,以及2008—2015年熱門語言的變化趨勢(shì):

關(guān)于編程語言和技術(shù)的流行度排名有很多,它們?cè)谡f什么?我們能否根據(jù)它們來選擇學(xué)習(xí)哪門語言?
編程語言的流行度說明了:
●哪些語言當(dāng)下一段時(shí)間內(nèi)比較流行。
●比較近的將來(2~3年)哪些語言比較有生命力。
●語言的就業(yè)難度。
所以,在選擇語言時(shí),編程語言排行榜有一定的參考價(jià)值。編程語言的熱門程度在很大程度上決定了你能夠進(jìn)入什么樣的公司,獲得什么樣的項(xiàng)目。
選擇語言時(shí)你在選擇什么
對(duì)還沒入行的人來說,要選擇一門編程語言,確實(shí)要考慮很多因素。在這里,我把我知道的列出來,供初學(xué)者參考。
1.技術(shù)圖譜
當(dāng)你選擇一門編程語言時(shí),你不僅僅選擇了語言本身,還有圍繞著這門語言產(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)常會(huì)與你所用語言搭配的其他語言,比如你選擇C++,那么Java、C、Python、JavaScript就是與它搭配使用比較頻繁的語言。像Node.js,就是混合體了;JNI也在Java和C之間搭建了橋梁……
你最終會(huì)根據(jù)你選擇的語言構(gòu)建出自己的技術(shù)圖譜,你的技術(shù)圖譜決定了你將來的發(fā)展和你在企業(yè)眼中的價(jià)值。
從這一點(diǎn)講,應(yīng)當(dāng)關(guān)注流行度高、應(yīng)用廣泛、有大公司參與的語言。
2.行業(yè)
有機(jī)構(gòu)通過分析與C++語言相關(guān)的招聘信息得出的結(jié)果,使用C++語言的前三個(gè)行業(yè)是:金融、銀行和游戲。然后是:Front Office、通信、電子、投行、市場(chǎng)、制造業(yè)、零售業(yè)。
你選擇了某種語言,就可能到該語言應(yīng)用最多的行業(yè)里去。所以,在選擇語言時(shí),有必要了解對(duì)應(yīng)語言被應(yīng)用最多的行業(yè)。
也有時(shí)是你想做的產(chǎn)品決定了你要用的語言,比如你想么做iOS上的游戲,那么選擇Objective-C就比較靠譜,而如果你想做跨平臺(tái)的游戲,支持Android和iOS,可能C++和Cocos 2d-x會(huì)比較適合。
3.薪水
技術(shù)本身無優(yōu)劣,應(yīng)當(dāng)根據(jù)特定場(chǎng)景下適合不適合來選擇和看待。打個(gè)比喻,產(chǎn)品和需求是腳,技術(shù)是鞋子。但,不可否認(rèn)的是,在你擇業(yè)時(shí),不同的語言,薪水起點(diǎn)是不同的。
比如你選擇Objective-C、JavaScript、Android,起點(diǎn)是不同的,到招聘網(wǎng)站搜索一下對(duì)應(yīng)崗位用人企業(yè)給出的薪水范圍就可以看出來。
職業(yè)規(guī)劃公司Gooroo通過仔細(xì)查看了美國、英國和澳大利亞的超過50萬份的IT職位空缺,統(tǒng)計(jì)出了需求熱度排名前10的語言對(duì)應(yīng)的職位的薪水(http://www.sitepoint.com/best-programming-language-learn-2015-job-demand-salaries/,下面表格中的比率指某種語言在招聘廣告中出現(xiàn)的比率,年薪指平均年薪,單位是美元):

語言有地區(qū)性差異,上面的數(shù)據(jù)可能更偏向美國。國內(nèi)我沒找到這樣的數(shù)據(jù),但語言與薪水有相關(guān)性,這是毋庸置疑的。
4.同行多寡
不同語言使用的人數(shù)不同,你選擇語言時(shí)還會(huì)選擇和哪些人同行、和多少人同行。搞技術(shù)無人切磋是寂寞的。所以,使用人數(shù)多少也是一個(gè)考慮因素。有時(shí)一門語言的絕對(duì)使用人數(shù)并不能影響你,相對(duì)的,你身邊有多少人使用這門語言可能會(huì)對(duì)你有很大影響。此時(shí)地理因素又很重要,比如Scala,可能在北京有一些人用,在西安則找不到幾個(gè)人使用,你要在西安使用Scala,就很少能找到同伴來溝通。
如果你的身邊有很多和你一樣學(xué)習(xí)該語言的人,那么在遇到困難的時(shí)候能夠及時(shí)地尋求幫助。這一點(diǎn)也很重要。
2015年4月15日J(rèn)etBrains發(fā)布了CLion,一個(gè)跨平臺(tái)的C/C++ IDE。還捎帶著統(tǒng)計(jì)了C/C++程序員及其他程序員的數(shù)量。以下數(shù)據(jù)是全球范圍內(nèi)的學(xué)習(xí)相關(guān)語言的程序員的數(shù)量統(tǒng)計(jì)。
●Java有900萬人。
●C#大約780萬人。
●JavaScript大約760萬人。
●PHP將近600萬人。
●C++大約440萬人。
●Python有400萬人。
●Objective-C大約330萬人。
●C大約190萬人。
●Ruby大約180萬人。
5.氣質(zhì)
語言有性格,會(huì)與人的氣質(zhì)相互影響。有人就喜歡C不喜歡Java,有人就喜歡Java討厭C#,有人就喜歡C#憎惡PHP……
為什么有時(shí)你對(duì)一種技術(shù)會(huì)有“相看兩不厭,唯有敬亭山”的感覺?那是因?yàn)椋愫瓦@門技術(shù)氣質(zhì)相近,和創(chuàng)建者氣質(zhì)相近……
總結(jié)
回顧一下,其實(shí)選擇編程語言時(shí)經(jīng)常考慮下面幾個(gè)因素:
●應(yīng)用范圍,即行業(yè)和產(chǎn)品所需。
●薪資多少。
●同行多寡,和語言有關(guān),有時(shí)也和地理屬性有關(guān)。
●熱門程度。
這些都可以通過互聯(lián)網(wǎng)信息檢索、整理得出,所以,你可以自己決定選擇哪一門語言。
- 收獲,不止Oracle
- 計(jì)算機(jī)組成原理
- Protel 99SE常用功能與應(yīng)用實(shí)例精講
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)實(shí)訓(xùn)指導(dǎo)
- 計(jì)算機(jī)文化基礎(chǔ)實(shí)驗(yàn)教程
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)任務(wù)教程
- 駕馭大數(shù)據(jù)
- 光榮與夢(mèng)想:互聯(lián)網(wǎng)口述系列叢書·胡啟恒篇
- Adobe Dreamweaver官方認(rèn)證標(biāo)準(zhǔn)教材
- 走近云計(jì)算
- VRML虛擬現(xiàn)實(shí)應(yīng)用技術(shù)
- 計(jì)算光刻與版圖優(yōu)化
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)項(xiàng)目教程實(shí)驗(yàn)指導(dǎo)
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)理論架構(gòu)、評(píng)價(jià)方法與應(yīng)用實(shí)踐
- 計(jì)算機(jī)英語