Setelah putaran diskusi berikutnya di salah satu komunitas, saya mengajukan pertanyaan eksistensial, memasukkan judul dalam kata-kata Grebenshchikov, tentang apakah pengetahuan web SQL diperlukan untuk pengembang backend web awal atau jika ORM akan melakukan semuanya. Saya memutuskan untuk mencari jawaban yang sedikit lebih luas daripada hanya tentang ORM dan SQL, dan, pada prinsipnya, mencoba mensistematisasikan siapa orang-orang yang sekarang pergi untuk wawancara di posisi pengembangan junior dan menengah, apa sejarah mereka dan di dunia mana mereka hidup. Secara umum, saya punya pendapat, tetapi itu dibentuk oleh pengalaman perekrutan pribadi dan jelas disesuaikan untuk pasar lokal. Secara umum, itu menjadi penasaran. Inilah yang berhasil saya temukan
Populasi Pengembang Global
Untuk mendekati masalah ini, saya memutuskan untuk mulai dengan mencari data tentang berapa banyak pengembang di dunia sekarang pada prinsipnya dan bagaimana populasi ini berubah dari waktu ke waktu.
Perkiraan dalam berbagai sumber mengacu pada angka dalam pertigaan dari 12 hingga 30 juta orang. Saya memutuskan untuk berhenti pada
data dari SlashData , karena metodologi mereka bagi saya cukup seimbang dan cocok untuk kebutuhan saya. Dalam penilaian, mereka memperhitungkan jumlah akun dan repositori di Github, jumlah akun di StackOverflow, akun npm dan data dari sumber resmi tentang pekerjaan di AS dan Eropa. Mereka juga menyesuaikan angka menggunakan 16 studi mereka sendiri, yang mencakup sekitar 20.000 orang untuk setiap survei.
Menurut SlashData, ternyata pada kuartal keempat tahun 2018 ada sekitar 18,9 juta pengembang di dunia, 12,9 juta di antaranya adalah profesional, yaitu, mereka mencari nafkah dengan pemrograman. Mereka yang bukan pengembang profesional saat ini adalah orang-orang yang hobi pemrograman, plus mereka yang sedang mempelajari profesi (beragam siswa dan otodidak). Ya, itu petunjuk ukuran kelompok yang menarik minat saya - 6 juta orang. Jujur, ini lebih dari yang saya harapkan.
Kejutan kedua bagi saya adalah tingkat pertumbuhan jumlah programmer: dari kuartal kedua 2017 hingga kuartal keempat 2018, meningkat dari 14,7 menjadi 18,9 juta yang disebutkan, atau meningkat sebesar 21% pada 2018! Jika saya diminta untuk memperkirakan tingkat pertumbuhan jumlah pemrogram, maka saya akan mengatakan bahwa sekitar 5% per tahun dengan sedikit peningkatan dalam tingkat tahunan. Dan di sini ternyata sebanyak 20%.
Selain itu, SlashData memperkirakan bahwa pada tahun 2030 populasi akan mencapai 45 juta. Mudah untuk menghitung bahwa ini menyiratkan pertumbuhan sedikit lebih dari 8% per tahun, dan tidak sama sekali 20%, tetapi mereka merujuk pada koreksi dengan mempertimbangkan penetrasi Internet (sekarang sekitar 57% di dunia menurut
Statista ) dan beberapa faktor lain, misalnya, jumlah pengembang per per kapita. Secara geografis, jumlah pengembang di India dan Cina tumbuh paling banyak, India diperkirakan akan melampaui Amerika Serikat dalam jumlah pengembang pada tahun 2023 (ini sudah merupakan
data C # Corner ).
Secara umum, akan ada banyak programmer, apa pun yang dikatakan, karena permintaan semakin meningkat. Berbicara tentang permintaan.
Untuk apa permintaan?
Untuk memperkirakan permintaan, saya menggunakan data HackerRank untuk
2018 dan
2019 .
Dalam bahasa pemrograman, permintaan terbesar untuk JavaScript, Python, dan Java ada di hampir semua industri, terkecuali Perangkat Keras Komputer. Dalam yang terakhir, permintaan terbesar untuk C / C ++, yang dapat dimengerti, dalam proyek perangkat keras, masih ada persyaratan untuk konsumsi sumber daya dan produktivitas perangkat lunak yang sesuai.

Menurut kerangka kerja, AngularJS, Node.js dan React berada dalam permintaan terbesar, dengan kesenjangan penawaran dan permintaan terbesar menurut mereka, yang tampaknya dijelaskan oleh kecepatan perubahan ekosistem JavaScript, karena, misalnya, dengan ExpressJS, pasokan sudah melebihi permintaan.

Dengan kompetensi, pengusaha pertama-tama mengharapkan kandidat untuk keterampilan Pemecahan Masalah. Sekitar 95% pengusaha menyebut keterampilan ini penting. Memprogram Kemahiran Bahasa di tempat kedua dengan 56%. Ngomong-ngomong, tidak ada garis dengan pengetahuan dasar tentang algoritma, struktur data, dan Ilmu Komputer lainnya, baik dalam kuesioner, atau pengetahuan massa akademis tidak lagi diperlukan.
Desain Basis Data membutuhkan 23,2% perusahaan hingga 100 orang, dan 18,8% perusahaan lebih dari 1000 orang. Ya, ini tentang ORM dan SQL! Penjelasan logis, IMHO, adalah bahwa di perusahaan besar ada peran DBA khusus, yang bertanggung jawab untuk aspek ini, dan karena itu dimungkinkan untuk melunakkan persyaratan untuk pengembang dan mempekerjakan lebih cepat. Tetapi dengan Desain Sistem, sebaliknya: 37,0% dalam yang kecil, 44,1% dalam yang besar. Tampaknya arsitek besar harus dibedakan, tetapi mungkin mereka tidak mampu menutupi jumlah sistem yang dihasilkan. Atau pada saat yang sama mereka berinvestasi dalam Desain Sistem algoritma yang sangat mendasar dan struktur data, kemudian menjadi sedikit lebih jelas.
Perusahaan kecil membutuhkan Kerangka Keahlian dan Desain Sistem yang disebutkan di atas, dari mana kita dapat menyimpulkan bahwa penting bagi startup untuk meluncurkan produk yang berfungsi sesegera mungkin, dan besok akan menjadi besok.

Apa yang dipelajari siswa?
Di sini saya mengandalkan data dari
studi HackerRank lain.
Penting untuk mempertimbangkan bahwa terlepas dari kenyataan bahwa pemrograman dalam satu atau lain bentuk diajarkan di universitas (maksud saya spesialisasi Ilmu Komputer), lebih dari setengah responden mengatakan bahwa mereka terlibat dalam pendidikan mandiri juga.
Siswa modern lebih suka belajar di YouTube, sedangkan pengembang yang lebih tua cenderung tutorial dan buku. Keduanya aktif menggunakan StackOverflow. Saya mengaitkan ini dengan fakta bahwa video adalah saluran media yang biasa untuk Generasi Z, sementara perwakilan Generasi Y masih menemukan era tanpa blogger.
Pelajari apa yang diminta oleh majikan: JavaScript, Java, Python. Mereka menunjukkan bahwa mereka tahu C / C ++, tetapi ini mungkin karena bahasa ini digunakan untuk mengajar di universitas. Mereka mempelajari kerangka kerja JS, tetapi permintaan secara signifikan lebih tinggi daripada penawaran, sehingga mereka tampaknya sudah secara aktif diajarkan setelah menemukan pekerjaan pertama.

Secara umum, apa yang diharapkan diajarkan adalah apa yang diminati.
Siswa dari pekerjaan pertama terutama mengharapkan pertumbuhan profesional, di tempat kedua (di beberapa negara di pertama) keseimbangan pekerjaan-kehidupan, di ketiga - tugas yang menarik.
Mengembangkan dinamika populasi dengan bahasa pemrograman dan jenis perangkat lunak

Aplikasi web didahulukan dengan sekitar 16,9 juta pengembang. Ini lagi-lagi data SlashData. Berikutnya adalah Layanan Backend (13,6 juta), aplikasi seluler (13,1 juta) dan desktop (12,3 juta). Sektor AR / VR dan IoT secara bertahap mendapatkan popularitas, AI / ML / Data Science telah tumbuh secara signifikan selama dua tahun terakhir.
Javascript tumbuh paling cepat, komunitasnya sudah terbesar, hanya pada 2018 tumbuh 2,5 juta. Mereka bahkan mencoba untuk menulisnya di sektor IOT dan ML.
Python pada tahun 2018 tumbuh sebesar 2,2 juta karena semakin populernya ML, yang secara tradisional kuat, serta karena kemudahan pengembangan dan kenyamanan bahasa.
Java, C / C ++ dan C # tumbuh pada tingkat yang lebih lambat daripada populasi pengembang umum. Mereka sekarang jarang bahasa pemrograman yang orang lebih suka untuk memulai. Permintaan pengembang di sini kurang lebih seimbang dengan persediaan. Saya pikir Java akan tumbuh lebih lambat jika tidak untuk Android.
PHP adalah bahasa pemrograman aplikasi web kedua yang paling populer dan juga tumbuh secara signifikan (sebesar 32% pada tahun 2018). Komunitasnya diperkirakan mencapai 5,9 juta pengembang. Meskipun pendapat umum tentang reputasi PHP, cukup mudah untuk dipelajari dan tersebar luas.
Bagaimana kandidat muda modern belajar dibandingkan dengan generasi sebelumnya
Data HackerRank lagi. Mereka yang sekarang berusia 38 hingga 53 tahun menunjukkan game dengan proyek pertama mereka.
Ngomong-ngomong, saya mengkonfirmasi bahwa proyek kerja pertama saya kurang lebih adalah "tic-tac-toe" hingga lima berturut-turut dengan bidang yang tidak terbatas, yang kedua - permainan pada 15. Saya menulis semua ini pada
BC 010-01 , ada
BASIC Vilnius , alias BASIC- 86 dan fokus. Eh.
Pemrogram pemula modern (sebelum usia 21) menulis kalkulator dan situs web sebagai proyek pertama mereka.
Di antara perwakilan generasi X, hampir setengahnya mulai menulis kode sebelum usia 16 tahun, banyak yang umumnya berusia 5 hingga 10 tahun (terutama mereka yang kini berusia 35 hingga 45 tahun). Alasannya kurang lebih dapat dimengerti: ada beberapa sumber informasi, dan untuk menjadi seorang programmer, sangat diperlukan untuk benar-benar menginginkannya, dan mereka yang benar-benar ingin memulai pemrograman lebih awal. Mereka yang tidak begitu menginginkan, pada saat ini, kemungkinan besar memiliki profesi yang berbeda, sehingga gambaran dalam sosiologi hanya itu.

Kandidat muda saat ini hanya 20% dari kasus memulai pemrograman sebelum usia 16, kebanyakan dari mereka berada di antara 16 dan 20. Tetapi jauh lebih mudah bagi mereka untuk belajar, sekarang jauh lebih mudah diakses.
Kesimpulan
Saya tidak menemukan jawaban konkret yang diperkuat untuk pertanyaan apakah pengembang web backend pemula SQL diperlukan saat ini, tetapi ia memperbaiki idenya tentang populasi programmer modern.
Generasi pengembang berikutnya - orang-orang biasa, yang sedikit mengingatkan pada
masalah perumahan sebelumnya
hanya memanjakan mereka . Mereka memenuhi permintaan yang diciptakan oleh majikan. Ambang untuk memasuki profesi menjadi lebih rendah karena alat dan kerangka kerja yang lebih nyaman yang memungkinkan Anda untuk dengan cepat mencapai hasil. Semakin banyak orang yang sekarang menjadi programmer, generasi digital (generasi Z) telah hidup dalam teknologi sejak lahir, bagi mereka itu adalah profesi biasa, tidak lebih buruk dari yang lain.
Mereka yang tahu bahwa cache Lensi L1 adalah ~ 4 siklus, dan bahwa lebih baik untuk tidak menembak garis cache yang tidak perlu, menjadi lebih kecil sebagai persentase dari total ukuran populasi. Namun, mereka tidak perlu khawatir tentang pekerjaan, seseorang pada akhirnya harus menulis hal-hal tingkat rendah di mana ini masih diperlukan. Sama seperti Anda tidak perlu khawatir, mereka yang memiliki pengetahuan mendasar yang mendalam dalam desain sistem dan memperolehnya dalam pertempuran praktis berdarah, dan tidak hanya mengikuti kultus kargo. Karena mereka yang dapat "hanya menulis kode" dan "hanya" menggunakan kerangka kerja dalam tim akan menjadi lebih banyak, dan untuk "tidak menyakitkan selama bertahun-tahun dihabiskan tanpa tujuan" (c) mereka perlu diseimbangkan oleh orang-orang seperti itu.
Soft skill dari kategori yang diinginkan secara bertahap bermigrasi ke wajib (untuk mengkonfirmasi ini, saya tidak punya data objektif, hanya pengamatan praktis). Jumlah programmer bertambah, dan semuanya harus diarahkan untuk mencapai hasil, meskipun dengan kontrol langsung, meskipun tidak langsung, tetapi untuk ini hanya perlu soft skill.
“Enter IT” menurut saya adalah sejarah regional lokal, karakteristik dari lokasi-lokasi di mana pendapatan seorang programmer berbeda secara signifikan dari pendapatan seorang spesialis yang sebanding dalam kualifikasi dengan “bukan IT”. Di Minsk, tempat saya tinggal, ini umumnya adalah gerakan massa, setiap hari saya melihat iklan untuk kursus selanjutnya tentang cara masuk ke IT yang didambakan, dan perusahaan pembersih menargetkan pemrogram dengan pesan “Apakah Anda memahami kode dalam gambar ini? Jadi Anda tidak dapat membersihkan apartemen, kami akan melakukan segalanya untuk Anda. " Hal yang sama rupanya terjadi di India. Untuk membuktikan ini, saya juga tidak punya.
Secara umum, populasi programmer tidak menurut saya terancam. Tidaklah layak untuk mengatakan bahwa programmer sejati tidak puas dengan siang dan malam, dan bahwa kandidat sepanjang waktu “tidak tahu apa-apa”. Mereka sama pintar dan mampu, bahkan mungkin lebih pintar dan lebih mampu daripada "programmer nyata," mereka hanya memperoleh pengetahuan bahwa pasar yang booming membutuhkan dari mereka dan mengesampingkan untuk kemudian apa yang mereka belum butuhkan dan tidak akan membawa manfaat sekarang. Mereka akan belajar ketika diperlukan, karena mereka masih ingin belajar. Mungkin tidak semua orang akan mampu melakukan ini, tetapi tidak semua orang akan membutuhkannya, pasar di masa mendatang akan membuatnya mudah untuk menerima orang yang dapat dengan cepat menyusun konsep aplikasi lain pada beberapa kerangka kerja.