許多開發者都會定期審視自己的技能樹和職業選擇,如今有不少「最佳程式語言」評選資料來源,這是否為我們提供了參考?
國外最喜歡做調查研究的了,我們來看看Stack Overflow 開發者調查,超過173個國家的56,000名開發者在2016年底參與了Stack Overflow發布的調查,其中
最常使用的技術語言:
JavaScript — 55.4%
SQL — 49.1%
Java — 36.3%
C# — 30.9%
PHP — 25.9%
Python — 24.9%
C++ — 19.4%
AngularJS — 17.9% (JavaScript framework)
Node.js — 17.2% (server-side JavaScript)
C — 15.5%
# #開發者最喜歡的語言是:
Rust — 79.1%
Swift — 72.1%
F# — 70.7%
Scala — 69.4%
Go — 68.7%
Clojure — 66.7%
React — 66.0%
Haskell — 64.7%
Python — 62.5%
C# — 62.0%
#開發者最恐懼的語言:
Visual Basic — 79.5%
WordPress — 74.3%
Matlab — 72.8%
Sharepoint — 72.1%
CoffeeScript — 71.0%
LAMP — 68.7% (Linux, Apache, MySQL, PHP )
Cordova — 66.9%
Salesforce — 65.4%
Perl — 61.3%
SQL — 60.3%
開發者有興趣學習的技術方向:
Android — 15.8%
Node.js — 14.8%
AngularJS — 13.4%
#Python — 13.3%
JavaScript — 11.9%
React — 9.2%
Swift — 8.7%
MongoDB — 8.1%
#Arduino / Raspberry Pi — 8.0%
C++ — 8.0%
Stack Overflow最常被提問、討論和投票的技術方向:
JavaScript — 16.6%
Java — 14.7%
Android — 11.5%
Python — 11.4%
#C# — 11.1%
PHP — 8.6%
jQuery — 6.7%
C++ — 6.6%
HTML — 6.6%
iOS — 6.3%
PYPL (流行程式語言指數)程式語言相關教學被搜尋的頻率佔比:
Java — 23.1%
Python — 14.4%
PHP — 9.7%
C# — 8.4%
JavaScript — 7.7%
C — 7.1%
C++ — 7.0%
# Objective—C — 4.4%
R — 3.4%
Swift — 3.0%
TIOBE Index 根據搜尋引擎資料評選最佳程式語言:
Java — 17.3%
C — 9.3%
C++ — 6.3%
C# — 4.0%
Python — 3.5%
VisualBasic.NET — 3.0%
JavaScript — 2.9%
Perl — 2.7%
Assembly Language — 2.7%
PHP — 2.6%
2016年上升最快的是Go語言,從榜上無名到13位(2.3%)。 Java雖然以近C語言兩倍的差距佔據榜首,2016年還是下降了4.19%。
調查告訴我們什麼了?
事實上沒有什麼。
資料結果看著有趣,但總是矛盾的,資料收集的方式也總是受到限制:
#搜尋引擎資料對於老舊的,問題頻傳的語言以及普及更廣的語言更有利
線上調查會受到特殊受眾的限制,Stack Overflow的開發者多是相對更在行的程式設計師,更容易在流行語言和框架中提出問題。
歷史的使用模式對於未來趨勢的映射越來越少,Node.js在十年前還不存在,20年前,Perl和C語言還是伺服器端開發最常用的語言選擇。
舉個例子,在所有的調查排行中,Java的排名都高於PHP,但Java通常被應用於教學和開發控制執行緒、桌面和原生安卓應用程式。而PHP被用在82.4%的網頁伺服器,Java只有2.7%。
資料以外,其他程式設計者的建議
許多「最佳程式語言」文章吸引了大量的關注和評論,每個人都有自己的觀點。然而,沒有一個開發者會對每種語言都有開發經驗(儘管有人會多種語言)。
每個人給的選擇都是有偏見的。人們傾向於站隊自己正在使用的語言,不然,他們自己就得做出改變。
他人的開發經驗是很有用的信息,但是也許你並沒有與ta有相同的需求,或者他的那套經驗對你而言並不適用。
#沒有什麼「最佳語言」
如果你學會了駕駛,那麼這項技能可以用來開巴士、卡車,或拖拉機:)相似的,電腦語言其實就是在應用input、output、變數、迴圈、條件和函數。學會了語言基礎,學習另一種語言就會很容易,最大的差異只是文法的改變。
你在問right question麼?
那些富有經驗的開發者很清楚自己的處境,他們知道自己的技能之間的斷層:
如果你花費很長時間人工操作表單數據,那就投入精力來學習宏語言;
如果你開發了網頁但對其佈局不甚滿意,很明顯,提高你的CSS知識是你下一步要做的事;
如果你正在開發一個伺服器應用程式需要儲存數據,學習SQL將是一個合理的選擇;
那些提問「我應該學習什麼語言?」的人大多剛接觸程式開發這個行業,這種空泛的提問就好比:我該穿什麼衣服?如果不知道你的年齡、性別、體型、品味、偏好、國家、當地天氣、風俗、場合……沒有人能夠給出答案。
想得到學習語言建議,確認幾個問題:
你是否熱愛程式設計?
你想要解決什麼問題?
你可以使用的硬體和系統?
你將投入多少時間和學習機會來對待這門語言?
Keep Learning
儘管給出建議並不一定適用於你的情況,但還是提供一些tips給程式設計學習者:
1. 如果你大部分時間都在做前端,試試一些後端內容。挑選PHP、Node.js、Ruby裡你感興趣的一種,再把SQL加入你的技能樹裡;
2. 如果你是後端開發,學HTML、CSS和JavaScript。瀏覽器介面和資料表單例如JSON都是很有幫助的。
3. 框架不是本質,基礎語言的學習才是。無論圈子裡刮起怎樣的風潮、流行什麼工具,知識是無價的。
4. 即使你並不打算成為全棧,至少,多了解和掌握幾門語言,這能夠幫助你理解他人的工作,對於專案和團隊很有幫助。
5. Best of luck,停止拖延,別再糾結應該學習哪一門語言:Just start coding!
相關推薦: