"Onde están os mozos punks que nos borrarán da faz da terra?"

Fíxenme a pregunta existencial posta no título na formulación de Grebenshchikov tras outra rolda de discusión nunha das comunidades sobre se un desenvolvedor de backend web principiante necesita coñecementos de SQL ou se ORM fará todo de todos os xeitos. Decidín buscar a resposta de forma un pouco máis ampla que só sobre ORM e SQL, e basicamente tratar de sistematizar quen son as persoas que agora van a entrevistas para postos de desenvolvemento de nivel júnior e medio, cal é a súa historia e que mundo teñen. vivir en. En xeral, tiña unha opinión, pero estaba formada pola experiencia persoal de contratación e claramente axustada ao mercado local. En xeral, fíxose interesante. Aquí está o que atopamos.

Poboación global de desenvolvedores

Para abordar a pregunta dalgún xeito, decidín comezar por buscar datos sobre cantos desenvolvedores hai no mundo hoxe e como está a cambiar esta poboación co paso do tempo.
As estimacións de varias fontes sitúan as cifras entre 12 e 30 millóns de persoas. Decidiu parar en datos de SlashData, porque a súa metodoloxía parecía bastante equilibrada e adecuada ás miñas necesidades. Na súa avaliación, tiveron en conta o número de contas e repositorios en Github, o número de contas en StackOverflow, contas npm e datos de fontes oficiais sobre emprego en EE. UU. e Europa. Tamén axustaron os números resultantes utilizando os seus propios 16 estudos, que incluíron aproximadamente 20 persoas para cada enquisa.

Segundo SlashData, no cuarto trimestre de 2018 había aproximadamente 18.9 millóns de desenvolvedores no mundo, 12.9 millóns dos cales eran desenvolvedores profesionais, é dicir, gañan a vida programando. Os que actualmente non son desenvolvedores profesionais son persoas para as que a programación é unha afección, máis as que actualmente están a estudar unha profesión (alumnos diversos e autodidactas). Ben, é dicir, aquí tes unha pista sobre o tamaño do grupo que me interesa: 6 millóns de persoas. Para ser sincero, isto é máis do que esperaba.

A segunda sorpresa para min foi a taxa de crecemento do número de programadores: dende o segundo trimestre de 2017 ata o cuarto trimestre de 2018, pasou de 14.7 aos mencionados 18.9 millóns, ou aumentou un 21% en 2018! Se me pediran que estimase a taxa de crecemento do número de programadores, diría que é dun 5% ao ano cun lixeiro aumento da taxa anualmente. E aquí resulta ser ata o 20%.

Ademais, SlashData estima que a poboación chegará aos 2030 millóns en 45. É doado entender que isto implica un crecemento de algo máis do 8% anual, non do 20%, pero fan referencia a un axuste para ter en conta a penetración de internet (actualmente preto do 57% en todo o mundo). segundo Statista) e outros factores, como o número de desenvolvedores per cápita. Xeograficamente, o número de desenvolvedores está a crecer con máis forza na India e China; espérase que a India supere aos Estados Unidos no número de desenvolvedores en 2023 (isto xa é Datos da esquina C#).

En xeral, haberá moitos programadores, non importa como o mire, porque a demanda crece. Por certo, sobre a demanda.

Que se demanda?

Para estimar a demanda, usei datos de HackerRank para 2018 и 2019 ano.

En canto ás linguaxes de programación, a maior demanda é de JavaScript, Python e Java en case todas as industrias, a excepción do Hardware informático. Neste último, a maior demanda é para C/C++, o que é comprensible; os proxectos de hardware aínda teñen requisitos de intensidade de recursos e rendemento do software correspondente.

"Onde están os mozos punks que nos borrarán da faz da terra?"

En canto aos frameworks, AngularJS, Node.js e React son os máis demandados, e son os que presentan a maior brecha entre a oferta e a demanda, o que parece explicarse pola rapidez coa que está a cambiar o ecosistema de JavaScript, porque, por exemplo, para ExpressJS , a oferta xa supera a demanda.

"Onde están os mozos punks que nos borrarán da faz da terra?"

En termos de competencias, os empresarios esperan principalmente habilidades de resolución de problemas dos candidatos. Cerca do 95% dos empresarios mencionan estas habilidades como importantes. A competencia da linguaxe de programación ocupa o segundo lugar cun 56%. Por certo, non hai ningunha liña con coñecementos fundamentais de algoritmos, estruturas de datos e outras Ciencias da Computación, ou non estaba no cuestionario, ou xa non se requiren coñecementos académicos a gran escala.

O deseño de bases de datos é necesario para o 23.2% das empresas de menos de 100 persoas e o 18.8% das empresas de máis de 1000 persoas. Si, parece que se trata de ORM e SQL. A explicación lóxica, en mi humilde opinión, é que nas grandes empresas hai un papel dedicado do DBA, que é o responsable deste aspecto e, polo tanto, é posible suavizar os requisitos dos desenvolvedores e contratar máis rápido. Pero con System Design é ao revés: 37.0% nas pequenas, 44.1% nas grandes. Parece que os grandes deberían ter arquitectos dedicados, pero quizais simplemente non sexan capaces de cubrir o número de sistemas que se xeran. Ou os mesmos algoritmos fundamentais e estruturas de datos colócanse no Deseño do sistema, entón queda un pouco máis claro.

As pequenas empresas necesitan cada vez menos Framework Proficiency do citado System Design, do que podemos extraer a conclusión do capitán de que é importante que as startups lancen un produto dalgún xeito que funcione o máis rápido posible, e mañá será mañá.

"Onde están os mozos punks que nos borrarán da faz da terra?"

Que aprenden os alumnos?

Aquí confiei en datos doutro Investigación de HackerRank.
É importante ter en conta que a pesar de que a programación dunha ou outra se imparte nas universidades (refírome ás titulacións de Informática), máis da metade dos enquisados ​​afirmaron que tamén se dedican á autoformación.

Os estudantes modernos prefiren aprender de YouTube, mentres que os desenvolvedores máis vellos apostan polos titoriais e os libros. Ambos usan activamente StackOverflow. Atribúo isto ao feito de que o vídeo é unha canle de medios familiar para a xeración Z, mentres que os representantes da xeración Y aínda están nunha era sen bloggers.

Ensinan o que demandan os empresarios: JavaScript, Java, Python. Indican que coñecen C/C++, pero probablemente isto débese a que estas linguaxes úsanse para o ensino nas universidades. Ensinan marcos JS, pero a demanda é significativamente superior á oferta, polo que ao parecer están aprendendo activamente despois de atopar o seu primeiro emprego.

"Onde están os mozos punks que nos borrarán da faz da terra?"

En xeral, como era de esperar, ensinan o que se demanda.

Os estudantes esperan un crecemento profesional do seu primeiro traballo, a conciliación da vida laboral e familiar ocupa o segundo lugar (nalgúns países primeiro) e as tarefas interesantes ocupan o terceiro lugar.

Dinámica da poboación de desenvolvedores por linguaxes de programación e tipos de software

"Onde están os mozos punks que nos borrarán da faz da terra?"

As aplicacións web están en primeiro lugar cun estimado de 16.9 millóns de desenvolvedores. Este é de novo SlashData. A continuación están os servizos de backend (13.6 millóns), as aplicacións móbiles (13.1 millóns) e os de escritorio (12.3 millóns). Os sectores de AR/VR e IoT están gañando popularidade gradualmente, a IA/ML/Data Science creceu significativamente nos últimos dous anos.

Javascript está a crecer máis rápido; a súa comunidade xa é a máis grande, crecendo 2018 millóns só en 2.5. Incluso están tentando escribir nel nos sectores IoT e ML.
Python creceu en 2018 millóns en 2.2 debido á crecente popularidade de ML, onde é tradicionalmente forte, así como pola facilidade de aprendizaxe e comodidade da linguaxe.

Java, C/C++ e C# están crecendo a un ritmo máis lento que a poboación global de desenvolvedores. Agora raramente son a linguaxe de programación coa que a xente elixe comezar. A demanda de desenvolvedores aquí está máis ou menos equilibrada coa oferta. Creo que Java sería aínda máis lento se non fose para Android.

PHP é a segunda linguaxe de programación de aplicacións web máis popular e tamén está a medrar significativamente (un 32% en 2018). A súa comunidade estímase en 5.9 millóns de desenvolvedores. A pesar da reputación polarizante de PHP, é bastante fácil de aprender e é moi utilizado.

Como estudan os novos candidatos actuais en comparación coas xeracións anteriores?

Datos de HackerRank de novo. Os que agora teñen entre 38 e 53 enumeran os xogos como os seus primeiros proxectos.

Por certo, confirmo que o meu primeiro proxecto máis ou menos de traballo foi "tic-tac-toe" ata cinco seguidos cun campo ilimitado, o segundo foi un xogo de 15. Escribín todo isto en BC 010-01, houbo Vilnius básico, tamén coñecido como BASIC-86 e focal. Eh.

Os programadores novatos modernos (ata 21 anos) escriben calculadoras e sitios web como os seus primeiros proxectos.

Entre os representantes da xeración X, case a metade comezaron a escribir código antes dos 16 anos, moitos fixérono entre os 5 e os 10 anos (principalmente os que agora teñen entre 35 e 45 anos). Está máis ou menos claro o porqué: había poucas fontes de información, e para converterse en programador había que querelo moito, e os que realmente o querían comezaron a programar cedo. Os que non o querían tanto probablemente agora teñan unha profesión diferente, polo que o panorama en socioloxía é exactamente así.

"Onde están os mozos punks que nos borrarán da faz da terra?"

Os mozos candidatos de hoxe só o 20% das veces comezan a programar antes dos 16 anos, a maioría entre os 16 e os 20. Pero tamén é moito máis fácil para eles aprender, agora é moito máis accesible.

Descubrimentos

Aínda non atopei unha resposta concreta á pregunta de se un desenvolvedor de backend web principiante necesita SQL hoxe, pero corrixín a miña idea da poboación moderna de programadores.

A seguinte xeración de promotores son persoas comúns, nalgúns aspectos parécense aos anteriores; o problema da vivenda só os estropeou. Satisfacen a demanda que crean os empresarios. O limiar para entrar na profesión reduciuse debido a ferramentas e marcos máis cómodos que che permiten conseguir resultados rapidamente. Cada vez son máis as persoas que se están facendo programadores; a xeración dixital (Xeración Z) vive na tecnoloxía dende que naceu; para eles é unha profesión habitual, non peor que outras.

Aqueles que saben que a latencia da caché L1 é de ~4 ciclos e que é mellor non bloquear as liñas de caché innecesariamente, cada vez son máis pequenas como porcentaxe do tamaño total da poboación. Non obstante, non deberían preocuparse por conseguir un traballo; despois de todo, alguén ten que escribir cousas de baixo nivel onde aínda é necesario. Así mesmo, non deberían preocuparse aqueles que teñen profundos coñecementos fundamentais no deseño de sistemas e o adquiriron en sanguentas batallas prácticas e non só seguen un culto á carga. Porque haberá máis persoas nos equipos que poidan "só escribir código" e "só" usar marcos, e para "evitar a insoportable dor dos anos vividos sen rumbo" (c) terán que estar equilibrados con só esas persoas. .

As habilidades blandas van migrando aos poucos da categoría de desexable a obrigatoria (non teño datos obxectivos para confirmalo, só observación práctica). O número de programadores está crecendo, e todos teñen que ser dirixidos para conseguir resultados, xa sexa a través do control directo ou indirecto, e para iso se necesitan habilidades blandas.

"Enter IT" paréceme unha historia rexional local, típica para aqueles lugares onde os ingresos dun programador difiren significativamente dos ingresos dun especialista comparable "non informático". En Minsk, onde vivo, este é xeralmente un movemento de masas, todos os días vexo anuncios de novos cursos sobre como entrar na codiciada informática, e as empresas de limpeza apuntan aos programadores coa mensaxe "Entendes o código desta imaxe? Isto significa que podes permitirte o luxo de non limpar o teu apartamento, faremos todo por ti". O mesmo está a suceder ao parecer nalgunha India. Tampouco teño datos que demostren isto.

En xeral, na miña opinión, nada ameaza á poboación de programadores. Non ten sentido balbucear sobre o feito de que non podes atopar programadores reais durante o día e que os candidatos moitas veces "non saben nada". Son igual de intelixentes e capaces, quizais incluso máis intelixentes e capaces que os "programadores reais"; simplemente adquiren o coñecemento que lles require un mercado en rápido crecemento e deixan para máis tarde o que aínda non precisaron e non lles traerá ningún beneficio. agora. Aprenderán cando o precisen, porque aínda queren aprender. Probablemente, non todos serán capaces diso, pero tampouco todos o necesitarán; nun futuro previsible, o mercado aceptará facilmente persoas que poidan crear rapidamente outro concepto de aplicación usando algún marco.

Só os usuarios rexistrados poden participar na enquisa. Rexístrate, por favor.

As entrevistas de backender web requiren coñecementos de SQL?

  • Si, esíxoo porque o necesito para traballar

  • Si, si, aínda que raramente se necesita no traballo.

  • Non, non o necesito, temos NoSQL

  • Non, non o necesito, ORM fará todo

Votaron 320 usuarios. 230 usuarios abstivéronse.

Fonte: www.habr.com

Engadir un comentario