Um programador precisa de um diploma universitário ainda ?

Tela de tarefas de desenvolvimento

Todos os anos, mais e mais cursos de programação são exibidos . Eles atraem com a velocidade do treinamento, especialização restrita, ênfase na prática. É tentador, mas a pergunta é: até que ponto será possível avançar com essa educação e haverá problemas com o emprego?

Sergey Poluektov, diretor da empresa de desenvolvimento de software MediaSoft , contou como as carreiras de graduados e desenvolvedores autodidatas diferem.

Espaço suficiente para todos

Você deve começar com o fato: hoje as pessoas com uma ampla variedade de educação estão envolvidas em programação . Além dos graduados, aqueles com uma faculdade técnica ou outra profissão estão trabalhando com segurança aqui. Alguns deles participaram de cursos, mas também havia muitos que haviam dominado tudo.

No mercado de trabalho, eles não estão nem um pouco apertados. O setor de TI está passando por uma grave escassez de pessoal, para que todos que possam escrever bem o código encontrem um emprego. Mas isso não significa que os graduados universitários e autodidatas sejam iguais. Eles têm pelo menos três diferenças:

  1. complexidade de tarefas
  2. valor do salário
  3. características do crescimento profissional.

A principal coisa que dá um treinamento para programadores em uma universidade especializada é a base do conhecimento fundamental. Nas especialidades de TI, os institutos estudam matemática, algoritmos, teoria das probabilidades, estatística matemática e muito mais que é necessário para resolver os problemas de programação mais complexos. E quanto mais difícil a tarefa, maior o salário.

Analista de Web
Analista de Web

Além disso, se uma pessoa tem conhecimento fundamental, ela aprende rapidamente novas tecnologias.

Apesar do rápido desenvolvimento, os princípios básicos da programação permanecem praticamente os mesmos, e um programador certificado pode recuperar rapidamente seu nível mesmo após um hiato de cinco anos.

Autodidata a esse respeito é muito mais difícil. Eles são forçados a passar não de princípios gerais a conclusões particulares, mas, na prática, tatear muitas conexões e padrões. Acontece que um desenvolvedor autodidata não sabe o que é uma integral, sem mencionar coisas mais complicadas.

Isso limita o leque de tarefas que ele é capaz de resolver; muitos projetos complexos, por exemplo, do campo de aprendizado de máquina , não estarão disponíveis para ele . Mas na programação há muitas tarefas que não exigem conhecimento especial, e muitas pessoas autodidatas trabalham com muito sucesso.

Profissionais com passado sombrio e futuro brilhante

Entre as centenas de desenvolvedores que trabalham em nossa empresa, há pessoas com formação universitária clássica, funcionários com ensino superior incompleto, graduados em faculdades técnicas e mais casos fora do padrão – exatamente as mesmas pessoas autodidatas.

Por exemplo, Alexei é um dos nossos desenvolvedores full-stack mais avançados que está na empresa há seis anos. Ao mesmo tempo, ele estudou em uma faculdade como mecânico de automóveis, depois se formou em um instituto pedagógico, tornou-se professor de física certificado, mas não foi à escola – começou a se envolver em programação. Ele trabalhou por um tempo em uma pequena empresa e depois veio até nós.

Agora, ele tem autoridade inquestionável na empresa, e ofereceu-lhe repetidamente uma posição de liderança, mas ele sempre se recusa, porque não está interessado. Ele quer escrever código, resolver problemas complexos.

Nosso outro desenvolvedor, Andrei, estudou em uma universidade em uma especialidade técnica, mas foi expulso após o primeiro semestre. Mudou vários trabalhos, até “Gazelle” de uma só vez dirigiu. Então, um amigo lhe mostrou a programação e ele se tornou viciado.

Leia mais  Como ser um Mestre Cervejeiro

Na educação, de fato, ele tem apenas uma escola e, às vezes, é difícil para ele sem conhecimento especializado, por exemplo, sem matemática superior. Mas o caráter ajuda – curioso, corrosivo, assíduo, consistente.

Uma vez, uma tarefa não trivial chegou até nós – criar um serviço da Web que interagisse com os usuários em tempo real, suportando centenas de milhares de conexões ao mesmo tempo.

Homem alterando código de programas
Homem alterando código de programas

O cliente se ofereceu para implementar o projeto na linguagem PHP, mas Andrey achou que era necessária uma tecnologia diferente aqui e não tinha medo de fazê-lo. Aprendi rapidamente as melhores práticas para esse tipo de tarefa, implantei várias amostras de teste e, finalmente, escolhi o idioma Erlang. O tempo mostrou que era a escolha certa, o cliente apreciou nossa recomendação.

Estes são os desenvolvedores sem ensino superior e existem muitos exemplos anti-entre os programadores que se formaram na universidade. Eu conhecia um bom especialista com um diploma, que trocava programação para a indústria da construção, onde naquela época havia muito dinheiro.

Em geral, nem todos os graduados da universidade são capazes de trabalhar em sua especialidade, e isso não é verdade apenas para a TI. Em cada instituto, em cada curso, existem os chamados “passageiros” que estudam em um nível moderado e têm pouco interesse na profissão. Quando estudei (Universidade Técnica do Estado de Ulyanovsk, Departamento de Engenharia da Computação), cerca de 30% deles estavam em nosso fluxo.

Eles estudam como programadores por várias razões: alguns são atraídos pelo prestígio da profissão, outros são forçados pelos pais, mas mesmo um diploma não fará de uma pessoa um desenvolvedor de primeira classe, se ele não quiser.

Ser, não parecer

Pelo exemplo das pessoas autodidatas, vê-se claramente que, para o desenvolvimento da profissão, as inclinações naturais são de grande importância. Eu destacaria quatro qualidades básicas que uma pessoa que deseja se tornar um desenvolvedor deve ter e que ela deve desenvolver desde o início e ao longo de sua vida.

Leia mais  Qual é a diferença entre desenvolvedores júnior, médio e sênior

Pensamento abstrato

O programador está constantemente lidando com abstrações – conceitos abstratos que não têm análogos diretos no mundo real. Construir as estruturas lógicas certas, uma classificação complexa de objetos – tudo isso requer um pensamento abstrato bem desenvolvido.

Sinais de que você desenvolveu um pensamento abstrato e não mais específico:

  • você pensa mais frequentemente em idéias e suposições do que em coisas reais e coisas dadas;
  • aprendendo novos fatos, você pensa sobre o significado oculto e as relações com outros fatos;
  • é mais fácil e mais interessante para você lembrar de padrões e relacionamentos do que fatos concretos díspares.

Pensamento Algorítmico

Essa é a capacidade de planejar suas ações alguns passos adiante, antecipar os resultados e decompor grandes tarefas em estágios separados. Essa qualidade é bem desenvolvida pelo xadrez e outras atividades que exigem estratégias de construção.

Tela de código
Tela de código

Sociabilidade

Mesmo pequenos projetos, como regra, não são realizados por conta própria, portanto o desenvolvedor precisa ser capaz de trabalhar em equipe: leve em consideração não apenas as suas próprias ações, mas também as de outras pessoas, avalie objetivamente e aceite as idéias de outras pessoas, não tenha medo de pedir ajuda.

Acredita-se que a maioria dos programadores seja introvertida, fechada e egoísta que não gosta de se comunicar. De fato, não é assim.

Nós preferem para formar uma equipe de introvertidos e, na prática, vemos que as pessoas deste tipo são capazes de se comunicar de forma muito eficaz: como questões precisamente formuladas, as respostas para evitar ambiguidades e informações desnecessárias.

Descrevendo a essência do problema, os introvertidos parecem se colocar no lugar de outra pessoa, para que ele entenda exatamente do que está falando. Isso permite que você não se comunique por muito tempo, e é por isso que o processo de produção sempre vence.

Perseverança

A qualificação do desenvolvedor depende não apenas do conhecimento, mas também da atenção, precisão e capacidade de concluir o trabalho. O código incorreto, mesmo que funcione, implica processos mais caros e complexos de suporte e controle. Para compensar o descuido dos desenvolvedores, as empresas são forçadas a realizar testes extensivos, revisões de código e complicar a organização dos processos de trabalho.

Por que os cursos não substituem o ensino superior

Em termos de significado e resultados, os cursos são muito diferentes das universidades. Não existem padrões educacionais como tais, e programas de treinamento são desenvolvidos com base na demanda do público. Isso vale para cursos pagos e gratuitos.

Aqui eles ensinam as coisas mais aplicadas que podem ser rapidamente monetizadas.

É por isso que existem tantos cursos no mercado “Como aprender a criar sites típicos em um dia” e nenhum curso, por exemplo, sobre teoria dos grafos e outras coisas fundamentais – ninguém os acompanha porque não permite que você comece a ganhar imediatamente.

Leia mais  Como montar um currículo moderno

Em relação aos cursos, eu daria três dicas.

Iniciar seu curso em programação com cursos não é uma boa ideia.

Se você está apenas começando a aprender uma especialidade, primeiro é melhor encontrar um livro ou tutoriais em vídeo e entender o básico da programação. Um entendimento de tantas coisas surgirá no processo: é realmente interessante para você quais áreas realmente atraem? Depois disso, você já pode tentar escolher por si mesmo cursos com foco e aplicação mais restritos.

Você precisa escolher cursos não por sinal, mas por conteúdo

A qualidade dos cursos depende muito do nível de professores, por isso é melhor ir para onde os programadores-praticantes ensinam – pessoas que trabalham 90% do tempo diretamente na área de assunto sobre a qual estão falando e têm casos relevantes.

Universidade ainda é preferível

Se for possível ir a uma universidade para obter uma especialidade de TI, e não para cursos, é melhor escolher uma universidade. No futuro, isso proporcionará salários mais altos (devido à capacidade de resolver problemas mais complexos, é claro, e não pelo fato do próprio diploma) e um domínio mais fácil do novo material.

Para programadores que já trabalham – com e sem diploma – para treinamento adicional, você pode aconselhar a participação em eventos especializados onde casos práticos são desmontados: DevConf, uma conferência de desenvolvedores de sistemas altamente carregados HighLoad ++ e alguns outros.

***

Portanto, hoje em dia, não é necessário um diploma universitário de TI para um programador, mas é desejável. Isso abre perspectivas mais amplas de carreira e salário, facilita o desenvolvimento profissional e permite fortalecer as competências de colegas com conhecimentos fundamentais.

Os empregadores prestam atenção ao nível de escolaridade do candidato? Sem dúvida. Mas não para apontar o programador para a porta sem um diploma, mas para lhe dar tarefas adequadas.

Fazemos exatamente isso: selecionamos uma tarefa de teste de acordo com o nível do candidato e, em seguida, solicitamos que você nos diga em detalhes como ele a executou. Isso permite que você veja o principal: o tipo de pensamento, atenção, o grau de envolvimento na profissão.

Obrigado por sua atenção e sucesso em sua carreira!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *