Prepwork(EAD)
Prepare-se para o bootcamp
Nessa fase, serão apresentados conceitos iniciais sobre programação por meio de EAD. Como o curso não apresenta pré-requisitos em programação, essa fase é essencial para o nivelamento de conhecimento entre todos os participantes, portanto, para iniciar o curso presencial, é necessário que o aluno tenha encerrado a fase prepwork. O curso em EAD tem duração de 30 a 40 horas e dá aos alunos um conhecimento básico de:
- Web 101 - como a rede funciona
- Terminal - comandos básicos
- Git - comandos básicos
- HTML / CSS - fundamentos
- JavaScript - fundamentos
- Mentalidade de startup - fluxo de trabalho técnico
Fundamentos
Objetivos
O objetivo neste módulo é ensinar a lógica de programação, ou seja, como construir algoritmos usando iterações, condições e operações matemáticas de leitura e de escrita de informações na memória do computador. Este conhecimento elementar é base para boa parte dos conceitos apresentados nos outros módulos.
Principais conceitos de programação
Nesse módulo, você irá aprender a escrever algoritmos manipulando variáveis, loops, condições e estruturas de dados como Array e Hash. Irá também aprender a analisar e armazenar dados de arquivos padrão (CSV, JSON, XML, HTML).
- Principais conceitos de programação
- Documentação de Ruby para as aulas
- Algoritmos & estrutura de dados (Array, Hash)
- Detectar padrões de texto com expressões regulares
- Analisar e armazenar dados em arquivos padrão (JSON, CSV, XML)
- Web scraping com Nokogiri
- Solicite e analise dados de APIs RESTful JSON
Arquitetura de software
- Estruture seu código com classes diferentes seguindo os princípios orientados a objetos. Assim como os arquitetos projetam um edifício, os programadores devem aprender a respeitar os padrões ao projetar um software.
- Principais conceitos de Programação Orientada a Objetos
- Classes, objetos e variáveis de instância
- Métodos de instâncias e de classes, herança de classes
- Interfaces públicas versus privadas
- Encaminhando solicitações de usuários
- Simulando um banco de dados com arquivos CSV
- Conhecimento profundo de MVC (Model View Controller)
Base de dados
Os softwares precisam armazenar informações em um banco de dados. Sem ele, por exemplo, o Facebook não teria como armazenar os dados dos usuários. Aprenda a projetar um banco de dados relacional e a construir consultas estruturadas em seu banco de dados usando o SQL.
- Design de Esquema de Base de Dados & SQL
- Relações "one-to-many", "many-to-many" e tabelas de ligação
- CRUD no SQL (criar, ler, atualizar e apagar)
- Consultas avançadas de ligação
- Conectando seu banco de dados ao Ruby com um ORM (Mapeamento Relacional de Objetos)
- Princípios básicos de Active Record: migrações e nomenclatura
- Princípios avançados de Active Record: associações e validação
Desenvolvimento Web
Objetivos
O objetivo deste módulo é ensinar ferramentas (frameworks) que proporcionam alta produtividade no desenvolvimento de aplicações web. Os frameworks de desenvolvimento de aplicações web são ferramentas que utilizam padrões de arquitetura e configuração pré-selecionados, restando ao desenvolvedor apenas escolher e configurar os módulos que pretende usar. No contexto da administração pública, faz sentido que os alunos sejam introduzidos a algum framework de desenvolvimento de aplicações web.
Fundamentos do Javascript
Aprenda ES6, a última versão do JavaScript, para adicionar um comportamento dinâmico ao seu site ou atualizar as páginas sem recarregar, graças ao AJAX.
- Fundamentos de JavaScript
- ES6 e suas diferenças com o ES5
- Ferramentas JavaScript (Babel, Webpack, yarn)
- Eventos DOM e AJAX
Construindo um Marketplace
Crie uma marketplace do zero em 5 dias. Você trabalhará em equipes para aprender a colaborar no Github usando pull requests e implementará seus aplicativos no Heroku, utilizando o mesmo fluxo de trabalho de startups bem-sucedidas.
- Colaborando em um aplicativo Rails com Git e Github
- Testando no Rails com Rspec
- Autenticação com Devise
- Omniauth e login com serviços de terceiros (Facebook, Linkedin, Spotify…)
Construindo interfaces web
Crie uma interface de usuário com design intuitivo e programe belos componentes e layouts, aplicando as técnicas de CSS mais recentes.
- Design de Produto, Princípios de UX e UI
- HTML (tags, id, classes, atributos)
- CSS (seletores, propriedades, organização dos estilos)
- Princípios de design intuitivo
- Técnicas de CSS com flexbox e CSS grid
Colocando em Prática
Construindo seu projeto final
Os projetos finais são o ponto alto do curso. Os alunos trabalham juntos para colocar em prática tudo o que aprenderam (e mais!): eles inventam, montam, projetam, programam e implementam um projeto original em equipes de 3 ou 4 pessoas durante um período de duas semanas.
- Necessidades e objetivos do usuário e proposta de valor exclusiva
- Prototipagem no Figma para testar a UX
- Dividindo tarefas em jornadas de usuário
- Programando uma aplicação web do zero
- Construa tudo! Do back-end à interface do usuário
- Implemente em um ambiente de produção