Requisitos para Front-End Engineer Básico:
- HTML (codificar uma estrutura básica)
- CSS ("codar" um layout, conseguir copiar algum site ou componente simples é um bom indicador do seu nível de conhecimento)
- Lógica de Programação (Aprender e entender como funcionam os algorítmos, variáveis, tipos de dados, estruturas de controle, de decisão e repetição, operadores aritméticos e etc)
- JavaScript (inserir um script em uma tela, utilizar libs, criar pequenas coisas)
- Tooling (você vai precisar de algo como o Webpack, GulpJS, NPM Scripts)
- Gerenciamento de dependências (NPM e Yarn)
- O básico de Responsive (aprenda a fazer um layout funcionar em múltiplos dispositivos)
- Git (e saber que Git e GitHub não são a mesma coisa!)
Não corra durante os estudos, pratique muito tudo o que você aprender até ter coragem de falar que sabe aquilo!
Caso você já domine essas coisas, talvez você já seja um(a) Front-End Engineer Intermediário!
Requisitos para Front-End Engineer Intermediário:
- HTML (entender sobre Semântica e Acessibilidade)
- Escalabilidade
- Manutenibilidade
- Padrões de Projetos aplicado ao JavaScript e ao CSS (básico, pelo menos)
- Conhece/trabalha com algum Framework CSS e JS
- Pré processadores CSS
- Sabe criar testes unitários
- Entende alguns paradigmas de programação (Ex.: OOP e/ou Funcional)
- Atende aos múltiplos navegadores e suas diferenças
- Criar um ambiente de desenvolvimento ou um Boilerplate para iniciar seus projetos facilmente
- Domina suas ferramentas de trabalho (Editor, S.O., etc)
- Performance (tanto do JavaScript, quanto do CSS, sim do CSS)
- SEO (estruturação do HTML, resolver a listinha do PageSpeed, Schema.org)
Se você já domina tudo isso, então você deve estar no nível Avançado ou chegando lá.
Requisitos para Front-End Engineer Avançado:
- Domina os Paradigmas de Programação e boas práticas com JavaScript
- Entende os problemas e limitações do JavaScript, CSS e HTML
- Consegue criar aplicações 100% com JavaScript e deployar
- Consegue conversar de igual para igual com um Dev Back-End
- Domina os Padrões de Projetos
- Domina pré-processadores e metodologias CSS (como BEM, SMACSS, Atomic ou outras) e boas práticas
- Domina Performance no Front-End
- Entende a importância da Integração Contínua
- Domina testes unitários
- Domina os fluxos de trabalho com Git
- Você entende os custos ($$$) do Front-End (Arquitetura, o que problemas na interface podem gerar negativamente para uma empresa, etc)
- Domina o ambiente do navegador (Render, Painting e etc).
- Entende sobre o protocolo HTTP e o que o cerca ( Segurança, three-way handshake do TCP, como funciona uma requisição)