“那些將把我們從地球上抹去的年輕朋克在哪裡?”

在一個社群中進行了另一輪討論後,我問自己 Grebenshchikov 提出的標題中提出的存在主義問題,即初級 Web 後端開發人員是否需要 SQL 知識,或者 ORM 是否會做所有事情。 我決定尋找比 ORM 和 SQL 更廣泛的答案,基本上嘗試系統化現在正在面試初級和中級開發職位的人是誰,他們的歷史是什麼以及他們的世界住在。 總的來說,我有一個意見,但它是根據個人招募經驗形成的,並且明顯適應了當地市場。 總的來說,這變得很有趣。 這是我們發現的。

全球開發者人數

為了以某種方式解決這個問題,我決定先搜尋有關當今世界上有多少開發人員以及這個群體如何隨時間變化的資料。
根據各種來源的估計,這一數字在 12 至 30 萬人之間。 決定停在 來自 SlashData 的數據,因為他們的方法似乎相當平衡並且適合我的需求。 在評估中,他們考慮了 Github 上的帳戶和儲存庫數量、StackOverflow 上的帳戶數量、npm 帳戶以及來自美國和歐洲就業官方來源的資料。 他們還利用自己的 16 項研究調整了結果數字,其中每項調查均涉及約 20 人。

根據 SlashData 統計,2018 年第四季全球約有 18.9 萬名開發者,其中 12.9 萬名是專業開發者,即以程式設計為生。 目前不是專業開發人員的人都是以程式設計為嗜好的人,加上目前正在學習某一專業的人(各種學生和自學成才的人)。 嗯,也就是說,這裡暗示了我感興趣的群體的規模——6 萬人。 說實話,這超出了我的預期。

第二個讓我驚訝的是程式設計師數量的成長速度:從2017年第二季到2018年第四季,從14.7成長到了提到的18.9萬,也就是21年成長了2018%! 如果讓我估計程式設計師數量的成長率,我會說每年大約 5%,並且每年略有成長。 而這裡的數字高達 20%。

此外,SlashData 預計到 2030 年人口將達到 45 萬人。 很容易看出,這意味著每年成長略高於 8%,而不是 20%,但它們指的是考慮到網路普及率(目前全球約為 57%)而進行的調整。 根據 Statista)以及其他幾個因素,例如人均開發人員數量。 從地域上看,印度和中國的開發商數量增長最為強勁;預計到 2023 年,印度的開發商數量將超過美國(這已經是 C# 角點數據).

一般來說,無論你怎麼看,都會有很多程式設計師,因為需求正在成長。 順便說一下需求。

需求是什麼?

為了估計需求,我使用了 HackerRank 數據 2018 и 2019 年。

就程式語言而言,除了電腦硬體之外,幾乎所有產業對 JavaScript、Python 和 Java 的需求最大。 後者需求最大的是C/C++,可以理解;硬體專案對對應軟體的資源強度和效能還是有要求的。

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

就框架而言,AngularJS、Node.js 和 React 的需求最大,而且它們的供需差距最大,這似乎可以用 JavaScript 生態系統變化的速度來解釋,因為例如 ExpressJS ,供給已經超過需求。

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

在能力方面,雇主主要期望候選人具備解決問題的能力。 大約 95% 的雇主認為這些技能很重要。 程式語言精熟度排名第二,為 56%。 順便說一下,與演算法、資料結構等電腦科學的基礎知識完全沒有關係,要麼沒有出現在問卷中,要麼不再大規模需要學術知識。

23.2人以下的公司中有100%需要資料庫設計,18.8人以上的公司有1000%需要資料庫設計。 是的,看起來是關於 ORM 和 SQL 的! 恕我直言,邏輯上的解釋是,在大公司中,有一個專門的 DBA 角色,負責這方面的工作,因此可以軟化對開發人員的要求並更快地招募。 但對於系統設計來說,情況恰恰相反:小型系統為 37.0%,大型系統為 44.1%。 看起來大型系統應該有專門的架構師,但也許他們根本無法覆蓋正在產生的系統數量。 或者將相同的基本演算法和資料結構放入系統設計中,那麼它就會變得更清晰一些。

小公司對框架熟練程度的需求更多而不是前面提到的系統設計,從中我們可以得出船長的結論,即對於新創公司來說,盡快推出一款可以工作的產品非常重要,明天就是明天。

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

學生學什麼?

這裡我參考了別人的數據 駭客排名研究.
重要的是要考慮到,儘管大學(我指的是電腦科學專業)教授某種形式的編程,但超過一半的受訪者表示他們也從事自學。

現代學生更喜歡從 YouTube 學習,而年長的開發人員則傾向於教程和書籍。 他們都積極使用 StackOverflow。 我將此歸因於影片是 Z 世代熟悉的媒體管道,而 Y 世代的代表仍處於沒有部落客的時代。

他們教導雇主所需的內容:JavaScript、Java、Python。 他們表示自己懂 C/C++,但這可能是因為這些語言是用於大學教學。 他們教授 JS 框架,但需求明顯高於供給,所以顯然他們在找到第一份工作後正在積極學習。

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

總的來說,正如預期的那樣,他們教授的是需要的內容。

學生期望從第一份工作中獲得職業發展,工作與生活的平衡排在第二位(在某些國家是第一位),有趣的任務排在第三位。

按程式語言和軟體類型劃分的開發人員群體動態

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

Web 應用程式位居首位,估計有 16.9 萬名開發人員。 這又是 SlashData。 其次是後端服務(13.6 萬)、行動應用程式(13.1 萬)和桌面(12.3 萬)。 AR/VR和物聯網領域逐漸受到歡迎,AI/ML/數據科學在過去兩年顯著成長。

Javascript 成長最快;其社群已經是最大的,光是 2018 年就成長了 2.5 萬。 他們甚至試圖將其寫入物聯網和機器學習領域。
Python 在 2018 年成長了 2.2 萬,這得益於傳統上強勢的 ML 的日益普及,以及該語言的易學性和便利性。

Java、C/C++ 和 C# 的成長速度低於開發人員總數的成長速度。 現在它們很少成為人們選擇開始使用的程式語言。 這裡對開發商的需求與供應或多或少是平衡的。 我認為如果沒有 Android,Java 的成長速度會更慢。

PHP 是第二大流行的 Web 應用程式程式語言,而且還在顯著成長(32 年成長了 2018%)。 其社區估計有 5.9 萬開發者。 儘管 PHP 的聲譽兩極化,但它非常容易學習並且廣泛使用。

與前幾代人相比,今天的年輕考生的學習情況如何?

再次HackerRank資料。 現在年齡在 38 歲到 53 歲之間的人將遊戲列為他們的第一個項目。

順便說一句,我確認我的第一個或多或少的工作項目是“井字遊戲”,最多連續五個,場地無限,第二個是 15 人的遊戲。我把所有這些都寫在 公元前 010-01, 有 維爾紐斯基本,又稱 BASIC-86 和對焦。 呃。

現代新手程式設計師(21 歲以下)將編寫計算器和網站作為他們的第一個專案。

在X世代的代表中,幾乎一半的人在16歲之前開始編寫程式碼,許多人是在5歲到10歲之間開始編寫程式碼的(主要是現在35歲到45歲之間的人)。 原因或多或少是清楚的:資訊來源很少,要成為一名程式設計師,你必須非常想要它,而那些真正想要它的人很早就開始程式設計。 那些不太想要它的人現在很可能已經有了不同的職業,所以社會學的情況正是如此。

“那些將把我們從地球上抹去的年輕朋克在哪裡?”

如今,只有 20% 的年輕候選人在 16 歲之前開始編程,大多數人在 16 歲到 20 歲之間。 但對他們來說,學習也變得更容易;現在更容易獲得。

發現

對於今天剛開始的 Web 後端開發人員是否需要 SQL 的問題,我仍然沒有找到具體答案,但我已經糾正了我對現代程式設計師群體的看法。

下一代開發商都是普通人,在某些方面他們與前輩很相似;住房問題只是把他們寵壞了。 他們滿足雇主創造的需求。 由於更方便的工具和框架可以讓您快速取得成果,進入該行業的門檻變得更低。 現在越來越多的人成為程式設計師;數位世代(Z世代)從出生起就生活在科技之中;對他們來說這是一個普通的職業,並不比其他人差。

那些知道 L1 快取延遲約為 4 個週期,並且最好不要不必要地使快取線崩潰的人,在總人口規模中所佔的百分比正在變得越來越小。 然而,他們不應該擔心找到工作;畢竟,有人必須在仍然需要的地方編寫低級的東西。 同樣,那些在系統設計方面擁有深厚基礎知識並透過血腥實戰獲得的人,並且不只是追隨貨物崇拜者,也不應該擔心。 因為團隊中會有更多的人可以「只寫代碼」和「只」使用框架,並且為了「避免多年來漫無目的地生活的痛苦」(c)他們需要與這樣的人保持平衡。

軟技能正逐漸從可取的範疇轉向強制性的(我沒有客觀數據證實這一點,只是實際觀察)。 程式設計師的數量不斷增長,他們都需要透過直接或間接的控制來獲得結果,而這正是軟技能所需要的。

在我看來,「進入 IT」似乎是一個當地的地區性故事,對於那些程式設計師的收入與類似的「非 IT」專家的收入有顯著差異的地區來說是典型的。 在我居住的明斯克,這通常是一場群眾運動,每天我都會看到有關如何進入令人垂涎的IT 領域的新課程的廣告,清潔公司向程式設計師發出這樣的訊息:「你理解這張圖片中的程式碼嗎? 這意味著您可以承擔不打掃公寓的費用,我們將為您做一切。” 同樣的事情顯然也發生在印度的一些地方。 我也沒有數據證明這一點。

總的來說,在我看來,沒有什麼能威脅到程式設計師群體。 喋喋不休地說白天找不到真正的程式設計師,而且候選人往往“一無所知”,這是沒有意義的。 他們和「真正的程式設計師」一樣聰明和有能力,甚至可能比「真正的程式設計師」更聰明和更有能力;他們只是獲得了快速成長的市場所需的知識,然後推遲了他們還不需要的東西,並且不會帶來正確的利益現在。 他們會在需要的時候學習,因為他們仍然想學習。 可能不是每個人都有能力做到這一點,但也不是每個人都需要它;在可預見的未來,市場將很容易接受那些能夠使用某種框架快速組合另一個應用程式概念的人。

只有註冊用戶才能參與調查。 登入, 請。

Web 後端面試需要 SQL 知識嗎?

  • 是的,我需要它,因為我需要它來工作

  • 是的,我願意,儘管工作中很少需要它。

  • 不,我不需要,我們有 NoSQL

  • 不,我不需要它,ORM 會做一切

320 位用戶投票。 230 名用戶棄權。

來源: www.habr.com

添加評論