Objetivos
Transformar as experiências do aprendizado em experiências para a vida profissional. Uma maneira de concretizarmos essa ideia é criando atividades e projetos de aprendizagem que requerem habilidades no trabalho. Além disso, desafiamos os estudantes a serem solucionadores de problemas, colaboradores e iniciadores.
Principais conceitos de programação
- Utilize os componentes fundamentais de JavaScript para desenvolver programas e aplicações: Variáveis e Tipos de Dados, Condicionais, Laços de repetição (Loops), Objetos e Arrays, Funções, Escopo, Laços de Evento, DOM (Documento de Modelo de Objeto), Eventos e Classes.
- Desenvolva aplicações JavaScript utilizando conceitos de nível intermediário: Herança de Protótipo, Closure, palavra-chave `this`, Promessas e Async/await.
- Trabalhe com programação orientada à objeto baseado em JavaScript.
- Crie aplicações front-end utilizando conceitos e tecnologias como: HTML5, CSS3, JavaScript, Design Responsivo e React.
- Crie aplicações back-end utilizando conceitos e tecnologias como: NodeJS, ExpressJS, REST (Transferencia representacional de estado) APIs e MongoDB.
- Desenvolva aplicações full-stack utilizando uma variedade de técnicas e arquiteturas de software como: REST(Transferência representacional de estado), SPAs (Aplicação de página única) e Renderização do lado do servidor.
- Escreva queries no MongoDB para extrair informações de banco de dados e manipulá-los: configurar o banco de dados, implementar ações CRUD (Criar, Ler, Editar e Deletar) e referenciar documentos.
- Crie esquemas (schemas) e modelos para o banco de dados do MongoDB utilizando ODM (Documento Mapeador de Objetos).
- Implemente autenticação e autorização em uma aplicação web.
- Integre serviços de terceiros (APIs) com uma aplicação back-end ou front-end já existente em JavaScript.
- Utilize linhas de comando, Git, controle de versão, GitHub e o modelo de ramificação (branching) Gitflow para gerenciar e subir aplicações na web.
- Configurar um ambiente de testes e executar testes unitários.
- Subana web aplicações front-end e back-end para um serviço de nuvem.
- Escreva códigos modulares, limpos e eficientes seguindo as boas práticas: KISS, YAGNI, DRY e SOC.
- Utilize frameworks ágeis para gerenciamento de produtos: standups, retros, kanban, MVP, restrições vs escopo, etc, para garantir colaboração e bom fluxo de trabalho.