An open API service indexing awesome lists of open source software.

https://github.com/concretesolutions/front-end-guide


https://github.com/concretesolutions/front-end-guide

Last synced: 6 months ago
JSON representation

Awesome Lists containing this project

README

          

# Níveis de carreira de um(a) Front-End Engineer

## Front-End Engineer Básico

Requisitos para Front-End Engineer Básico:

* HTML (codificar uma estrutura básica)
* CSS (["codar" um layout](http://pt-br.learnlayout.com/), 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](https://webpack.github.io/), [GulpJS](http://gulpjs.com/), [NPM Scripts](https://docs.npmjs.com/misc/scripts))
* Gerenciamento de dependências ([NPM](https://npmjs.org/) e [Yarn](https://yarnpkg.com/pt-BR/))
* O básico de Responsive (aprenda a fazer um layout funcionar em múltiplos dispositivos)
* Git (e saber que [Git](https://git-scm.com/) e [GitHub](http://github.com/) 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**!

## 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](https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/), quanto do CSS, [sim do CSS](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_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á.

## Front-End Engineer Avançado

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)