Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


Formação Consultor Java

É um curso com os 3 mais reconhecidos módulos de Java do mercado:

Ao término dessas 100 horas de curso, divididos em 3 módulos, você estará capacitado a desenvolver sistemas para web usando Java com os padrões, bibliotecas e frameworks mais reconhecidos pelo mercado, além de desenvolver para desktop usando Swing e conhecer os poderosos recursos do Eclipse 3 e seus plugins.

Um curso completo com os nossos qualificados instrutores, a um preço acessível com facilidade de pagamento. Entre em contato conosco, você também pode conversar diretamente com um dos instrutores.

Faça já sua reserva

Informações

Carga Horária: 100 horas aula

Pré-requisitos: lógica de programação e conhecimento de alguma linguagem procedural (visual basic, delphi, c, php, etc)

Conteúdo detalhado do FormacaoJava

Como Aprender Java

  1. O que é realmente importante?
  2. Sobre os exercícios
  3. Tirando dúvidas
  4. Bibliografia

O que é Java

  1. Java
  2. Máquina Virtual
  3. Java lento? Hotspot e JIT
  4. Versões do Java... e a confusão do Java2
  5. JVM? JRE? JDK?
  6. Onde usar e os objetivos do Java
  7. Especificação versus implementação
  8. Como o FJ-11 está organizado
  9. Compilando o primeiro programa
  10. Executando seu primeiro programa
  11. O que aconteceu?
  12. E o bytecode?
  13. Exercícios: Modificando o Hello World
  14. O que pode dar errado?
  15. Um pouco mais...
  16. Exercícios adicionais

Variáveis primitivas e Controle de fluxo

  1. Declarando e usando variáveis
  2. Tipos primitivos e valores
  3. Exercícios: Variáveis e tipos primitivos
  4. Discussão em aula: convenções de código e código legível
  5. Casting e promoção
  6. O If-Else
  7. O While
  8. O For
  9. Controlando loops
  10. Escopo das variáveis
  11. Um bloco dentro do outro
  12. Um pouco mais...
  13. Exercícios: Fixação de sintaxe
  14. Desafios: Fibonacci

Orientação a objetos básica

  1. Motivação: problemas do paradigma procedural
  2. Criando um tipo
  3. Uma classe em Java
  4. Criando e usando um objeto
  5. Métodos
  6. Métodos com retorno
  7. Objetos são acessados por referências
  8. O método transfere()
  9. Continuando com atributos
  10. Para saber mais: Uma Fábrica de Carros
  11. Um pouco mais...
  12. Exercícios: Orientação a Objetos
  13. Desafios
  14. Fixando o conhecimento

Um pouco de arrays

  1. O problema
  2. Arrays de referências
  3. Percorrendo uma array
  4. Percorrendo uma array no Java 5.0
  5. Exercícios: Arrays
  6. Um pouco mais...
  7. Desafios
  8. Testando o conhecimento

Modificadores de acesso e atributos de classe

  1. Controlando o acesso
  2. Encapsulamento
  3. Getters e Setters
  4. Construtores
  5. A necessidade de um construtor
  6. Atributos de classe
  7. Um pouco mais...
  8. Exercícios: Encapsulamento, construtores e static
  9. Desafios

Orientação a Objetos – herança, reescrita e polimorfismo

  1. Repetindo código?
  2. Reescrita de método
  3. Invocando o método reescrito
  4. Polimorfismo
  5. Um outro exemplo
  6. Um pouco mais...
  7. Exercícios: Herança e Polimorfismo
  8. Dicussões em aula: Alternativas ao atributo protected

Eclipse IDE

  1. O Eclipse
  2. Apresentando o Eclipse
  3. Views e Perspective
  4. Criando um projeto novo
  5. Criando o main
  6. Rodando o main
  7. Pequenos truques
  8. Exercícios: Eclipse
  9. Discussão em aula: Refactoring

Orientação a Objetos – Classes Abstratas

  1. Repetindo mais código?
  2. Classe abstrata
  3. Métodos abstratos
  4. Aumentando o exemplo
  5. Para saber mais...
  6. Exercícios: Classes Abstratas
  7. Desafios

Orientação a Objetos - Interfaces

  1. Aumentando nosso exemplo
  2. Interfaces
  3. Dificuldade no aprendizado de interfaces
  4. Exemplo interessante: conexões com o banco de dados
  5. Um pouco mais...
  6. Exercícios: Interfaces
  7. Exercícios avançados opcionais
  8. Discussão em aula: Favorecer composição em relação à herança

Controlando os erros com Exceções

  1. Motivação
  2. Exercício para começar com os conceitos
  3. Exceções de Runtime mais comuns
  4. Outro tipo de exceção: Checked Exceptions
  5. Um pouco da grande famíla Throwable
  6. Mais de um erro
  7. Lançando exceções
  8. O que colocar dentro do try?
  9. Criando seu próprio tipo de exceção
  10. Para saber mais: finally
  11. Exercícios: Exceções
  12. Desafios
  13. Discussão em aula: catch e throws em Exception

Pacotes - Organizando suas classes e bibliotecas

  1. Organização
  2. Diretórios
  3. Import
  4. Acesso aos atributos, construtores e métodos
  5. Usando o Eclipse com pacotes
  6. Exercícios: Pacotes

Ferramentas: jar e javadoc

  1. Arquivos, bibliotecas e versões
  2. Gerando o jar pelo Eclipse
  3. Javadoc
  4. Gerando o Javadoc
  5. Exercícios: Jar e Javadoc

O pacote java.lang

  1. Pacote java.lang
  2. Um pouco sobre a classe System
  3. java.lang.Object
  4. Casting de referências
  5. Métodos do java.lang.Object: equals e toString
  6. Integer e classes wrappers (box)
  7. Autoboxing no Java 5.0
  8. java.lang.String
  9. java.lang.Math
  10. Exercícios: java.lang
  11. Desafio
  12. Discussão em aula: O que você precisa fazer em Java?

Pacote java.io

  1. Conhecendo uma API
  2. Orientação a objetos
  3. InputStream, InputStreamReader e BufferedReader
  4. Lendo Strings do teclado
  5. A analogia para a escrita: OutputStream
  6. Uma maneira mais fácil: Scanner e PrintStream
  7. Um pouco mais...
  8. Exercícios: Java I/O
  9. Discussão em aula: Design Patterns e o Template Method

Collections framework

  1. Arrays são trabalhosos, utilizar estrutura de dados
  2. Listas: java.util.List
  3. Listas no Java 5.0 com Generics
  4. A importância das interfaces nas coleções
  5. Ordenação: Collections.sort
  6. Exercícios: Ordenação
  7. Conjunto: java.util.Set
  8. Principais interfaces: java.util.Collection
  9. Percorrendo coleções no Java 5
  10. Para saber mais: Iterando sobre coleções com java.util.Iterator
  11. Mapas - java.util.Map
  12. Para saber mais: Properties
  13. Para saber mais: Equals e HashCode
  14. Para saber mais: Boas práticas
  15. Exercícios: Collections
  16. Desafios

Programação Concorrente e Threads

  1. Threads
  2. Escalonador e trocas de contexto
  3. Garbage Collector
  4. Para saber mais: problemas com concorrência
  5. Para saber mais: Vector e Hashtable
  6. Um pouco mais...
  7. Exercícios
  8. Exercícios avançados de programação concorrente e locks

E agora?

  1. Exercício prático
  2. Certificação
  3. Web
  4. Revistas
  5. Grupos de Usuários
  6. Falando em Java - Próximos módulos

Apêndice - Sockets

  1. Motivação: uma API que usa os conceitos aprendidos
  2. Protocolo
  3. Porta
  4. Socket
  5. Servidor
  6. Cliente
  7. Imagem geral
  8. Exercícios: Sockets
  9. Desafio: Múltiplos Clientes
  10. Desafio: broadcast das mensagens
  11. Solução do sistema de chat

Apêndice - Instalação do Java

  1. Escolhendo a VM
  2. Instalando no Ubuntu e outros Linux
  3. No Mac OS X e Solaris
  4. Instalação do JDK em ambiente Windows

Tornando-se um desenvolvedor pragmático

  1. O que é realmente importante?
  2. A importância dos exercícios
  3. Tirando dúvidas
  4. Mais bibliografia
  5. Para onde ir depois?

O modelo da bolsa de valores, datas e objetos imutáveis

  1. A bolsa de valores
  2. Candlesticks: O Japão e o arroz
  3. O projeto Tail
  4. O projeto Argentum: modelando o sistema
  5. Palavra chave final
  6. Imutabilidade de objetos
  7. Trabalhando com datas: %%Date%% e %%Calendar%%
  8. Exercícios: o modelo do Argentum
  9. Exercícios: fábrica de Candlestick
  10. Exercícios opcionais

Testes Automatizados

  1. Nosso código está funcionando corretamente?
  2. Exercícios: testando nosso modelo sem frameworks
  3. Definindo melhor o sistema e descobrindo mais bugs
  4. Testes unitários
  5. JUnit
  6. Anotações
  7. JUnit 4 e suas anotações
  8. Test Driven Development - TDD
  9. Exercícios: migrando os testes do main para JUnit
  10. Exercícios: novos testes
  11. Para saber mais: Import Estático
  12. Mais exercícios opcionais
  13. Discussão em aula: testes são importantes?

Trabalhando com XML

  1. Os dados da bolsa de valores
  2. XML
  3. Lendo XML com Java de maneira difícil, o SAX
  4. XStream
  5. Exercícios: Lendo o XML
  6. Exercícios: Separando os candles
  7. Exercícios opcionais
  8. Discussão em aula: Onde usar XML e o abuso do mesmo

Interfaces gráficas com Swing

  1. Interfaces gráficas em Java
  2. Portabilidade
  3. Look And Feel
  4. Componentes
  5. Começando com Swing - Diálogos
  6. Exercícios: Escolhendo o XML com JFileChooser
  7. Componentes: JFrame, JPanel e JButton
  8. O design pattern Composite: Component e Container
  9. Tratando eventos
  10. Classes internas e anônimas
  11. Exercícios: nossa primeira tela
  12. JTable
  13. Implementando um TableModel
  14. Exercícios: Tabela
  15. Formatando Datas: DateFormat
  16. Exercícios: formatação
  17. Para saber mais
  18. Discussão em sala de aula: Listeners como classes top level, internas ou anônimas?

Refatoração: os Indicadores da bolsa

  1. Análise Técnica da bolsa de valores
  2. Indicadores Técnicos
  3. As médias móveis
  4. Exercícios: criando indicadores
  5. Refatoração
  6. Exercícios: Primeiras refatorações
  7. Nossos indicadores e o design pattern Strategy
  8. Exercícios: refatorando para uma interface e usando bem os testes
  9. Exercícios opcionais
  10. Discussão em aula: quando refatorar?

Gráficos com JFreeChart

  1. JFreeChart
  2. Utilizando o JFreeChart
  3. Isolando a API do JFreeChart: baixo acoplamento
  4. Para saber mais: Design Patterns Factory Method e Builder
  5. Exercícios: JFreeChart
  6. Exercícios opcionais
  7. Indicadores mais Elaborados e o Design Pattern Decorator
  8. Exercícios: Indicadores mais espertos e o Design Pattern Decorator
  9. Desafio: Imprimir Candles
  10. Desafio: Fluent Interface

Mais Swing: layout managers, mais componentes e detalhes

  1. Gerenciadores de Layout
  2. Layout managers mais famosos
  3. Exercícios: usando layout managers
  4. Integrando JFreeChart
  5. Exercícios: completando a tela da nossa aplicação
  6. Input de dados formatados: Datas
  7. Exercícios: filtrando por data
  8. Para saber mais: barra de menu
  9. Exercícios opcionais: escolher os indicador(es) para o gráfico
  10. Discussão em sala de aula: uso de IDEs para montar a tela

Reflection e Annotations

  1. Por que Reflection?
  2. Reflection: Class, Method
  3. Usando anotações
  4. Usar JTables é difícil
  5. Criando sua própria anotação
  6. Lendo anotação com Reflection
  7. TableModel com Reflection
  8. Exercícios: ReflectionTableModel
  9. Para saber mais: Formatter, printf e String.format
  10. Exercícios opcionais
  11. Discussão em sala de aula: quando usar reflection, anotações e interfaces

Apêndice: O processo de Build: Ant e Maven

  1. O processo de build
  2. O Ant
  3. Exercícios com Ant
  4. O Maven
  5. O Project Object Model
  6. Plugins, goals e phases
  7. Exercícios: build com o Maven
  8. Discussão em sala de aula: IDE, ant ou Maven?

Apêndice - Swing Avançado

  1. Dificuldades com Threads e concorrência
  2. SwingWorker
  3. Exercícios: resolvendo concorrência com SwingWorker
  4. Para saber mais: A parte do JFreeChart

Apêndice - Logging com Log4j

  1. Usando logs - LOG4J
  2. Exercícios: Adicionando logging com Log4J

Enfrentando o Java na Web

  1. O grande mercado do Java na Web
  2. Bibliografia

Bancos de dados e JDBC

  1. Por que usar um banco de dados?
  2. Sockets: uma idéia inocente
  3. A conexão em Java
  4. Fábrica de Conexões
  5. Design Patterns
  6. Exercícios: ConnectionFactory
  7. A tabela Contato
  8. Javabeans
  9. Inserindo dados no banco
  10. DAO - Data Access Object
  11. Exercícios: Javabeans e ContatoDAO
  12. Fazendo pesquisas no banco de dados
  13. Exercícios: Listagem
  14. Um pouco mais...
  15. Exercícios opcionais
  16. Outros métodos para o seu DAO
  17. Exercícios opcionais - Alterar e remover

O que é Java EE?

  1. Como o Java EE pode te ajudar a enfrentar problemas
  2. Algumas especificações do Java EE
  3. Servidor de Aplicação
  4. Servlet Container
  5. Preparando o Tomcat
  6. Preparando o Tomcat em casa
  7. Outra opção: Jetty
  8. Integrando o Tomcat no Eclipse
  9. O plugin WTP
  10. Configurando o Tomcat no WTP

Novo projeto Web usando Eclipse

  1. Novo projeto
  2. Análise do resultado final
  3. Criando nossas páginas e HTML Básico
  4. Exercícios: primeira página
  5. Para saber mais: configurando o Tomcat sem o plugin
  6. Algumas tags HTML

Servlets

  1. Páginas dinâmicas
  2. Servlets
  3. Mapeando uma servlet no web.xml
  4. A estrutura de diretórios
  5. Exercícios: Primeira Servlet
  6. Erros comuns
  7. Enviando parâmetros na requisição
  8. Pegando os parâmetros da requisição
  9. Exercícios: Criando funcionalidade para gravar contatos
  10. GET, POST e métodos HTTP
  11. Tratando exceções dentro da Servlet
  12. Exercício: Tratando exceções e códigos HTTP
  13. Init e Destroy
  14. Uma única instância de cada servlet
  15. Para saber mais: Facilidades das Servlets 3.0
  16. Discussão: Criando páginas dentro de uma servlet

JavaServer Pages

  1. Colocando o HTML no seu devido lugar
  2. Exercícios: Primeiro JSP
  3. Listando os contatos com Scriptlet
  4. Exercícios: Lista de contatos com scriptlet
  5. Exercícios opcionais
  6. Misturando código Java com HTML
  7. EL: Expression language
  8. Exercícios: parâmetros com a Expression Language
  9. Para saber mais: Compilando os arquivos JSP

Usando Taglibs

  1. Taglibs
  2. Instanciando POJOs
  3. JSTL
  4. Instalação
  5. Cabeçalho para a JSTL core
  6. For
  7. Exercícios: forEach
  8. Exercício opcional
  9. Evoluindo nossa listagem
  10. Fazendo ifs com a JSTL
  11. Exercícios: Melhorando a lista de contatos com condicionais
  12. Importando páginas
  13. Exercícios: Adicionando cabeçalhos e rodapés
  14. Trabalhando com links
  15. Formatando as datas
  16. Exercícios: Formatando a data de nascimento dos contatos
  17. Para saber mais: Outras tags

Indo além da JSTL

  1. Porque eu precisaria de outras tags além da JSTL?
  2. Criando minhas próprias tags com Tagfiles
  3. Exercícios: criando nossa própria tag para calendário
  4. Para saber mais: Outras taglibs no mercado
  5. Desafio: Colocando displaytag no projeto

MVC - Model View Controller

  1. Servlet ou JSP?
  2. Request Dispatcher
  3. Exercícios: RequestDispatcher
  4. Melhorando o processo
  5. Retomando o ::design pattern:: Factory
  6. A configuração do web.xml
  7. Exercícios: Criando nossas lógicas e servlet de controle
  8. Exercícios: Lógica para alterar contatos
  9. Exercícios opcionais
  10. Model View Controller
  11. Lista de tecnologias: camada de controle
  12. Lista de tecnologias: camada de visualização
  13. Discussão em aula: os padrões Command e Front Controller

Recursos importantes: filtros e WAR

  1. Problemas na criação das conexões
  2. Tentando outras estratégias
  3. Reduzindo o acoplamento com Filtros
  4. Exercícios: Filtros
  5. Deploy do projeto em outros ambientes
  6. Exercícios: Deploy com war

Struts 2

  1. Porque precisamos de frameworks MVC?
  2. Um pouco de história
  3. Configurando o Struts 2
  4. Criando as lógicas
  5. A lógica Olá Mundo!
  6. Exercícios: Configurando o Struts 2 e testando a configuração
  7. Adicionando tarefas e passando parâmetros à Action
  8. Exercícios: Criando tarefas
  9. Listando as tarefas e disponibilizando objetos para a view
  10. Exercícios: Listando tarefas
  11. Redirecionando a requisição para outra Action
  12. Exercícios: Removendo e alterando tarefas
  13. Desafio
  14. Para saber mais: Outras formas de se trabalhar com o Struts 2
  15. Melhorando a usabilidade da nossa aplicação
  16. Exercícios: Utilizando AJAX para marcar tarefas como finalizadas

Struts 2: Autenticação e autorização

  1. Autenticando usuários: como funciona?
  2. Cookies
  3. Sessão
  4. Configurando o tempo limite
  5. Registrando o usuário logado na sessão
  6. Exercício: Fazendo o login na aplicação
  7. Bloqueando acessos de usuários não logados com Interceptadores
  8. Exercícios: Interceptando as requisições
  9. Discussão: Qual a diferença entre Filtro e Interceptor?

Hibernate

  1. Mapeamento Objeto Relacional
  2. Criando seu projeto para usar o Hibernate
  3. Mapeando uma classe Produto para nosso Banco de Dados
  4. Configurando o Hibernate com as propriedades do banco
  5. Criando nosso banco com o Hibernate
  6. Exercícios: preparando nosso projeto para o Hibernate
  7. Exercícios: configurando e gerando o schema do banco
  8. Trabalhando com os objetos: a Session
  9. Exercícios: o HibernateUtil e gravando objetos
  10. Criando um DAO para o Hibernate
  11. Exercícios: criando o DAO
  12. Buscando com uma cláusula where
  13. Exercícios
  14. Exercícios opcionais: para testar o LAZY
  15. Exercício opcional

VRaptor3 e produtividade na Web

  1. Motivação: evitando APIs complicadas
  2. Vantagens de um codigo independente de Request e Response
  3. VRaptor 3
  4. A classe de modelo
  5. Minha primeira lógica de negócios
  6. Redirecionando após a inclusão
  7. Criando o formulário
  8. A lista de produtos
  9. Exercícios
  10. Aprofundando em Injeção de Dependências e Inversão de Controle
  11. Injeção de Dependências com o VRaptor
  12. Escopos dos componentes
  13. Exercícios: Usando Injeção de Dependências para o DAO
  14. Adicionando segurança em nossa aplicação
  15. Interceptando requisições
  16. Exercícios: Construindo a autenticação e a autorização
  17. Melhorando a usabilidade da nossa aplicação
  18. Para saber mais: Requsições: Síncrono x Assíncrono
  19. Para saber mais: AJAX
  20. Adicionando AJAX na nossa aplicação
  21. Exercícios opcionais: Adicionando AJAX na nossa aplicação

E agora?

  1. Os apêndices dessa apostila
  2. Certificação SCWCD
  3. Frameworks Web
  4. Frameworks de persistência
  5. Onde seguir seus estudos

Apêndice - Servlets 3.0 e Java EE 6

  1. Java EE 6 e as novidades
  2. Suporte a anotações: @WebServlet
  3. Suporte a anotações: @WebFilter
  4. Preparando o Glassfish v3.0 em casa
  5. Preparando o Glassfish v3.0 no WTP
  6. Nossa aplicação usando o Glassfish
  7. Exercício: Usando anotação @WebServlet
  8. Exercício: Alterando nosso framework MVC
  9. Exercício: Alterando nosso FiltroConexao
  10. Processamento assíncrono
  11. Plugabilidade e Web fragments
  12. Registro dinâmico de Servlets

Apêndice - Tópicos da Servlet API

  1. Init-params e context-params
  2. welcome-file-list
  3. Propriedades de páginas JSP
  4. Inclusão estática de arquivos
  5. Tratamento de erro em JSP
  6. Descobrindo todos os parâmetros do request
  7. Trabalhando com links com a c:url
  8. Context listener
  9. O ServletContext e o escopo de aplicação
  10. Outros listeners

Apêndice - Struts 1

  1. Struts 1 e o mercado
  2. Exercícios: Configurando o Struts
  3. Uma ação Struts
  4. Configurando a ação no struts-config.xml
  5. Exercícios: TesteSimplesAction
  6. Erros comuns
  7. Pesquisando um banco de dados
  8. Criando a ação
  9. O arquivo WebContent/lista.jsp
  10. ListaContatos no struts-config.xml
  11. Exercício: ListaContatosAction
  12. Resultado condicional com o Struts
  13. Exercícios: listagem vazia
  14. Resultado do struts-config.xml
  15. Novos contatos
  16. Formulário
  17. Mapeando o formulário no arquivo struts-config.xml
  18. Exercício: ContatoForm
  19. Erro comum
  20. Lógica de Negócios
  21. Exercício: AdicionaContatoAction
  22. Erros comuns
  23. Arquivo de mensagens
  24. Exercícios: Mensagens
  25. Erros comuns
  26. Validando os campos
  27. Exercício: validação
  28. Erros comuns
  29. Exercícios opcionais
  30. Limpando o formulário
  31. Exercícios: scope
  32. Exercícios opcionais
  33. O mesmo formulário para duas ações
  34. Exercícios opcionais
  35. Para saber mais

Caelum | Ensino e Inovação
São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222
A Caelum roda no cloud