"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Saya bertanya kepada diri sendiri soalan kewujudan yang diletakkan dalam tajuk dalam rumusan Grebenshchikov selepas satu lagi pusingan perbincangan dalam salah satu komuniti tentang sama ada pembangun backend web permulaan memerlukan pengetahuan SQL, atau sama ada ORM akan melakukan segala-galanya. Saya memutuskan untuk mencari jawapan yang lebih luas sedikit daripada hanya tentang ORM dan SQL, dan pada asasnya cuba untuk mensistematikkan siapa orang yang kini akan pergi untuk temu duga untuk jawatan pembangunan peringkat rendah dan pertengahan, apakah sejarah mereka dan dunia apa mereka tinggal di. Secara umum, saya mempunyai pendapat, tetapi ia dibentuk oleh pengalaman pengambilan peribadi dan dengan jelas disesuaikan dengan pasaran tempatan. Secara umum, ia menjadi menarik. Inilah yang kami temui.

Populasi pemaju global

Untuk entah bagaimana mendekati soalan itu, saya memutuskan untuk bermula dengan mencari data tentang bilangan pembangun yang ada di dunia hari ini dan bagaimana populasi ini berubah dari semasa ke semasa.
Anggaran dalam pelbagai sumber meletakkan bilangannya dalam lingkungan antara 12 hingga 30 juta orang. Memutuskan untuk berhenti di data daripada SlashData, kerana metodologi mereka kelihatan agak seimbang dan sesuai untuk keperluan saya. Dalam penilaian mereka, mereka mengambil kira bilangan akaun dan repositori di Github, bilangan akaun di StackOverflow, akaun npm dan data daripada sumber rasmi tentang pekerjaan di AS dan Eropah. Mereka juga melaraskan nombor yang terhasil menggunakan 16 kajian mereka sendiri, yang merangkumi kira-kira 20 orang untuk setiap tinjauan.

Menurut SlashData, terdapat kira-kira 2018 juta pembangun di dunia pada suku keempat 18.9, 12.9 juta daripadanya adalah pembangun profesional, iaitu, mereka membuat pengaturcaraan hidup. Mereka yang bukan pembangun profesional pada masa ini adalah orang yang pengaturcaraan adalah hobi, ditambah dengan mereka yang sedang belajar profesion (pelbagai pelajar dan otodidak). Itulah, ini adalah petunjuk tentang saiz kumpulan yang menarik minat saya - 6 juta orang. Sejujurnya, ini lebih daripada yang saya jangkakan.

Kejutan kedua bagi saya ialah kadar pertumbuhan bilangan pengaturcara: dari suku kedua 2017 hingga suku keempat 2018, ia meningkat daripada 14.7 kepada 18.9 juta yang disebutkan, atau meningkat sebanyak 21% pada 2018! Jika saya diminta untuk menganggarkan kadar pertumbuhan bilangan pengaturcara, saya akan mengatakan bahawa ia adalah kira-kira 5% setahun dengan sedikit peningkatan dalam kadar setiap tahun. Dan di sini ternyata sebanyak 20%.

Selain itu, SlashData menganggarkan bahawa populasi akan mencapai 2030 juta menjelang 45. Sangat mudah untuk mengira bahawa ini membayangkan pertumbuhan lebih sedikit daripada 8% setiap tahun, dan tidak sama sekali 20%, tetapi ia merujuk kepada pembetulan dengan mengambil kira penembusan Internet (kini kira-kira 57% di dunia mengikut menurut Statista) dan beberapa faktor lain, seperti bilangan pemaju per kapita. Dari segi geografi, bilangan pemaju berkembang paling kuat di India dan China; India dijangka mengatasi Amerika Syarikat dalam bilangan pemaju menjelang 2023 (ini sudah Data sudut C#).

Secara umum, akan ada banyak pengaturcara, tidak kira bagaimana anda melihatnya, kerana permintaan semakin meningkat. By the way, tentang permintaan.

Apakah permintaan?

Untuk menganggarkan permintaan, saya menggunakan data HackerRank untuk 2018 и 2019 tahun.

Dari segi bahasa pengaturcaraan, permintaan terbesar adalah untuk JavaScript, Python dan Java dalam hampir semua industri, kecuali Perkakasan Komputer. Dalam yang terakhir, permintaan terbesar adalah untuk C/C++, yang boleh difahami; projek perkakasan masih mempunyai keperluan untuk keamatan sumber dan prestasi perisian yang sepadan.

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Dari segi rangka kerja, AngularJS, Node.js dan React berada dalam permintaan terbesar, dan mereka mempunyai jurang terbesar antara bekalan dan permintaan, yang nampaknya dijelaskan oleh kelajuan ekosistem JavaScript berubah, kerana contohnya, untuk ExpressJS , penawaran sudah melebihi permintaan.

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Dari segi kecekapan, majikan terutamanya mengharapkan kemahiran Penyelesaian Masalah daripada calon. Kira-kira 95% majikan menyebut kemahiran ini sebagai penting. Penguasaan Bahasa Pengaturcaraan berada di tempat kedua dengan 56%. Ngomong-ngomong, tidak ada garis sama sekali dengan pengetahuan asas algoritma, struktur data dan Sains Komputer yang lain, sama ada ia tidak ada dalam soal selidik, atau pengetahuan akademik tidak lagi diperlukan secara besar-besaran.

Reka Bentuk Pangkalan Data diperlukan oleh 23.2% syarikat di bawah 100 orang, dan 18.8% syarikat melebihi 1000 orang. Ya, nampaknya ini mengenai ORM dan SQL! Logiknya, IMHO, penjelasan adalah bahawa dalam syarikat besar terdapat peranan khusus DBA, yang bertanggungjawab untuk aspek ini, dan oleh itu adalah mungkin untuk melembutkan keperluan untuk pemaju dan menyewa lebih cepat. Tetapi dengan Reka Bentuk Sistem ia adalah sebaliknya: 37.0% dalam yang kecil, 44.1% dalam yang besar. Nampaknya yang besar sepatutnya mempunyai arkitek yang berdedikasi, tetapi mungkin mereka tidak dapat menampung bilangan sistem yang dihasilkan. Atau algoritma asas dan struktur data yang sama dimasukkan ke dalam Reka Bentuk Sistem, kemudian ia menjadi lebih jelas sedikit.

Syarikat-syarikat kecil memerlukan Kecekapan Rangka Kerja lebih dan kurang daripada Reka Bentuk Sistem yang disebutkan di atas, dari mana kita boleh membuat kesimpulan kapten bahawa adalah penting bagi pemula untuk melancarkan produk entah bagaimana berfungsi secepat mungkin, dan esok adalah esok.

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Apa yang pelajar pelajari?

Di sini saya bergantung pada data dari yang lain Penyelidikan HackerRank.
Adalah penting untuk mempertimbangkan bahawa walaupun pengaturcaraan dalam satu bentuk atau yang lain diajar di universiti (maksud saya jurusan Sains Komputer), lebih separuh daripada mereka yang ditinjau berkata bahawa mereka juga terlibat dalam pendidikan kendiri.

Pelajar moden lebih suka belajar daripada YouTube, manakala pembangun yang lebih tua cenderung kepada tutorial dan buku. Kedua-duanya secara aktif menggunakan StackOverflow. Saya mengaitkan ini dengan fakta bahawa video adalah saluran media biasa untuk generasi Z, manakala wakil generasi Y masih berada dalam era tanpa blogger.

Mereka mengajar apa yang diminta oleh majikan: JavaScript, Java, Python. Mereka menunjukkan bahawa mereka tahu C/C++, tetapi ini mungkin kerana bahasa ini digunakan untuk mengajar di universiti. Mereka mengajar rangka kerja JS, tetapi permintaannya jauh lebih tinggi daripada bekalan, jadi nampaknya mereka sedang giat belajar selepas mencari pekerjaan pertama mereka.

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Secara umum, seperti yang diharapkan, mereka mengajar apa yang diminta.

Pelajar mengharapkan pertumbuhan profesional daripada pekerjaan pertama mereka, keseimbangan kerja-kehidupan berada di tempat kedua (di sesetengah negara didahulukan), dan tugas yang menarik di tempat ketiga.

Dinamik populasi pembangun mengikut bahasa pengaturcaraan dan jenis perisian

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Aplikasi web berada di tempat pertama dengan anggaran 16.9 juta pembangun. Ini SlashData lagi. Seterusnya ialah Perkhidmatan Backend (13.6 juta), aplikasi mudah alih (13.1 juta) dan desktop (12.3 juta). Sektor AR/VR dan IoT semakin popular, AI/ML/Sains Data telah berkembang dengan ketara sejak dua tahun lalu.

Javascript berkembang paling pantas; komunitinya sudah menjadi yang terbesar, berkembang sebanyak 2018 juta pada 2.5 sahaja. Mereka juga cuba menulis di dalamnya dalam sektor IoT dan ML.
Python meningkat sebanyak 2018 juta pada 2.2 disebabkan oleh peningkatan populariti ML, di mana ia kuat secara tradisinya, serta disebabkan oleh kemudahan pembelajaran dan kemudahan bahasa tersebut.

Java, C/C++ dan C# berkembang pada kadar yang lebih perlahan daripada keseluruhan populasi pembangun. Mereka kini jarang menjadi bahasa pengaturcaraan yang orang pilih untuk bermula. Permintaan untuk pemaju di sini lebih kurang seimbang dengan penawaran. Saya fikir Java akan berkembang lebih perlahan jika bukan untuk Android.

PHP ialah bahasa pengaturcaraan aplikasi web kedua paling popular dan ia juga berkembang dengan ketara (sebanyak 32% pada 2018). Komunitinya dianggarkan berjumlah 5.9 juta pemaju. Walaupun reputasi PHP yang polarisasi, ia agak mudah dipelajari dan digunakan secara meluas.

Bagaimana calon muda hari ini belajar berbanding generasi terdahulu?

Data HackerRank sekali lagi. Mereka yang kini berusia antara 38 dan 53 senarai permainan sebagai projek pertama mereka.

Ngomong-ngomong, saya mengesahkan bahawa projek pertama saya yang lebih kurang berfungsi ialah "tic-tac-toe" sehingga lima berturut-turut dengan medan tanpa had, yang kedua ialah permainan 15. Saya menulis semua ini di BC 010-01, ada Vilnius asas, aka BASIC-86 dan fokus. Eh.

Pengaturcara baru moden (sehingga 21 tahun) menulis kalkulator dan tapak web sebagai projek pertama mereka.

Di kalangan wakil generasi X, hampir separuh mula menulis kod sebelum umur 16 tahun, ramai yang melakukannya dari 5 hingga 10 tahun (terutamanya mereka yang kini berusia antara 35 dan 45 tahun). Lebih kurang jelas sebabnya: terdapat sedikit sumber maklumat, dan untuk menjadi seorang pengaturcara anda benar-benar memerlukannya dengan teruk, dan mereka yang benar-benar menginginkannya memulakan pengaturcaraan lebih awal. Mereka yang tidak terlalu menginginkannya kemungkinan besar kini mempunyai profesion yang berbeza, jadi gambaran dalam sosiologi adalah seperti ini.

"Di manakah anak-anak muda yang akan menghapuskan kita dari muka bumi ini?"

Calon muda hari ini hanya 20% sahaja memulakan pengaturcaraan sebelum umur 16 tahun, majoritinya antara 16 dan 20 tahun. Tetapi ia juga lebih mudah untuk mereka belajar; kini ia lebih mudah diakses.

Penemuan

Saya masih belum menemui jawapan konkrit kepada soalan sama ada pembangun backend web permulaan memerlukan SQL hari ini, tetapi saya telah membetulkan idea saya tentang populasi pengaturcara moden.

Pemaju generasi akan datang adalah orang biasa, dalam beberapa cara mereka menyerupai yang sebelumnya; masalah perumahan hanya merosakkan mereka. Mereka memenuhi permintaan yang dicipta oleh majikan. Ambang untuk memasuki profesion telah menjadi lebih rendah kerana alat dan rangka kerja yang lebih mudah yang membolehkan anda mencapai hasil dengan cepat. Lebih ramai orang kini menjadi pengaturcara; generasi digital (Generasi Z) telah hidup dalam teknologi sejak lahir; bagi mereka ia adalah profesion biasa, tidak lebih buruk daripada yang lain.

Mereka yang mengetahui bahawa kependaman cache L1 ialah ~4 kitaran, dan adalah lebih baik untuk tidak merosakkan talian cache secara tidak perlu, menjadi lebih kecil sebagai peratusan daripada jumlah saiz populasi. Walau bagaimanapun, mereka tidak perlu bimbang tentang mendapatkan pekerjaan; seseorang, selepas semua, perlu menulis perkara peringkat rendah di mana ia masih diperlukan. Begitu juga, mereka yang mempunyai pengetahuan asas yang mendalam dalam reka bentuk sistem dan memperolehnya dalam pertempuran praktikal berdarah, dan tidak hanya mengikuti kultus kargo, tidak perlu risau. Kerana akan ada lebih ramai orang dalam pasukan yang boleh "hanya menulis kod" dan "hanya" menggunakan rangka kerja, dan untuk "mengelak kesakitan perit bertahun-tahun dihabiskan tanpa tujuan" (c) mereka perlu diseimbangkan oleh orang sedemikian .

Kemahiran insaniah secara beransur-ansur berhijrah dari kategori wajar kepada wajib (saya tidak mempunyai data objektif untuk mengesahkan ini, hanya pemerhatian praktikal). Bilangan pengaturcara semakin meningkat, dan mereka semua perlu diarahkan untuk mencapai hasil, sama ada melalui kawalan langsung atau tidak langsung, dan inilah kemahiran insaniah yang diperlukan.

“Masukkan IT” bagi saya adalah cerita serantau tempatan, tipikal untuk lokasi yang pendapatan pengaturcara berbeza dengan ketara daripada pendapatan pakar "bukan IT" yang setanding. Di Minsk, tempat saya tinggal, ini secara amnya adalah pergerakan massa, setiap hari saya melihat iklan untuk kursus baharu tentang cara untuk memasuki IT yang diidamkan, dan syarikat pembersihan menyasarkan pengaturcara dengan mesej "Adakah anda faham kod dalam gambar ini? Ini bermakna anda mampu untuk tidak membersihkan apartmen anda, kami akan melakukan segala-galanya untuk anda.” Perkara yang sama nampaknya berlaku di beberapa India. Saya juga tidak mempunyai data untuk membuktikan perkara ini.

Secara umum, pada pendapat saya, tiada apa yang mengancam penduduk pengaturcara. Tidak ada gunanya membebel tentang fakta bahawa anda tidak dapat mencari pengaturcara sebenar pada siang hari, dan calon itu sering "tidak tahu apa-apa." Mereka sama pintar dan berkebolehan, bahkan mungkin lebih bijak dan lebih berkebolehan daripada "pengaturcara sebenar"; mereka hanya memperoleh pengetahuan yang diperlukan oleh pasaran yang berkembang pesat daripada mereka dan menangguhkan perkara yang belum mereka perlukan kemudian dan tidak akan membawa manfaat yang betul sekarang. Mereka akan belajar apabila mereka perlu, kerana mereka masih mahu belajar. Mungkin, tidak semua orang akan mampu melakukan ini, tetapi tidak semua orang akan memerlukannya sama ada; pada masa hadapan, pasaran akan dengan mudah menerima orang yang boleh dengan cepat menyusun konsep aplikasi lain menggunakan beberapa rangka kerja.

Hanya pengguna berdaftar boleh mengambil bahagian dalam tinjauan. Log masuk, Sama-sama.

Adakah temu bual backender web memerlukan pengetahuan SQL?

  • Ya, saya menuntutnya kerana saya memerlukannya untuk kerja

  • Ya, saya lakukan, walaupun ia jarang diperlukan di tempat kerja.

  • Tidak, saya tidak memerlukannya, kami mempunyai NoSQL

  • Tidak, saya tidak memerlukannya, ORM akan melakukan segala-galanya

320 pengguna mengundi. 230 pengguna berpantang.

Sumber: www.habr.com

Tambah komen