Stack Overflow 2019程序員調查---最熱門的不是Python

Stack Overflow 2019程序員調查---最熱門的不是Python

StackOverflow 發佈了 2019年的年度程序員調查,這個調查報查有90000名程序員參與,這份調度報告平均花了20分鐘,可見,這份報告有很多的問題,也是很詳細的。這份報告有一些地方,讓我有了一些思考。

首先,我們先來看一下之份報告的 Key Results:

  • Python 成為了過去一年中成長最快的語言,把Java擠到了第二位,排在後面的是Rust語言。
  • 有半數以上的被訪者在是在16歲寫下自己的第一行代碼。
  • DevOps Specialists 和 Site Reliability Engineers 是程序員中最有經驗,技術最牛,薪資最好的職位。(這對應於國內的——系統架構師)
  • 在幾個頭部的程序員大國中,中國的程序員最樂觀的,他們相信在今天出生的人會有比他們父母更好的人生。對於歐洲的程序員來說,比較法國和德國的程序員,他們對未來並不太樂觀。
  • 對於最影響程序員生產力的事,不同的程序員有不同的想法。


第一部分,Developer Profile

在第一部分中,我們可以看到,中國程序員參與這個調查的並不多,程序員主要集中在美國、歐洲、印度這三個地方。所以,這份報告更偏國際上一些。這對於我們中國程序員也有很大的幫助,因為一方面可以看到世界發展的趨勢,另一方面也可以瞭解我們和世界有什麼不一樣。

對於技術職業來說,整個世界的程序員開始趨於全棧和後端,有51.9%的人是全棧,50%的人是後端,32.8%的人是前端……在這些人中,很多程序員都選了多項,中位數是3項,最常見是前端、後端和全棧全選的。然後,接下來是選兩項的,選兩項目的包括:數據庫管理員和系統管理員,DevOps Specialist 和 Site Reliablility Engineer, 學術研究者和科學家,設計師和前端工程師。

Stack Overflow 2019程序員調查---最熱門的不是Python


從這些數據中我們可以看見:前後端的界限越來越不明顯,設計師和前端的界限也開始模糊。這應該說明,工具和框架的成熟,讓後端程序員和設計師也可以進入到前端工程師的領域,或是前端工程師開始進入後端和設計的領域。總之,複合型人才越來越越成為主流,而前後端也趨於一個相互融合的態勢。

在接下來的圖表中,我們可以看到有80%以上的人是把編程當成自己的愛好(包括相關的女性)。

Stack Overflow 2019程序員調查---最熱門的不是Python


真是應了那句話——“Programmers who don’t code in their spare time for fun will never become as good as those that do”,是的,如果你對編程沒有感到一種快樂,沒有在你空閒的時候去以一種的興趣愛好方式去面對,那麼,無論是編程,還是運動,還是去旅遊,都不會有太多成效的。

在接下來的編程經驗上,有兩組如下的數據:

Stack Overflow 2019程序員調查---最熱門的不是Python

學習編程的年限

Stack Overflow 2019程序員調查---最熱門的不是Python

編程的年限

我們可以看到無論是學習還是編程,隨著時間的拉長,其人數佔比越來越少。

下面我們再來看一個年齡圖:

Stack Overflow 2019程序員調查---最熱門的不是Python


調查報告從20歲開始每隔5年劃分一個年齡段,我們不難發現從25-29歲開始每個年齡段都比前一個年齡段人數急劇減少大約30-50%,比如25-29年齡段佔總人數27.6%,而30-34則只有19.3%。以此類推,到60歲以上,就只剩1%。可以看出5年是大多數程序員的轉型週期。這是合理的,因為5年時間足夠一個人積累足夠的經驗技能為職業轉型做準備。

我們也可以看到50歲以上的程序員只有4.2%,大約是參與調查人員的300多人,如果這些人20歲左右參加工作,那麼說明他們在1990左右就開始寫代碼,事實上那個時間點別說是程序員了,連電腦用戶都不多。電腦和互聯網真正暴發的時間還是在1995年 – 2000年之間,不過,那個時間點程序員的總體人數也不多,而行業越來越火才會導致大量的人進入到這個行業中,這個轉換過程基本上去需要3-5年,也就是從2000年後才開始有大量的人擁入程序員這個行業,程序員的人數在過去30年間也是呈增漲態勢的,所以,我個人認為,所謂的“眾多老程序員”的比例會被2005年以後大量擁入程序員行業的

年青人所“稀釋”。所以,上圖的比例不能完全說明程序員是個青春飯

但是,我們還是要正視老牌資深的程序員越來越少的這個事實,在這份報告第三部分中說了一些和程序員職業生涯相關的調查,如下:

  • 在被問到有多少人對自己的職業滿意的時。有40%的人覺得很滿意,而有34.3%的人覺得一般滿意,有10%的人說不清,還有15%的人是不滿意的。可以看到有不少人是對這個職業生涯是有想法的。
  • 在被問到有多少人想轉管理而可以掙得更多時。有30%的人是說想轉的,有51%的人是明確不轉的,還有20%的人是說不知道。可見,想轉管理的人最多可能會有一半的人。
  • 在被問到有多少人想轉管理時。有1/3的人是明確不想轉的,而有1/4的人是明確是想轉,而有36%的人則是不說,觀望中。可見,的確是有很多想想轉管理的。

我們可以看到,程序員中並不是所有的人都是可以堅持這麼長時間的,這也挺正常的,對很大一部分人來說,對這個職業是有或多或少的不滿意的,也有一部分人可能會隨著技術的更新被淘汰,還有另外很大一部分人是想轉管理的。所以,能夠長時間地跟上形勢長時間地喜歡寫代碼,並且對程序員這個的職業長期滿意,不想轉管理的,的確是為隨時年齡的越大也越來越少

但我們完全可以看出來,程序員的主力軍在20-40歲這個區間,而30歲左右的程序員是年富力強(經驗和能力都很好)的黃金時間

老程序員在國外似乎不會存在多大的問題,但在國內會有一些問題,所以,對於像我一樣喜歡寫代碼、打算長久做程序員的兄弟,這裡分享一些相關的經驗。

  1. 持續高效地學習。軟件行業的新技術層出不窮,舊的技術淘汰很快,所以我們更要多多學習基礎技術和原理,那些都是很難改變的,並且基礎紮實了後,學習新的技術也才會更快速。其間我們也不要亂學新技術,我們要關注那些有潛力的技術,也就看準了再學(參看酷殼的《Go語言、Docker和新技術》)。注意,而是跟上大時代已經比較不容易,引領時代的人還是少數,所以,還是要更為高效地學習。
  2. 積極面對他人的不解。 很多時候,總是會有人說:“到了你這個年紀怎麼還在做程序員?”,這句話感覺就是對程序員這個職業的一種羞辱,社會的價值觀感覺容不下大齡程序員。這個時候,我一般會跟他們解釋到,我40來歲了,我覺得自己的狀態還很好,工作完成沒什麼問題,偶爾加班到凌晨也行,新知識和技術我學起來不比年輕人慢,我在這個年紀有的經驗比他們都多,而且,我這個年紀還在寫代碼,說明我真的喜歡這個事,像我這樣的人能夠長時間堅持做一個職業的人這個世界已經不多了,你們應該珍惜……
  3. 找到自己的定位。我們需要做好職業規劃、財務和心理方面的準備。40歲的程序員,所能競爭的一定是自己的認識和經驗,所以,40歲以後如果你還是很喜歡這一行業,你的社會閱歷和經歷以及對這個社會的理解,可以讓你做一些有創新的事,除此之外,你還可以做一個教練、老師、諮詢、專家……,用你的經驗和能力幫助下一代和一些中小型的公司,這不但是他們的剛需,同時也會讓重新煥發的。

第二部分,技術

首先,在這部分,主要是瞭解一些技術,這部分的技術可以給於程序員們一些指導。

最流行的語言最熱門的語言

Stack Overflow 2019程序員調查---最熱門的不是Python

最流行的語言

Stack Overflow 2019程序員調查---最熱門的不是Python

最熱門的語言

我們可以看到,

  • Javascript/HTML/CSS是很多人都會用到的,後面的是SQL,這個也沒什麼問題,無論前後端的人,或多或少都會要用到的,這些技術感覺已經成為了基礎必會的技術了,就像數中的加減乘除一樣。
  • Python/Java/Shell 是後端開發主流語言的前三強,Python在今年超過了Java。這裡讓我比較好奇的是居然還有很多人用Shell,這估計跟運維有關,所以,Python的熱可能也是通過運維和大數據相關。
  • 流行語言後,第二梯隊的是 C# / PHP / C++ / TypeScript / C ,接下來的是: Ruby / Go / Swift / Kotlin /WebAssembly / Rust… 。但在最被程序員喜歡的編程語言中:Rust / Python / TypeScript / Koltin / WebAssembly / Swift / Go… 都是排在前幾名的。程序語言每隔一段時間就會整出一些新的語言來,我們一定要明白新出來的東西主要是為了解決什麼樣的問題,不然很容易迷失。
  • 在後面還有一個編程語言的薪資圖,我們可以看到,在上面被提過的這些個編程語言中,Go語言的薪資是最高的(這可能是因為Go語言寫關鍵的系統級的中件間——因為Go語言正在成為雲計算的第一編程語言)
    ,然後是Scala、Ruby、WebAssembly、Rust、Erlang、Shell、Python、Typescript……

通過這些個信息,我們可以看出主流技術、有潛力的技術,傳統過氣技術,以及相關薪資,對我們在選擇編程語言上有一定的啟示。

在後面,我們可以看到:

  • 在 Web 開發框架上,主流使用還是 jQuery, React.js,Angular.js 為最前面的三個前端開發框架。而被程序員所喜歡的則是 React.js,Vue.js,Express, Spring,程序員非常不喜歡 Drupal,jQuery,Ruby on Rails 和Angular.js……
  • 在其它開發框架/庫/工具上,主流是Node.js、.NET、Pandas、Unity 3D、Tensorflow、Ansible、Cordova、Xamarin……而程序員比較喜歡的是.NET、Torch/PyTorch、Flutter、Pandas、Tensorflow、Node.js …
  • 在操作系統上,主流使用Linux、Windows、Docker、Android、AWS……,而程序員最喜歡的是Linux、Docker、Kubernetes、Raspberry Pi、AWS、MacOS、iOS……
  • 在數據庫上,MySQL、PostgreSQL、MSSQL、SQLite、MongoDB、Redis、Elasticsearch是比較主流的,而程序員非常喜歡的是,Redis、PostgreSQL、Elasticsearch、Firebase、MongoDB……,程序員比較討厭的是 Couchbase、Oracle、Cassandra、MySQL。

從這些個圖表中,我們可以看到主流和有潛力的技術是什麼,我們可以看到 Windows 的技術並沒有過時,感覺似乎都有可能會捲土重來,但是,開源的技術來勢兇兇,正在吞食整個軟件業,不容小覷,Docker/Kubernetes無論是在主流應用上還是被程序員的喜好上都是非常猛的,而云平臺的AWS開始成為標準平臺技術……

接下來的開發工具中,我們可以看到:

  • Visual Studio Code 成為了最流行的開發工具。讓我沒有想到的是跟在後面的是 Notepad++(好久沒用這個工具了,我得找回來用用了),而IntelliJ、Vim、Sublime Text排以後面。 Eclipse 和 Atom 動力不足,Emacs 開始變得小眾了。
  • 程序員主要的開發平臺還是Windows佔了近1/2, MacOS和Linux隨後,各佔1/4。
  • 有38%的人使用容器技術做開發,30%的人使用容器做測試,在生產線上使用容器的有26%

看樣子編程開發工具還是Visual Studio 和 IntelliJ的天下,MacOS/Linux正在搶Windows的開發市場

接下來,StackOverflow給了一個技術圈的圖

Stack Overflow 2019程序員調查---最熱門的不是Python


從上面這個圖中,我們可以看以技術的幾圈子:

  • Microsoft圈 – Windows、.NET、ASP.NET、C#、Azure、SQL Server
  • Java圈 – Java、Spring
  • 手機圈 – Android、 iOS、Kotlin、Swift、Firebase
  • 前端圈 – Javascript、React.js、Angular.js、PHP
  • 大數據圈 – Python、TensorFlow、Torch/PyTorch
  • 基礎平臺圈 – Linux、Shell、Vim、Docker、Kubernetes、Elasticsearch、Redis……
  • 其它圈子 – C/C++/彙編圈子、Ruby圈子、Hadoop/Spark圈子、……

看到誰的圈子大了吧,圈子大的並不代表技術實力強或是有前途,不過可以代表在那個圈子相關的關聯技術,一方面,可以給你一些相關的參考,另一方面,整體可以讓你看到全部的目前比較主流的技術。

第三部份 工作

在第三部份工作中,我們可以看到如下的一些數據:

  • 有3/4的程序員是全職的,10%左右的程序員是自由職業,6%左右的程序員是失業的,這個比例在北美、印度和歐洲都差不多。
  • 有1/3的人在過去一年內換過工作,1/4的人在過去1-2年間換過工作,1/3的人在2-4年換過工作。
  • 程序員找工作時,影響程序員的幾個主要因素是:技術(編程語言、框架和使用的技術)、辦公環境和公司文化、靈活的時間和安排、更專業的機會、遠程工作……
  • 影響程序員工作的幾大因素是:有干擾的工作環境、開會、要幹一些和開發無關的事、人手不夠、管理不夠、工具不夠、通勤時間……
  • 對於工程質量,有近70%的人有Code Review,而30%的則沒有;有60%多的人有Unit Test,而不到40%的沒有……

從工作中我們可以看到,程序員還是比較關心技術和公司文化的,換工作也是這個職業很正常的特性,他們並不喜歡被打擾,希望有足夠的時間,而對於工程質量還是很有追求的。

最後用一張程序員的“每週工作時間” 來結束本文!

Stack Overflow 2019程序員調查---最熱門的不是Python

另外,想學習前端的小夥伴們可以關注+私信回覆:【資料】已經為大家準備好最新的前端資料。

Stack Overflow 2019程序員調查---最熱門的不是Python

私信回覆《資料》免費獲取

感謝您的朗讀。喜歡的可以關注轉發+收藏。


分享到:


相關文章: