談談編程語言的選擇

常常有新人問我,我該學哪一門編程語言呢?編程語言太多了,我都不知道該選擇哪一門編程語言來深入學習了!是的,我也曾被這個問題所困惱,當初學習軟件編程時也經歷了C/Java/C#這樣的路線,後來我也接觸並使用過C++/Visual Basic/JavaScript/PHP/Python等語言,並瞭解過一些冷門語言。多年下來,我對編程語言的理解是每個編程語言的出現都有它出現的理由,每個編程語言也都有各自最適合的應用場景,沒有一門語言能夠包辦所有。

我們先來看一下2016年3月份的世界編程語言排行榜:

這裏寫圖片描述

這裏列出了最流行的TOP20編程語言,我們先來分析一下上面一些常用的編程語言。

Java:應用開發領域的王者,JavaEE和Android的如日中天讓Java穩居排行榜第一。
C:在操作系統內核、嵌入式開發等方面具有無可比擬的優勢。
C++:適合服務端開發、遊戲開發等對性能有一定要求的領域。
C#:Java的直接競爭對手,在應用開發領域有相當的份額,Unity3D的流行,也讓C#擴充到了遊戲開發領域。
Python:動態腳本語言,隨着大數據相關技術的發展,份額不斷上升。
PHP:LAMP幾乎是網站開發的標配,各種框架模板都比較成熟。
JavaScript:動態腳本語言,網頁前端開發的唯一選擇,隨着HTML5、Node.js等技術的發展,讓其在Web端有大一統的趨勢,在遊戲開發、物聯網開發等領域也有其一席之地。
Swift/Objective-C:iOS開發語言,Swift正在進化中。

上面我簡要介紹了一下目前幾個主流語言各自的應用領域。可以說沒有哪個語言能夠完全替代掉誰,但是也不能保證隨着技術的不斷髮展,這些語言還能保持領先。

選擇了一門語言,實際上就是選擇了它背後的技術棧,所以我們應該圍繞應用領域來選擇語言。比如你要做操作系統內核、嵌入式開發,那你就去學C。你想開發遊戲,那你可能要去學Cocos2d-x或者unity3d,分別對應了C++和C#,當然JavaScript也行。如果你想實現Web全棧開發,那麼你可能需要精通JavaScript。沒有一門編程語言能夠包辦所有。

但儘管如此,初學編程時,第一門語言的選擇還是很重要的,會影響你的思維。我想初學編程時還是選擇C語言比較好,C++雖然是C的“擴充”,但是規則過於複雜,概念過多,初學者會失去信心。有了C的基礎,就可以學一下C++/Java/C#中的一種,這是目前應用開發領域最主流的語言。

近些年大數據的流行以及前端開發的興起,使得Python和JavaScript兩門動態腳本語言不斷流行,與之相應的庫和框架也不斷進化。所以很多人又轉向了這方面的開發。這就引出了我的一個觀點:學習編程還有一種思想要不得,就是貪圖大而全。一個人的精力和能力都是有限的,很難掌握所有。況且各個技術體系的技術還在不斷升級。就是全棧工程師,那也是某個方面的全棧,比如web全棧或者app全棧。不是做不到web全棧+app全棧,而是很難每一塊、每一個細節都能一樣的達到較高水準。隨着軟件開發分工的越來越細,還是讓更專業的人來做爲好。你可以在有時間有精力的情況下,瞭解一下其它領域的技術,擴充知識面,但不要本末倒置。

最後我想說,不要把自己限死在一門編程語言上,根據市場的變化和自己的興趣合理選擇編程語言,讓我們做一個真正的程序員。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章