“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Saya bertanya pada diri sendiri pertanyaan eksistensial yang dimasukkan ke dalam judul formulasi Grebenshchikov setelah putaran diskusi lainnya di salah satu komunitas tentang apakah pengembang backend web pemula memerlukan pengetahuan SQL, atau apakah ORM akan tetap melakukan semuanya. Saya memutuskan untuk mencari jawabannya sedikit lebih luas dari sekedar ORM dan SQL, dan pada dasarnya mencoba mensistematisasikan siapa orang-orang yang sekarang akan diwawancarai untuk posisi pengembangan tingkat junior dan menengah, apa sejarah mereka dan dunia apa mereka. tinggal di. Secara umum, saya punya pendapat, tapi itu dibentuk oleh pengalaman perekrutan pribadi dan jelas disesuaikan dengan pasar lokal. Secara umum, ini menjadi menarik. Inilah yang kami temukan.

Populasi pengembang global

Untuk menjawab pertanyaan tersebut, saya memutuskan untuk memulai dengan mencari data tentang berapa banyak pengembang yang ada di dunia saat ini dan bagaimana populasi ini berubah seiring waktu.
Perkiraan di berbagai sumber menyebutkan jumlahnya berkisar antara 12 hingga 30 juta orang. Memutuskan untuk berhenti di data dari SlashData, karena metodologi mereka sepertinya cukup seimbang dan sesuai dengan kebutuhan saya. Dalam penilaiannya, mereka memperhitungkan jumlah akun dan repositori di Github, jumlah akun di StackOverflow, akun npm, dan data dari sumber resmi tentang ketenagakerjaan di AS dan Eropa. Mereka juga menyesuaikan angka yang dihasilkan dengan menggunakan 16 penelitian mereka sendiri, yang mencakup sekitar 20 orang untuk setiap survei.

Menurut SlashData, terdapat sekitar 2018 juta pengembang di dunia pada kuartal keempat tahun 18.9, 12.9 juta di antaranya adalah pengembang profesional, yaitu mereka yang mencari nafkah dengan pemrograman. Mereka yang saat ini bukan pengembang profesional adalah orang-orang yang hobi pemrogramannya, ditambah mereka yang sedang mempelajari suatu profesi (berbagai pelajar dan otodidak). Berikut adalah petunjuk tentang ukuran grup yang saya minati - 6 juta orang. Sejujurnya, ini lebih dari yang saya harapkan.

Kejutan kedua bagi saya adalah tingkat pertumbuhan jumlah programmer: dari kuartal kedua tahun 2017 hingga kuartal keempat tahun 2018, meningkat dari 14.7 menjadi 18.9 juta yang disebutkan, atau meningkat sebesar 21% pada tahun 2018! Jika saya diminta untuk memperkirakan tingkat pertumbuhan jumlah programmer, saya akan mengatakan bahwa itu adalah sekitar 5% per tahun dengan sedikit peningkatan dalam tingkat tersebut setiap tahunnya. Dan di sini ternyata sebanyak 20%.

Selain itu, SlashData memperkirakan populasinya akan mencapai 2030 juta pada tahun 45. Sangat mudah untuk mengetahui bahwa hal ini berarti pertumbuhan sebesar 8% per tahun, bukan 20%, namun mengacu pada penyesuaian untuk memperhitungkan penetrasi internet (saat ini sekitar 57% di seluruh dunia). menurut Statista) dan beberapa faktor lainnya, seperti jumlah pengembang per kapita. Secara geografis, jumlah pengembang tumbuh paling kuat di India dan Tiongkok; India diperkirakan akan menyalip Amerika Serikat dalam hal jumlah pengembang pada tahun 2023 (ini sudah merupakan C# Data sudut).

Secara umum, akan ada banyak programmer, tidak peduli bagaimana Anda melihatnya, karena permintaan terus meningkat. Berbicara tentang permintaan.

Apa yang diminati?

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

Dari segi bahasa pemrograman, permintaan terbesar adalah JavaScript, Python dan Java di hampir semua industri, kecuali Perangkat Keras Komputer. Permintaan terbesar adalah C/C++, dan hal ini dapat dimengerti; proyek perangkat keras masih memerlukan intensitas sumber daya dan kinerja perangkat lunak terkait.

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Dalam hal kerangka kerja, AngularJS, Node.js, dan React memiliki permintaan terbesar, dan mereka memiliki kesenjangan terbesar antara pasokan dan permintaan, yang tampaknya dijelaskan oleh kecepatan perubahan ekosistem JavaScript, misalnya untuk ExpressJS , pasokan sudah melebihi permintaan.

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Dalam hal kompetensi, pemberi kerja terutama mengharapkan keterampilan Pemecahan Masalah dari para kandidat. Sekitar 95% perusahaan menganggap keterampilan ini penting. Kemahiran Bahasa Pemrograman berada di peringkat kedua dengan 56%. Omong-omong, tidak ada garis sama sekali dengan pengetahuan dasar tentang algoritma, struktur data, dan Ilmu Komputer lainnya, baik itu tidak ada dalam kuesioner, atau pengetahuan akademis tidak lagi diperlukan dalam skala besar.

Desain Basis Data dibutuhkan oleh 23.2% perusahaan dengan jumlah karyawan dibawah 100 orang, dan 18.8% pada perusahaan dengan jumlah karyawan diatas 1000 orang. Ya, sepertinya ini tentang ORM dan SQL! Penjelasan logisnya, IMHO, adalah bahwa di perusahaan besar terdapat peran khusus DBA, yang bertanggung jawab atas aspek ini, dan oleh karena itu dimungkinkan untuk melunakkan persyaratan bagi pengembang dan merekrut lebih cepat. Namun pada Desain Sistem justru sebaliknya: 37.0% pada proyek kecil, 44.1% pada proyek besar. Tampaknya perusahaan besar seharusnya memiliki arsitek yang berdedikasi, namun mungkin mereka tidak mampu mencakup jumlah sistem yang dihasilkan. Atau algoritma dasar dan struktur data yang sama dimasukkan ke dalam Desain Sistem, lalu menjadi sedikit lebih jelas.

Perusahaan kecil membutuhkan Kemahiran Kerangka Kerja kurang lebih seperti Desain Sistem yang disebutkan di atas, dari sini kita dapat menarik kesimpulan utama bahwa penting bagi perusahaan rintisan untuk meluncurkan produk yang berfungsi secepat mungkin, dan besok akan menjadi hari esok.

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Apa yang dipelajari siswa?

Di sini saya mengandalkan data dari orang lain Penelitian HackerRank.
Penting untuk diingat bahwa meskipun pemrograman dalam satu atau lain bentuk diajarkan di universitas (maksud saya jurusan Ilmu Komputer), lebih dari separuh responden mengatakan bahwa mereka juga terlibat dalam pendidikan mandiri.

Pelajar modern lebih suka belajar dari YouTube, sementara pengembang yang lebih tua lebih memilih tutorial dan buku. Keduanya aktif menggunakan StackOverflow. Hal ini saya kaitkan dengan fakta bahwa video merupakan saluran media yang familiar bagi generasi Z, sedangkan generasi Y masih berada di era tanpa blogger.

Mereka mengajarkan apa yang diminta oleh pemberi kerja: JavaScript, Java, Python. Mereka menunjukkan bahwa mereka mengetahui C/C++, tetapi ini mungkin karena bahasa tersebut digunakan untuk pengajaran di universitas. Mereka mengajarkan kerangka kerja JS, namun permintaannya jauh lebih tinggi daripada pasokannya, sehingga tampaknya mereka aktif belajar setelah mendapatkan pekerjaan pertama mereka.

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Secara umum, seperti yang diharapkan, mereka mengajarkan apa yang dibutuhkan.

Siswa mengharapkan pertumbuhan profesional dari pekerjaan pertama mereka, keseimbangan kehidupan kerja (work-life balance) berada di urutan kedua (di beberapa negara berada di urutan pertama), dan tugas-tugas menarik berada di urutan ketiga.

Dinamika populasi pengembang menurut bahasa pemrograman dan jenis perangkat lunak

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Aplikasi web berada di urutan pertama dengan perkiraan 16.9 juta pengembang. Ini SlashData lagi. 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/Ilmu Data telah berkembang secara signifikan selama dua tahun terakhir.

Javascript tumbuh paling cepat; komunitasnya sudah menjadi yang terbesar, tumbuh sebesar 2018 juta pada tahun 2.5 saja. Mereka bahkan mencoba menuliskannya di sektor IoT dan ML.
Python tumbuh sebesar 2018 juta pada tahun 2.2 karena semakin populernya ML, yang secara tradisional kuat, serta karena kemudahan belajar dan kenyamanan bahasanya.

Java, C/C++ dan C# tumbuh pada tingkat yang lebih lambat dibandingkan populasi pengembang secara keseluruhan. Mereka sekarang jarang menjadi bahasa pemrograman yang dipilih orang untuk memulai. Permintaan pengembang di sini kurang lebih seimbang dengan pasokan. Saya pikir Java akan berkembang lebih lambat jika bukan karena Android.

PHP adalah bahasa pemrograman aplikasi web terpopuler kedua dan juga tumbuh secara signifikan (sebesar 32% pada tahun 2018). Komunitasnya diperkirakan mencapai 5.9 juta pengembang. Meskipun reputasi PHP terpolarisasi, PHP cukup mudah dipelajari dan digunakan secara luas.

Bagaimana cara belajar calon muda masa kini dibandingkan generasi sebelumnya?

Data HackerRank lagi. Mereka yang sekarang berusia antara 38 dan 53 tahun mencantumkan game sebagai proyek pertama mereka.

Ngomong-ngomong, saya mengonfirmasi bahwa proyek pertama saya yang kurang lebih berfungsi adalah "tic-tac-toe" hingga lima kali berturut-turut dengan bidang yang tidak terbatas, yang kedua adalah permainan 15. Saya menulis semua ini di SM 010-01, disana ada Dasar Vilnius, alias BASIC-86 dan fokus. Eh.

Pemrogram pemula modern (hingga usia 21 tahun) menulis kalkulator dan situs web sebagai proyek pertama mereka.

Di antara perwakilan generasi X, hampir separuhnya mulai menulis kode sebelum usia 16 tahun, banyak yang melakukannya pada usia 5 hingga 10 tahun (terutama mereka yang kini berusia antara 35 dan 45 tahun). Alasannya kurang lebih jelas: hanya ada sedikit sumber informasi, dan untuk menjadi seorang programmer Anda harus sangat menginginkannya, dan mereka yang benar-benar menginginkannya memulai pemrograman sejak dini. Mereka yang tidak begitu menginginkannya kemungkinan besar sekarang memiliki profesi yang berbeda, sehingga gambaran dalam sosiologi persis seperti ini.

“Di mana anak-anak punk yang akan memusnahkan kita dari muka bumi?”

Kandidat muda saat ini hanya 20% yang memulai program sebelum usia 16 tahun, sebagian besar berusia antara 16 dan 20 tahun. Namun mereka juga lebih mudah mempelajarinya; sekarang lebih mudah diakses.

Temuan

Saya masih belum menemukan jawaban konkrit atas pertanyaan apakah pengembang backend web pemula memerlukan SQL saat ini, tetapi saya telah mengoreksi gagasan saya tentang populasi pemrogram modern.

Pengembang generasi penerus adalah masyarakat biasa, dalam beberapa hal mirip dengan generasi sebelumnya, masalah perumahan hanya memanjakan mereka. Mereka memenuhi permintaan yang diciptakan oleh pemberi kerja. Ambang batas untuk memasuki profesi ini menjadi lebih rendah karena alat dan kerangka kerja yang lebih nyaman yang memungkinkan Anda mencapai hasil dengan cepat. Kini semakin banyak orang yang menjadi programmer; generasi digital (Generasi Z) telah hidup di bidang teknologi sejak lahir; bagi mereka itu adalah profesi yang umum, tidak lebih buruk dari yang lain.

Mereka yang mengetahui bahwa latensi cache L1 adalah ~4 siklus, dan bahwa lebih baik tidak merusak jalur cache jika tidak perlu, menjadi lebih kecil sebagai persentase dari ukuran total populasi. Namun, mereka tidak perlu khawatir tentang mendapatkan pekerjaan; bagaimanapun juga, seseorang harus menulis hal-hal tingkat rendah yang masih diperlukan. Demikian pula, mereka yang memiliki pengetahuan mendasar yang mendalam dalam desain sistem dan memperolehnya dalam pertempuran praktis yang berdarah, dan tidak hanya mengikuti kultus kargo, tidak perlu khawatir. Karena akan ada lebih banyak orang dalam tim yang “hanya bisa menulis kode” dan “hanya” menggunakan kerangka kerja, dan untuk “menghindari rasa sakit yang luar biasa dari tahun-tahun yang dihabiskan tanpa tujuan” (c) mereka perlu diimbangi oleh orang-orang seperti itu saja .

Soft skill secara bertahap berpindah dari kategori diinginkan ke wajib (saya tidak memiliki data obyektif untuk mengonfirmasi hal ini, hanya observasi praktis). Jumlah programmer semakin bertambah, dan mereka semua perlu diarahkan untuk mencapai hasil, baik melalui kontrol langsung maupun tidak langsung, dan untuk itulah soft skill dibutuhkan.

Bagi saya, “Masuk TI” adalah cerita regional lokal, khas untuk lokasi di mana pendapatan seorang programmer berbeda secara signifikan dari pendapatan spesialis “non-IT” yang sebanding. Di Minsk, tempat saya tinggal, ini umumnya merupakan gerakan massal, setiap hari saya melihat iklan kursus baru tentang cara masuk ke bidang TI yang didambakan, dan perusahaan kebersihan menargetkan pemrogram dengan pesan “Apakah Anda memahami kode dalam gambar ini? Ini berarti Anda mampu untuk tidak membersihkan apartemen Anda, kami akan melakukan segalanya untuk Anda.” Hal serupa rupanya juga terjadi di sebagian India. Saya juga tidak punya data untuk membuktikannya.

Secara umum, menurut saya, tidak ada yang mengancam populasi programmer. Tidak ada gunanya mengoceh tentang fakta bahwa Anda tidak dapat menemukan programmer sungguhan di siang hari, dan bahwa para kandidat sering kali “tidak tahu apa-apa”. Mereka sama cerdas dan cakapnya, bahkan mungkin lebih pintar dan lebih cakap daripada “pemrogram sungguhan”; mereka hanya memperoleh pengetahuan yang dibutuhkan oleh pasar yang berkembang pesat dan menunda apa yang belum mereka perlukan dan tidak akan membawa manfaat, bukan? Sekarang. Mereka akan belajar ketika diperlukan, karena mereka masih ingin belajar. Mungkin tidak semua orang mampu melakukan hal ini, namun tidak semua orang juga membutuhkannya; di masa mendatang, pasar akan dengan mudah menerima orang-orang yang dapat dengan cepat menyusun konsep aplikasi lain menggunakan kerangka kerja tertentu.

Hanya pengguna terdaftar yang dapat berpartisipasi dalam survei. Masuk, silakan.

Apakah wawancara backender web memerlukan pengetahuan SQL?

  • Ya, saya memintanya karena saya membutuhkannya untuk bekerja

  • Ya, benar, meski jarang dibutuhkan di tempat kerja.

  • Tidak, saya tidak memerlukannya, kami memiliki NoSQL

  • Tidak, saya tidak memerlukannya, ORM akan melakukan segalanya

320 pengguna memilih. 230 pengguna abstain.

Sumber: www.habr.com

Tambah komentar