官术网_书友最值得收藏!

問答|當(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)信息檢索、整理得出,所以,你可以自己決定選擇哪一門語言。

主站蜘蛛池模板: 通山县| 赞皇县| 永吉县| 贺兰县| 吉安县| 土默特左旗| 七台河市| 通州区| 江油市| 怀宁县| 屏山县| 霍邱县| 江口县| 图片| 兰州市| 汉川市| 雅江县| 逊克县| 保山市| 台中县| 军事| 馆陶县| 朝阳县| 盱眙县| 曲靖市| 香河县| 海伦市| 西青区| 吉林省| 章丘市| 来宾市| 景德镇市| 普格县| 鹿泉市| 任丘市| 象山县| 金山区| 济源市| 珠海市| 汝州市| 商河县|