“Onde estão os jovens punks que vão nos varrer da face da terra?”

Eu me perguntei a questão existencial colocada no título da formulação de Grebenshchikov após outra rodada de discussão em uma das comunidades sobre se um desenvolvedor web backend iniciante precisa de conhecimento de SQL ou se o ORM fará tudo de qualquer maneira. Decidi procurar a resposta de forma um pouco mais ampla do que apenas sobre ORM e SQL, e basicamente tentar sistematizar quem são as pessoas que agora estão indo para entrevistas para cargos de desenvolvimento de nível júnior e médio, qual é sua história e em que mundo eles vivem. Moro em. No geral tinha uma opinião, mas ela era formada pela experiência pessoal de contratação e claramente ajustada ao mercado local. Em geral, ficou interessante. Aqui está o que encontramos.

População global de desenvolvedores

Para abordar de alguma forma a questão, decidi começar buscando dados sobre quantos desenvolvedores existem no mundo hoje e como essa população está mudando ao longo do tempo.
Estimativas de diversas fontes colocam os números na faixa de 12 a 30 milhões de pessoas. Decidi parar em dados de SlashData, porque a metodologia deles me pareceu bastante equilibrada e adequada às minhas necessidades. Na sua avaliação, levaram em conta o número de contas e repositórios no Github, o número de contas no StackOverflow, contas npm e dados de fontes oficiais sobre emprego nos EUA e na Europa. Eles também ajustaram os números resultantes usando seus próprios 16 estudos, que incluíram aproximadamente 20 mil pessoas em cada pesquisa.

Segundo o SlashData, havia aproximadamente 2018 milhões de desenvolvedores no mundo no quarto trimestre de 18.9, dos quais 12.9 milhões eram desenvolvedores profissionais, ou seja, ganham a vida programando. Aqueles que atualmente não são desenvolvedores profissionais são pessoas para quem programar é um hobby, além daqueles que atualmente estudam uma profissão (estudantes diversos e autodidatas). Bem, isto é, aqui vai uma dica do tamanho do grupo que me interessa - 6 milhões de pessoas. Para ser honesto, isso é mais do que eu esperava.

A segunda surpresa para mim foi a taxa de crescimento do número de programadores: do segundo trimestre de 2017 para o quarto trimestre de 2018, passou de 14.7 para os mencionados 18.9 milhões, ou aumentou 21% em 2018! Se me pedissem para estimar a taxa de crescimento do número de programadores, diria que é cerca de 5% ao ano, com um ligeiro aumento na taxa anualmente. E aqui chega a 20%.

Além disso, o SlashData estima que a população atingirá 2030 milhões até 45. É fácil calcular que isto implica um crescimento anual de pouco mais de 8%, e não de 20%, mas referem-se à correcção tendo em conta a penetração da Internet (actualmente cerca de 57% no mundo segundo de acordo com Statista) e vários outros fatores, como o número de incorporadores per capita. Geograficamente, o número de desenvolvedores está crescendo mais fortemente na Índia e na China; espera-se que a Índia ultrapasse os Estados Unidos no número de desenvolvedores até 2023 (isto já é Dados de canto C#).

Em geral, haverá muitos programadores, não importa como você olhe, porque a demanda está crescendo. A propósito, sobre a demanda.

O que está em demanda?

Para estimar a demanda, usei dados do HackerRank para 2018 и 2019 ano.

Em termos de linguagens de programação, a maior procura é por JavaScript, Python e Java em quase todas as indústrias, com exceção de Hardware de Informática. Neste último, a maior demanda é por C/C++, o que é compreensível; os projetos de hardware ainda possuem requisitos de intensidade de recursos e desempenho do software correspondente.

“Onde estão os jovens punks que vão nos varrer da face da terra?”

Em termos de frameworks, AngularJS, Node.js e React são os mais procurados e apresentam a maior lacuna entre oferta e procura, o que parece ser explicado pela velocidade com que o ecossistema JavaScript está a mudar, porque por exemplo, para ExpressJS , a oferta já supera a demanda.

“Onde estão os jovens punks que vão nos varrer da face da terra?”

Em termos de competências, os empregadores esperam principalmente dos candidatos habilidades de resolução de problemas. Cerca de 95% dos empregadores mencionam estas competências como importantes. A proficiência em linguagem de programação está em segundo lugar com 56%. Aliás, não há nenhuma linha com o conhecimento fundamental de algoritmos, estruturas de dados e outras Ciências da Computação, ou não estava no questionário, ou o conhecimento acadêmico não é mais exigido em larga escala.

O design de banco de dados é necessário para 23.2% das empresas com menos de 100 funcionários e 18.8% das empresas com mais de 1000 funcionários. Sim, parece que se trata de ORM e SQL! A explicação lógica, IMHO, é que nas grandes empresas existe uma função dedicada do DBA, que é o responsável por esse aspecto, e portanto é possível amenizar as exigências para desenvolvedores e contratar com mais rapidez. Mas com o System Design é o contrário: 37.0% nos pequenos, 44.1% nos grandes. Parece que os grandes deveriam ter arquitectos dedicados, mas talvez simplesmente não sejam capazes de cobrir o número de sistemas que estão a ser gerados. Ou os mesmos algoritmos fundamentais e estruturas de dados são colocados no Design do Sistema, então fica um pouco mais claro.

As pequenas empresas precisam de Framework Proficiency mais e menos do mencionado System Design, do qual podemos tirar a conclusão do capitão de que é importante que as startups lancem um produto de alguma forma funcional o mais rápido possível, e amanhã será amanhã.

“Onde estão os jovens punks que vão nos varrer da face da terra?”

O que os alunos aprendem?

Aqui confiei em dados de outro Pesquisa HackerRank.
É importante considerar que, apesar de a programação de uma forma ou de outra ser ensinada nas universidades (quero dizer, cursos de Ciência da Computação), mais da metade dos entrevistados disseram que também se autoeducam.

Os estudantes modernos preferem aprender no YouTube, enquanto os desenvolvedores mais velhos preferem tutoriais e livros. Ambos usam ativamente o StackOverflow. Atribuo isso ao fato de que o vídeo é um canal de mídia familiar para a geração Z, enquanto os representantes da geração Y ainda estão numa era sem blogueiros.

Eles ensinam o que é exigido pelos empregadores: JavaScript, Java, Python. Eles indicam que conhecem C/C++, mas provavelmente isso ocorre porque essas linguagens são usadas para ensino em universidades. Eles ensinam frameworks JS, mas a demanda é significativamente maior que a oferta, então aparentemente eles estão aprendendo ativamente depois de encontrarem seu primeiro emprego.

“Onde estão os jovens punks que vão nos varrer da face da terra?”

Em geral, como esperado, eles ensinam o que é exigido.

Os estudantes esperam o crescimento profissional do seu primeiro emprego, o equilíbrio entre vida pessoal e profissional vem em segundo lugar (em alguns países, primeiro) e as tarefas interessantes vêm em terceiro.

Dinâmica da população de desenvolvedores por linguagens de programação e tipos de software

“Onde estão os jovens punks que vão nos varrer da face da terra?”

Os aplicativos da Web estão em primeiro lugar, com cerca de 16.9 milhões de desenvolvedores. Este é SlashData novamente. Em seguida estão os serviços de back-end (13.6 milhões), aplicativos móveis (13.1 milhões) e desktop (12.3 milhões). Os setores de AR/VR e IoT estão gradualmente ganhando popularidade, AI/ML/Data Science cresceu significativamente nos últimos dois anos.

Javascript é o que cresce mais rápido; sua comunidade já é a maior, crescendo 2018 milhões somente em 2.5. Eles estão até tentando escrever isso nos setores de IoT e ML.
Python cresceu 2018 milhões em 2.2 devido à crescente popularidade do ML, onde é tradicionalmente forte, bem como devido à facilidade de aprendizagem e conveniência da linguagem.

Java, C/C++ e C# estão crescendo a um ritmo mais lento do que a população geral de desenvolvedores. Agora raramente são a linguagem de programação que as pessoas escolhem para começar. A demanda por desenvolvedores aqui é mais ou menos equilibrada com a oferta. Acho que o Java teria ficado ainda mais lento se não fosse o Android.

PHP é a segunda linguagem de programação de aplicações web mais popular e também está crescendo significativamente (32% em 2018). Sua comunidade é estimada em 5.9 milhões de desenvolvedores. Apesar da reputação polarizadora do PHP, ele é bastante fácil de aprender e amplamente utilizado.

Como estudam os jovens candidatos de hoje em comparação com as gerações anteriores?

Dados do HackerRank novamente. Aqueles que hoje têm entre 38 e 53 anos listam os jogos como seus primeiros projetos.

Aliás, confirmo que meu primeiro projeto mais ou menos funcional foi “jogo da velha” até cinco seguidos com campo ilimitado, o segundo foi um jogo de 15. Escrevi tudo isso em BC 010-01, houve Básico de Vilnius, também conhecido como BASIC-86 e focal. Eh.

Programadores iniciantes modernos (até 21 anos) escrevem calculadoras e sites como seus primeiros projetos.

Entre os representantes da geração X, quase metade começou a escrever código antes dos 16 anos, muitos o fizeram dos 5 aos 10 anos (principalmente aqueles que agora têm entre 35 e 45 anos). O porquê é mais ou menos claro: havia poucas fontes de informação, e para se tornar um programador você realmente tinha que querer muito, e quem realmente queria começou a programar cedo. Aqueles que não queriam tanto provavelmente agora têm uma profissão diferente, então o quadro na sociologia é exatamente esse.

“Onde estão os jovens punks que vão nos varrer da face da terra?”

Os jovens candidatos de hoje apenas 20% das vezes começam a programar antes dos 16 anos, a maioria entre 16 e 20 anos. Mas também é muito mais fácil para eles aprenderem; agora é muito mais acessível.

Descobertas

Ainda não encontrei uma resposta concreta para a questão de saber se um desenvolvedor web backend iniciante precisa de SQL hoje, mas corrigi minha ideia da população moderna de programadores.

A próxima geração de incorporadores são pessoas comuns, em alguns aspectos parecidas com as anteriores; o problema da habitação apenas os estragou. Eles satisfazem a demanda criada pelos empregadores. O limite para ingressar na profissão diminuiu devido a ferramentas e estruturas mais convenientes que permitem alcançar resultados rapidamente. Mais pessoas estão agora a tornar-se programadores; a geração digital (Geração Z) vive na tecnologia desde o nascimento; para eles é uma profissão comum, não pior do que outras.

Aqueles que sabem que a latência do cache L1 é de aproximadamente 4 ciclos e que é melhor não travar linhas de cache desnecessariamente estão se tornando menores como porcentagem do tamanho total da população. No entanto, eles não deveriam se preocupar em conseguir um emprego; afinal, alguém tem que escrever coisas de baixo nível onde ainda é necessário. Da mesma forma, aqueles que possuem profundo conhecimento fundamental em design de sistemas e o adquiriram em sangrentas batalhas práticas, e não apenas seguem um culto à carga, não devem se preocupar. Porque haverá mais pessoas nas equipes que podem “apenas escrever código” e “apenas” usar frameworks, e para “evitar a dor insuportável de anos vividos sem rumo” (c) eles precisarão ser equilibrados exatamente por essas pessoas .

As soft skills estão gradativamente migrando da categoria de desejáveis ​​para obrigatórias (não tenho dados objetivos que confirmem isso, apenas observação prática). O número de programadores é crescente, e todos eles precisam ser direcionados para alcançar resultados, seja por meio de controle direto ou indireto, e é exatamente para isso que são necessárias as soft skills.

“Entra na TI” parece-me ser uma história regional local, típica daqueles locais onde o rendimento de um programador difere significativamente do rendimento de um especialista comparável “não-TI”. Em Minsk, onde moro, geralmente é um movimento de massa, todos os dias vejo anúncios de novos cursos sobre como entrar na cobiçada TI, e as empresas de limpeza têm como alvo os programadores com a mensagem “Você entende o código desta imagem? Isso significa que você pode se dar ao luxo de não limpar seu apartamento, nós faremos tudo por você.” Aparentemente, a mesma coisa está acontecendo em alguma Índia. Também não tenho dados que comprovem isso.

Em geral, na minha opinião, nada ameaça a população de programadores. Não faz sentido tagarelar sobre o fato de que você não consegue encontrar programadores de verdade durante o dia e que os candidatos muitas vezes “não sabem nada”. Eles são tão inteligentes e capazes, talvez até mais inteligentes e capazes que os “verdadeiros programadores”; eles simplesmente adquirem o conhecimento que um mercado em rápido crescimento exige deles e adiam para depois o que ainda não precisavam e não trará o benefício certo agora. Eles aprenderão quando precisarem, porque ainda querem aprender. Provavelmente nem todos serão capazes disso, mas nem todos precisarão disso; num futuro próximo, o mercado aceitará facilmente pessoas que possam montar rapidamente outro conceito de aplicação usando algum framework.

Apenas usuários registrados podem participar da pesquisa. Entrarpor favor

As entrevistas de backend da web exigem conhecimento de SQL?

  • Sim, exijo porque preciso para trabalhar

  • Sim, tenho, embora raramente seja necessário no trabalho.

  • Não, não exijo, temos NoSQL

  • Não, eu não preciso disso, ORM fará tudo

320 usuários votaram. 230 usuários se abstiveram.

Fonte: habr.com

Adicionar um comentário