Como se tornar um desenvolvedor web em 2017 é uma pergunta cada vez mais complicada de responder. De um lado temos a universidade e os cursos da ciência da computação, de outro os autodidatas que se aventuram online para aprender esse ofício.

Nesse artigo trago tanto minha experiência quanto recursos de outras pesquisas para ajudar a responder essa questão. Me inspirei muito no artigo de Kamran Ahmed e também do vídeo do Leancode.academy. Também trouxe algumas de minhas experiências dos últimos 6 anos na área para tentar deixar mais claro o caminho que alguém hoje tem que passar para ser um desenvolvedor web.

Muitas pessoas quando veem gráficos iguais aos que vou adicionar abaixo ficam meio confusas ou mesmo achando que é algo excessivo. Contudo, gostaria que olhasse como um currículo para um curso de desenvolvimento de websites. Explico na primeira parte aqui sobre o por quê das universidades não serem uma boa alternativa e da necessidade de guias como esse para orientar autodidatas.

Por que a universidade não é uma opção

Eu me formei em Relações Internacionais e logo em seguida entrei para a faculdade de Ciência da Computação. Apesar de adorar os conteúdos e ter notas excelentes eu não durei mai de 8 meses nesse novo curso e vou explicar um pouco as razões por trás disso.

Nenhum curso consegue acompanhar

Todo curso de uma universidade precisa de muito planejamento, organização de professores e dependência de questões legais para que seus currículos sejam estruturados. Se por um lado isso é bom para garantir uma formação respaldada por instituições reguladoras, é impraticável para uma área como a do desenvolvimento web.

Vamos pensar o seguinte. Um curso normalmente tem 4 anos. Quando você entra para a faculdade já sabe quais serão as disciplinas possíveis de serem cursadas e tem uma ideia do que irá aprender. Contudo, um website que criei há 4 anos atrás com as tecnologias mais avançadas e atuais daquela época hoje está completamente atrasado e de difícil manutenção.

A velocidade com que a área de desenvolvimento web cresce e se modifica hoje é imensa e se alguém entrasse numa universidade hoje - mesmo com um currículo 100% atualizado -, entraria em um mercado com déficit de conhecimento nas tecnologias mais atuais.

Conceitos amplos

Todo curso universitário é mais abrangente do que o ofício em si. Isso é algo muito bom pois faz os alunos aprenderem mais sobre o mundo, áreas adjacentes e também metodologias de pesquisa.

Ao mesmo tempo, em geral falta um aprofundamento naquilo que define o sucesso de um programador -> “capacidade de se virar”.

Por mais que ter tudo mastigado por um professor seja bom para o aprendizado, um bom desenvolvedor web terá que saber pesquisar por soluções e novos aprendizados sozinho. Essa habilidade não é muito incentivada em uma boa parte das universidades. Naturalmente estou falando aqui do meu ponto de vista, minhas experiências e minhas pesquisas com outras pessoas.

Se a sua experiência for diferente, não deixe de comentar aqui no artigo e contar.

Não existe curso universitário de desenvolvimento web

Até onde eu saiba e consegui pesquisar não existe uma faculdade de desenvolvimento de webistes. Os cursos da ciência da computação são voltados para o desenvolvimento de softwares e, na maior parte dos casos, foca em linguagens como Java para ensinarem seus alunos a lógica da programação.

Não há problema nenhum nisso. Inclusive é possível usar Java em aplicações web. Mas essa é só a ponta do iceberg e é uma ponta que não está apontando para o futuro da web.

Existem disciplinas voltadas para a web, mas no final das contas aprendemo somente o básico de HTML, CSS e JavaScript.

O ambiente de desenvolvimento de websites é muito diferente do de softwares tradicionais e mesmo que a lógica da programação seja a mesma, é ainda um caminho um tanto quanto longo para sair de um para o outro.

Eu acho que o papel da universidade é muito importante, mas para quem quer se tornar um desenvolvedor web talvez o caminho autodidata seja mais apropriado.

O caminho autodidata

Então se a universidade não serve, ser autodidata vai ser mais fácil? Não necessariamente, mas talvez mais rápido.

Indo direto ao ponto, se você buscar aprender sozinho como ser um desenvolvedor web estará mais focado no que realmente importa e poderá se desenvolver no ofício com mais agilidade.

Deixo claro que estou focando apenas nas habilidades necessárias para ser um bom programador de websites e não um bom profissional. Ser um bom profissional envolve muitas outras habilidades adjacentes como trabalhar em grupo, saber lidar com relações interpessoais, dedicação, se importar com o trabalho, etc. Algumas dessas habilidades podem ser desenvolvidas nas universidades, mas no final das contas são elementos que cada um de nós precisa buscar, ser humilde e se abrir para eles.

A vantagem do caminho autodidata

Ser autodidata não é uma condição nata do ser humano. É uma habilidade que, mesmo que alguns tenham mais facilidade, pode ser aprendida e aperfeiçoada por qualquer um.

Como toda habilidade, ela exige muita dedicação e treino. Mas o retorno é incrivelmente vantajoso. Quando você é autodidata - principalmente nessa geração que estamos com o acesso à praticamente qualquer informação online - pode aprender inúmeros ofícios sem precisar de investimentos grandes.

Ao invés de pagar mil reais em uma mensalidade de um curso presencial, você pode pagar 100 ou mesmo não pagar nada e ter acesso aos conhecimentos. Muitas universidades já gravam seus cursos e disponibilizam online gratuitamente e existem outras empresas especializadas que possuem seus próprios cursos.

Aliando essa capacidade de aprender sozinho com um caminho claro do que deve estudar, temos um desenvolvimento focado, objetivo e rápido do (no nosso caso) desenvolvimento web.

O desafio do caminho autodidata

Pensando no meu próprio caminho de aprendizado autodidata, os dois maiores desafios são:

  1. Persistência/disciplina

  2. Saber o que aprender

A parte da disciplina eu posso ajudar com alguns desses artigos aqui no blog:

Porém, disciplina e persistência é uma luta diária contra a procrastinação. A internet é um mar de possibilidades para distrair a cabeça, então aprender algumas técnicas de foco e bloqueio de distrações pode ajudar muito aqui.

Já com relação ao que aprender é que esse artigo irá ser mais útil. Quando eu comecei a fazer websites eu não tinha ideia de por onde começar. Fui até o YouTube para ver alguns cursos, li artigos, fiz cursos online no Lynda, Udemy e outros e até participei de fóruns para fazer perguntas.

Mesmo assim a cada novo conteúdo que eu assistia ou lia vinham 10 novos impedimentos. Quando digo impedimento me refiro a algum tipo de conceito, conhecimento ou habilidade que eu ainda não tinha e precisava me aprofundar mais.

Por exemplo, quando criei meu primeiro “Hello World” eu resolvi subir para um servidor que adquiri, mas rapidamente me deparei com o conceito de DNS e fiquei totalmente perdido. Deixei meu código de lado e fui estudar sobre como direcionar o domínio que tinha comprado para meu servidor e somente então conseguir visualizar meu programa no navegador.

É nesse ponto em específico que abaixo juntei várias fontes na criação de um diagrama de caminhos que podemos seguir para tornarmos desenvolvedores web. Passo por conceitos que precisamos aprende numa ordem que faz mais sentido do que simplesmente igual eu fiz: “na raça”.

Como se tornar um desenvolvedor web em 2017

Vamos então aos caminhos! Dividi aqui em 4 seções e cada uma também tem suas divisões. Podemos então dividir o aprendizado do desenvolvimento web nas seguintes categorias:

  1. Básico para qualquer caminho

  2. Front-end

  3. Back-end

  4. DevOps

Legenda

Nas imagens abaixo as cores significam o seguinte:

  • Azul: Os caminhos principais

  • Vermelho: Os conhecimentos e conceitos recomendados

  • Rosa: As opções dentro dos conceitos

  • Amarelo: Os conhecimentos e conceitos facultativos

  • Estrela: Minha recomendação pessoal

O diagrama completo pode ser acessado por esse link.

1- Básico para qualquer caminho

Independentemente de qual área você quer se especializar, existem alguns conceitos e conhecimentos que todos precisamos saber.

2- Front-end

O caminho do Front-end é para quem quer mexer com o layout e a parte visual do site. Profissionais front-end lidam com a criação de estruturas em HTML, CSS e JavaScript.

Tradicionalmente esse era um papel bem mais operacional e manual do que lógico e intelectual, mas atualmente a história mudou e quem trabalha com a parte da frente também está responsável pela lógica e funcionalidades dos sites e aplicações web.

Front-end básico

Front-end intermediário

Front-end avançado

3- Back-end

O caminho do Back-end é para aqueles que gostam de criar funcionalidades, lógica de programação, banco de dados e a estrutura dos sites e aplicativos. Quem lida com essa área normalmente precisa de um aprofundamento maior nos conceitos e funcionalidades de das linguagens escolhidas para se programar.

Aqui temos uma variedade maior de opções pois podemos escolher entre diversos tipos de linguagens para programar. No cado do Front-end os navegadores apenas entendem HTML, CSS e JavaScript, mas no servidor - onde o código do back-end roda - uma infinidade de linguagens podem não só existir mas co-existir.

Back-end básico

Primeiro temos os conceitos e conhecimentos mais básicos.

Em seguida a escolha da linguagem de programação. Nessa primeira imagem temos as linguagens compiladas e funcionais.

Agora dentro das linguagens de script. Também conhecidas como de alto nível. Na primeira imagem Node.js e Ruby.

E para finalizar Python e PHP.

Back-end intermediário

Back-end avançado

4- DevOps

O nome DevOps vem de desenvolvimento e operações. Quem quer entrar nesse ramo é interessante chegar até o nível intermediário do Back-end pois muitos dos conhecimentos são comuns e irão ajudar muito no processo.

DevOps é uma área mais complexa e voltada para a configuração dos servidores e ambientes de desenvolvimento para receber e escalar aplicações online. Se você consegue abrir um site como o Facebook em alta velocidade, uma boa parcela da responsabilidade é de quem fez a configuração dos clusters de máquinas para receber tantos usuários de uma só vez.

Os conhecimentos aqui são muito técnicos e é preciso que os fundamentos estejam muito claros.

DevOps básico

DevOps intermediário

Aqui eu já não possuo muitas opiniões ou conhecimento, então aproveitei de recursos externos para construir esse diagrama.

DevOps avançado

A partir daqui não tenho conhecimento nem para construir o diagrama. Essa área fica um tanto quanto “cabeluda” nos níveis mais próximos da máquina para que as otimizações de sistemas sejam adequadas.

Conclusão

Acho que vale a pena reforças que esses diagramas servem como aqueles currículos ou planos de disciplinas nas universidades. São muitos conceitos e muitas matérias, mas é como se fossem o curso inteiro.

Alguns itens são bem simples, outros necessitam de muitas horas, dias e até meses para serem compreendidos completamente. Além disso, é importante dizer que nem tudo precisa ser entendido perfeitamente. Exatamente por isso que dividi entre básico, intermediário e avançado.

Como básico já é possível criar websites e aplicações, mas quanto mais aprofundar, melhor e mais eficiente o código será. No básico você vai fazer uma funcionalidade com, por exemplo, 100 linhas de código. No avançado pode ser que consiga o mesmo resultado com 10.

Espero que tenha gostado e que sirva de inspiração e guia para seu aprendizado.

Divirta-se!