School of Developers

Becoming a Modern Software Engineer

Aprenda a desenvolver aplicações duradouras e que entreguem valor. Da agilidade aos padrões arquiteturais, refatoração e testes efetivos.

PRAZO PARA INSCRIÇÃO

29/11/2021

    • 0 DIAS
    • 0 HRS
    • 0 MIN
    • 0 SEG
Em colaboração com
O que você vai aprender

Fluxo completo e automatizado de desenvolvimento de software iterativo e incremental
.

Avance em competências de desenvolvimento iterativo e incremental de aplicações na nuvem, utilizando testes efetivos para longevidade do software, com técnicas de refatoração, padrões de arquitetura e CI/CD baseados nas melhores práticas do mercado internacional.

Módulo 1: Introdução e Processo de Aprendizagem

Aprimore o seu processo de aprendizado compreendendo como o seu cérebro funciona e as principais técnicas que vão transformar a forma de encarar os seus novos desafios de conhecimento.

Módulo 2: Agilidade e Melhores Práticas

Explore as melhores técnicas para desenvolver aplicações com agilidade e entenda a importância da computação em nuvem, refatoração de código e microsserviços para garantir que o desenvolvimento de software seja sempre iterativo, incremental e que realmente entregue valor.

Projeto: Inserindo a cultura ágil no seu time/empresa

Módulo 3: Padrões Arquiteturais e Melhores Práticas

Aprenda como pensar arquiteturalmente e domine os diferentes padrões e camadas de arquitetura, rotas, controladores, comunicação entre microsserviços e quais são as preocupações na hora de transformar um monolito em microsserviços.

Módulo 4: Desenvolvendo na Prática Aplicações Escaláveis na Nuvem

Saiba como projetar uma API REST, construir e fazer o deploy de um monolito na nuvem. Desenvolva habilidades para transformar um monolito em microsserviços.

Projeto: Desenvolvendo novas funcionalidades com microsserviços

Módulo 5: Modelagem de Domínio (DDD), Requisitos (BDD e User stories) e Testes Efetivos (TDD)

Compreenda o levantamento ágil de requisitos e aprenda na prática o uso de BDD e modelagem de domínio (DDD) para definir o comportamento do sistema. Domine a prática de TDD para desenvolver testes efetivos que garantam a longevidade do código.

Projeto: Do domínio aos requisitos e testes

Módulo 6: Refatoração e Design Patterns para Aplicações Duradouras

Saiba como tratar código legado, refatorar e aplicar princípios de design patterns para evolução da arquitetura e qualidade do código.

Projeto: Refatorando sua aplicação

Módulo 7: DevOps para quem Desenvolve Software

Aprenda a construir e monitorar pipelines de integração e deployment contínuos (CI/CD). Automatize o fluxo de construção, testes e deployment de aplicações para que o desenvolvimento iterativo e incremental de software realmente funcione.

Projeto: Automatizando tudo

Todos os nossos cursos incluem:

Instrutores
.

Joseph Yoder (EUA)
Founder - Refactory, Inc

Referência mundial em arquitetura de software e desenvolvimento ágil. Prestou consultoria para empresas como Cisco, Nubank, PagSeguro, Motorola, entre outras, ajudando-os a refatorar sistemas complexos e aplicar a cultura ágil.

Saulo Toledo (Noruega)
PhD Candidate - University of Oslo

+ de 14 anos de experiência com engenharia web, arquitetura e liderança técnica em times ágeis. É candidato a Ph.D. em Informática pela Universidade de Oslo, onde estuda dívidas técnicas em microsserviços para empresas de grande porte.

Luana Oliveira
QA Engineer - PagSeguro

+ de 8 anos de experiência em conceitos e técnicas de teste como: partição de equivalência, análise do valor limite e testes exploratórios. Apaixonada por automação com foco em testes de integração de aceitação.

Pamela Peixinho
Senior Software Engineering Manager - QuintoAndar

Coordena gestores para garantia de qualidade técnica da arquitetura e código na produção de aplicações resilientes, escaláveis e simples de manter.

Luciano Holanda
Senior Software Engineering Manager - QuintoAndar

Experiência em desafios de design de sistemas, infraestrutura, performance na web e construção de experiências de usuário. Lidera times com o desafio de escalar software e produtos com qualidade.

Eduardo Guerra (Itália)
Scientific Researcher - University of Bozen-Bolzano

Pesquisador na área de desenvolvimento de frameworks, design e arquitetura de software e metodologias ágeis. Sua missão é empregar criatividade unida à excelência técnica, na busca de melhores formas para desenvolver software.

Thales Carvalho
Head of Product - ITuring

+ de 8 anos de experiência em educação, gestão de produto e desenvolvimento de software. Aplicar técnicas de engenharia de software para produtos e serviços que evoluem rápido, de forma consistente e com escala, sempre foi sua grande paixão.

Perguntas frequentes sobre o curso
.

Porque eu deveria me inscrever?

Este é um curso para quem quer atingir um nível de maturidade de desenvolvimento de software. Seu foco não é apenas o ensino da técnica, mas, sim, em desenvolver os profissionais para uma visão macro, para que compreendam como funciona o mercado na prática, a rotina de trabalho de empresas modernas, o ferramental (arquitetura) e os conceitos.

O desenvolvimento de software evoluiu muito nas últimas décadas. As empresas de tecnologia não demandam apenas profissionais que saibam programar em uma linguagem X ou Y ou que dominam alguns frameworks. Hoje, é importante que os engenheiros de software compreendam o negócio em que estão inseridos e sejam capazes de trazer impacto no produto por meio de um desenvolvimento de software com agilidade, que seja capaz de atender às mudanças e aumento de escala. É exatamente isso que este curso oferece.

Portanto, este curso é para aqueles que querem ser um engenheiro de software completo, não apenas de alta capacidade técnica, mas também com visão para o negócio, o produto e a meta principal de realmente entregar valor ao usuário por meio de um software desenvolvido com agilidade e, principalmente, qualidade.

Para quais carreiras esse curso irá me preparar?

Este curso é uma preparação para te ajudar a conquistar uma vaga de maior senioridade em desenvolvimento ou engenharia de software. Ele foi pensado para desenvolvedores juniors ou plenos, que buscam evolução na carreira e desejam trazer mais impacto nos negócios e produtos (ou serviços) no qual atuam.

Os cursos são em português?

Todas as nossas aulas serão em português ou, em caso de professor estrangeiro, legendadas em português. Apesar disso, alguns materiais complementares e termos técnicos utilizados durante as aulas serão em inglês. Sendo assim, um nível intermediário da língua pode ajudar na compreensão de alguns materiais.

O que vou precisar para fazer este curso em termos de hardware e software?

Software:

  • Um editor de código / texto, como vim, Sublime Text, Atom ou VSCode

  • Um navegador web

  • Uma interface de linha de comando, como Terminal (Mac ou Linux) ou Git Bash (no Windows)


Hardware:

  • Computador com macOS, Windows, ou Linux, com mínimo de 4GB de RAM e conexão com a internet.

Pré-requisitos
.

Domínio de programação de computadores

É necessário domínio de linguagem de programação imperativa (ex: C, JavaScript, Python, Java, Ruby etc), experiência com estruturas de dados, estruturas condicionais e de repetição (if, while etc), definir funções, métodos, objetos e classes. Orientação a objetos e/ou programação funcional também são conhecimentos relevantes para este curso.

Noções básicas de desenvolvimento de interfaces

Para o acompanhamento do Nanodegree, você precisa conhecer sobre HTML, CSS e JavaScript, saber como funciona JavaScript assíncrono (Ajax) e como usar frameworks de front-end (React, Angular, Vue, etc).

Noções básicas de desenvolvimento de aplicações para internet

É preciso conhecer uma arquitetura MVC, como funciona o HTTP e o padrão cliente-servidor. Saber que é uma API e ter trabalhado de alguma forma com bancos de dados, entender conceitos de computação na nuvem e pra que serve frameworks de back-end (Django, Spring, Express.JS, .NET, etc).

Avaliação dos estudantes

Alan Santos

"Conteúdo muito bom! Os tópicos das aulas são bem fundamentados e contextualizados. Para mim, o formato Project-based learning é ótimo para fixar o aprendizado."

William Schwaab

"Conteúdo de alta qualidade com foco no mercado de trabalho atual. Os projetos estimulam a resolução de problemas abordando situações reais e estão me ajudando a desenvolver novas habilidades e me preparando para desafios maiores!"

inscreva-se

Estude no ITuring
.

Instituto de Tecnologia para carreiras digitais em alta demanda.

CONHEÇA NOSSOS CURSOS

Instituto de Tecnologia para carreiras digitais em alta demanda.