“Bizi yeryüzünden silecek genç serseriler nerede?”

Topluluklardan birinde, yeni başlayan bir web arka uç geliştiricisinin SQL bilgisine ihtiyaç duyup duymadığı veya ORM'nin her şeyi yine de yapıp yapmayacağı konusundaki başka bir tartışma turundan sonra, Grebenshchikov'un formülasyonunda başlıkta yer alan varoluşsal soruyu kendime sordum. Cevabı sadece ORM ve SQL'den biraz daha geniş bir şekilde aramaya karar verdim ve temel olarak şu anda genç ve orta seviye gelişim pozisyonları için röportajlara giden kişilerin kim olduğunu, geçmişlerinin ne olduğunu ve hangi dünyada olduklarını sistematikleştirmeye çalıştım. içinde yaşamak. Genel olarak bir fikrim vardı, ancak kişisel işe alma deneyimimden oluştu ve açıkça yerel pazara göre ayarlandı. Genel olarak ilginç hale geldi. İşte bulduklarımız.

Küresel geliştirici nüfusu

Soruna bir şekilde yaklaşabilmek için bugün dünyada kaç geliştiricinin olduğu ve bu popülasyonun zaman içinde nasıl değiştiğine dair verileri arayarak başlamaya karar verdim.
Çeşitli kaynaklardaki tahminler, sayıların 12 ila 30 milyon kişi arasında olduğunu gösteriyor. Durmaya karar verdim SlashData'dan verilerçünkü metodolojileri oldukça dengeli ve ihtiyaçlarıma uygun görünüyordu. Değerlendirmelerinde Github'daki hesap ve depo sayısını, StackOverflow'taki hesap sayısını, npm hesaplarını ve ABD ve Avrupa'daki istihdamla ilgili resmi kaynaklardan gelen verileri dikkate aldılar. Ayrıca, her anket için yaklaşık 16 kişiyi kapsayan kendi 20 araştırmasını kullanarak elde edilen rakamları da ayarladılar.

SlashData'ya göre 2018'in dördüncü çeyreğinde dünyada yaklaşık 18.9 milyon geliştirici vardı ve bunların 12.9 milyonu profesyonel geliştiricilerdi, yani geçimini programcılıkla sağlıyorlardı. Şu anda profesyonel geliştirici olmayanlar, programlamayı bir hobi olarak gören kişiler ve ayrıca şu anda bir meslek eğitimi alan kişilerdir (çeşitli öğrenciler ve kendi kendini yetiştirmiş olanlar). Yani beni ilgilendiren grubun büyüklüğüne dair bir ipucu var - 6 milyon kişi. Dürüst olmak gerekirse bu beklediğimden daha fazlası.

Benim için ikinci sürpriz, programcı sayısındaki artış oranıydı: 2017'nin ikinci çeyreğinden 2018'in dördüncü çeyreğine kadar, 14.7'den bahsedilen 18.9 milyona yükseldi, yani 21'de %2018 arttı! Programcı sayısındaki büyüme oranını tahmin etmem istense, bunun yıllık olarak hafif bir artışla birlikte yılda yaklaşık %5 olduğunu söylerdim. Ve burada% 20'ye kadar çıkıyor.

Ayrıca SlashData, nüfusun 2030 yılına kadar 45 milyona ulaşacağını tahmin ediyor. Bunun yıllık %8 değil %20'den biraz daha fazla bir büyüme anlamına geldiğini anlamak kolaydır, ancak bunlar internet penetrasyonunu hesaba katacak bir düzenlemeye atıfta bulunmaktadır (şu anda dünya çapında yaklaşık %57). Statista'ya göre) ve kişi başına düşen geliştirici sayısı gibi diğer bazı faktörler. Coğrafi olarak geliştiricilerin sayısı en çok Hindistan ve Çin'de artıyor; Hindistan'ın 2023 yılına kadar geliştirici sayısında Amerika Birleşik Devletleri'ni geçmesi bekleniyor (bu zaten şu anda). C# Köşe verileri).

Genel olarak, nasıl bakarsanız bakın, çok sayıda programcı olacaktır çünkü talep artıyor. Bu arada, talep hakkında.

Ne talep ediliyor?

Talebi tahmin etmek için HackerRank verilerini kullandım. 2018 и 2019 yıl.

Programlama dilleri açısından en büyük talep, Bilgisayar Donanımı hariç hemen hemen tüm endüstrilerde JavaScript, Python ve Java'ya yöneliktir. İkincisi, en büyük talebin C/C++'a yönelik olması anlaşılabilir bir durumdur; donanım projelerinin hâlâ ilgili yazılımın kaynak yoğunluğu ve performansına yönelik gereksinimleri vardır.

“Bizi yeryüzünden silecek genç serseriler nerede?”

Çerçeveler açısından AngularJS, Node.js ve React en büyük talebi görüyor ve arz ile talep arasındaki en büyük boşluğa sahipler; bu da JavaScript ekosisteminin değişme hızıyla açıklanıyor gibi görünüyor; örneğin ExpressJS için. arz zaten talebi aşıyor.

“Bizi yeryüzünden silecek genç serseriler nerede?”

Yetkinlikler açısından işverenler adaylardan öncelikli olarak Problem Çözme becerisi beklemektedir. İşverenlerin yaklaşık %95'i bu becerilerin önemli olduğunu belirtiyor. Programlama Dili Yeterliliği ise %56 ile ikinci sırada yer alıyor. Bu arada, algoritmalar, veri yapıları ve diğer Bilgisayar Bilimleri ile ilgili temel bilgiler arasında hiçbir çizgi yok, ya ankette yoktu ya da akademik bilgi artık büyük ölçekte gerekli değil.

Veritabanı Tasarımına 23.2 kişinin altındaki şirketlerin %100'si, 18.8 kişinin üzerindeki şirketlerin ise %1000'i ihtiyaç duymaktadır. Evet, ORM ve SQL ile ilgili gibi görünüyor! Mantıksal IMHO açıklaması, büyük şirketlerde bu açıdan sorumlu olan DBA'nın özel bir rolünün bulunması ve dolayısıyla geliştiricilerin gereksinimlerini yumuşatmanın ve daha hızlı işe almanın mümkün olduğudur. Ancak Sistem Tasarımı'nda durum tam tersi: küçüklerde %37.0, büyüklerde %44.1. Görünüşe göre büyük olanların özel mimarları olmalı, ancak belki de üretilen sistemlerin sayısını karşılayamıyorlar. Veya aynı temel algoritmalar ve veri yapıları Sistem Tasarımına konulur, o zaman biraz daha netleşir.

Küçük şirketler, yukarıda bahsedilen Sistem Tasarımına giderek daha az Çerçeve Yeterliliğine ihtiyaç duyuyor; buradan kaptanın, startup'ların bir şekilde çalışan bir ürünü olabildiğince hızlı bir şekilde piyasaya sürmesinin önemli olduğu ve yarının yarın olacağı sonucunu çıkarabiliriz.

“Bizi yeryüzünden silecek genç serseriler nerede?”

Öğrenciler ne öğrenir?

Burada başka birinden gelen verilere güvendim HackerRank araştırması.
Programlamanın şu ya da bu şekilde üniversitelerde öğretilmesine rağmen (Bilgisayar Bilimleri bölümlerini kastediyorum), ankete katılanların yarısından fazlasının aynı zamanda kendi kendine eğitimle de uğraştıklarını söylediğini dikkate almak önemlidir.

Modern öğrenciler YouTube'dan öğrenmeyi tercih ederken, daha yaşlı geliştiriciler eğitimlere ve kitaplara yöneliyor. Her ikisi de StackOverflow'u aktif olarak kullanıyor. Bunu, videonun Z kuşağı için tanıdık bir medya kanalı olmasına, Y kuşağı temsilcilerinin ise hâlâ blogcuların olmadığı bir çağda olmasına bağlıyorum.

İşverenlerin neyi talep ettiğini öğretiyorlar: JavaScript, Java, Python. C/C++ bildiklerini belirtiyorlar ancak bunun nedeni muhtemelen bu dillerin üniversitelerde öğretim için kullanılmasıdır. JS çerçevelerini öğretiyorlar, ancak talep arzdan önemli ölçüde daha yüksek, bu yüzden görünüşe göre ilk işlerini bulduktan sonra aktif olarak öğreniyorlar.

“Bizi yeryüzünden silecek genç serseriler nerede?”

Genel olarak beklendiği gibi talep olanı öğretiyorlar.

Öğrenciler ilk işlerinden mesleki gelişim beklerler; iş-yaşam dengesi ikinci sırada (bazı ülkelerde ilk sırada) ve ilginç görevler üçüncü sırada gelir.

Programlama dilleri ve yazılım türlerine göre geliştirici popülasyonunun dinamikleri

“Bizi yeryüzünden silecek genç serseriler nerede?”

Web uygulamaları tahminen 16.9 milyon geliştirici sayısıyla ilk sırada yer alıyor. Bu yine SlashData. Bunu Arka Uç Hizmetleri (13.6 milyon), mobil uygulamalar (13.1 milyon) ve masaüstü (12.3 milyon) takip ediyor. AR/VR ve IoT sektörleri giderek popülerlik kazanıyor, AI/ML/Veri Bilimi son iki yılda önemli ölçüde büyüdü.

Javascript en hızlı büyüyen topluluktur; yalnızca 2018'de 2.5 milyon büyüyen topluluğu zaten en büyüğüdür. Hatta IoT ve ML sektörlerinde bunu yazmaya çalışıyorlar.
Python, geleneksel olarak güçlü olduğu ML'nin artan popülaritesinin yanı sıra dilin öğrenme kolaylığı ve rahatlığı nedeniyle 2018'de 2.2 milyon arttı.

Java, C/C++ ve C#, genel geliştirici popülasyonundan daha yavaş büyüyor. Artık nadiren insanların başlamayı seçtiği programlama dili oluyorlar. Buradaki geliştiricilere yönelik talep, arzla az çok dengeli. Android olmasaydı Java'nın daha da yavaş büyüyeceğini düşünüyorum.

PHP, ikinci en popüler web uygulaması programlama dilidir ve aynı zamanda önemli ölçüde büyümektedir (32'de %2018 oranında). Topluluğunun 5.9 milyon geliştirici olduğu tahmin ediliyor. PHP'nin kutuplaştırıcı itibarına rağmen öğrenilmesi oldukça kolaydır ve yaygın olarak kullanılır.

Günümüzün genç adayları önceki nesillere göre nasıl ders çalışıyor?

HackerRank verileri tekrar. Şu anda 38 ile 53 arasında olanlar ilk projeleri olarak oyunları listeliyor.

Bu arada, aşağı yukarı ilk çalışma projemin sınırsız alanla arka arkaya beşe kadar "tic-tac-toe" olduğunu, ikincisinin 15'lik bir oyun olduğunu onaylıyorum. M.Ö. 010-01, oradaydı Vilnius temel, diğer adıyla BASIC-86 ve odak. Ah.

Modern acemi programcılar (21 yaşına kadar) ilk projeleri olarak hesap makineleri ve web siteleri yazarlar.

X kuşağının temsilcilerinin neredeyse yarısı kod yazmaya 16 yaşından önce başladı, çoğu da bunu 5 ila 10 yaşları arasında yaptı (çoğunlukla şu anda 35 ila 45 yaşları arasında olanlar). Nedeni az çok açık: Çok az bilgi kaynağı vardı ve programcı olmak için bunu gerçekten çok istemeniz gerekiyordu ve bunu gerçekten isteyenler programlamaya erken başladılar. Bunu pek istemeyenler büyük ihtimalle artık farklı bir meslek sahibi oluyorlar, yani sosyolojideki tablo tam olarak böyle.

“Bizi yeryüzünden silecek genç serseriler nerede?”

Günümüzün genç adaylarının yalnızca %20'si programlamaya 16 yaşından önce başlıyor, çoğunluğu ise 16 ila 20 yaş arasında. Ama aynı zamanda öğrenmeleri de çok daha kolay; artık çok daha erişilebilir.

Bulgular

Yeni başlayan bir web arka uç geliştiricisinin bugün SQL'e ihtiyacı olup olmadığı sorusuna hala somut bir cevap bulamadım, ancak modern programcı nüfusu hakkındaki fikrimi düzelttim.

Yeni nesil geliştiriciler sıradan insanlar, bazı açılardan öncekilere benziyorlar; konut sorunu onları sadece şımarttı. İşverenlerin yarattığı talebi karşılıyorlar. Hızlı bir şekilde sonuçlara ulaşmanızı sağlayan daha kullanışlı araçlar ve çerçeveler nedeniyle mesleğe girme eşiği daha düşük hale geldi. Artık daha fazla insan programcı oluyor; dijital nesil (Z Kuşağı) doğduğundan beri teknoloji içinde yaşıyor; onlar için bu sıradan bir meslek, diğerlerinden daha kötü değil.

L1 önbellek gecikmesinin ~4 döngü olduğunu ve önbellek hatlarını gereksiz yere kilitlememenin daha iyi olduğunu bilenler, toplam popülasyon boyutunun yüzdesi olarak küçülüyor. Ancak iş bulma konusunda endişelenmemeliler; sonuçta birisinin hala ihtiyaç duyulan yerde düşük seviyeli şeyler yazması gerekiyor. Aynı şekilde, sistem tasarımı konusunda derin temel bilgiye sahip olan ve bunu kanlı pratik savaşlarda elde eden ve sadece kargo kültünü takip etmeyenlerin endişelenmemesi gerekir. Çünkü ekiplerde "sadece kod yazabilen" ve "sadece" çerçeveleri kullanabilen daha fazla insan olacak ve "amaçsızca yaşanılan yılların dayanılmaz acılarından kaçınmak" için (c) tam da bu tür insanlar tarafından dengelenmeleri gerekecek .

Sosyal beceriler kademeli olarak arzu edilen kategoriden zorunlu kategoriye doğru geçiş yapıyor (bunu doğrulayacak hiçbir nesnel veriye sahip değilim, sadece pratik gözlemim). Programcıların sayısı artıyor ve hepsinin doğrudan veya dolaylı kontrol yoluyla sonuçlara ulaşmaya yönlendirilmesi gerekiyor ve bu tam olarak sosyal becerilere ihtiyaç duyulan şey.

"BT'ye Girin" bana, bir programcının gelirinin benzer bir "BT dışı" uzmanın gelirinden önemli ölçüde farklı olduğu yerler için tipik olan yerel, bölgesel bir hikaye gibi görünüyor. Yaşadığım Minsk'te bu genellikle kitlesel bir hareket, her gün imrenilen BT'ye nasıl girileceğine dair yeni kursların reklamlarını görüyorum ve temizlik şirketleri programcıları “Bu resimdeki kodu anladınız mı? Bu, dairenizi temizlememeyi göze alabileceğiniz anlamına gelir; biz sizin için her şeyi yaparız.” Görünüşe göre aynı şey bazı Hindistan'da da oluyor. Ayrıca bunu kanıtlayacak hiçbir veriye sahip değilim.

Genel olarak bence hiçbir şey programcı nüfusunu tehdit etmiyor. Gün içerisinde gerçek programcı bulamayacağınız ve adayların çoğunlukla "hiçbir şey bilmediği" gerçeği hakkında gevezelik etmenin bir anlamı yok. Onlar da en az "gerçek programcılar" kadar akıllı ve yeteneklidirler, hatta belki de onlardan daha akıllı ve daha yeteneklidirler; sadece hızla büyüyen bir pazarın kendilerinden talep ettiği bilgiyi edinirler ve henüz ihtiyaç duymadıkları ve sağlamayacakları şeyi sonraya ertelerler. Şimdi. İhtiyaç duyduklarında öğrenecekler çünkü hala öğrenmek istiyorlar. Muhtemelen herkes bunu yapamayacak, ancak öngörülebilir gelecekte herkesin buna ihtiyacı olmayacak; pazar, bir çerçeve kullanarak başka bir uygulama konseptini hızla oluşturabilen kişileri kolayca kabul edecektir.

Ankete sadece kayıtlı kullanıcılar katılabilir. Giriş yapLütfen.

Web destekçisi görüşmeleri SQL bilgisi gerektiriyor mu?

  • Evet, talep ediyorum çünkü iş için buna ihtiyacım var

  • Evet, işte nadiren ihtiyaç duyulsa da bunu yapıyorum.

  • Hayır, buna ihtiyacım yok, NoSQL'imiz var

  • Hayır, buna ihtiyacım yok, ORM her şeyi yapacak

320 kullanıcı oy kullandı. 230 kişi çekimser kaldı.

Kaynak: habr.com

Yorum ekle