Rótulo - DFJUG - Cursos Curso de preparação para a prova  de  certificação  Java

O que é?
Curso de preparação para a prova de certificação Java.

Quando e Onde? 
O início do curso, data, local  e o Horário, serão divulgados em nossos boletins.

O cronograma proposto é o seguinte:

Dia
Assuntos
Materiais

dia 01

Language Fundamentals

dia 02

Operators and Assignments

dia 03

Declaration and Access Control

dia 04

Flow Control, Assertions and Exception Handing

dia 05

Overloading, Overriding, Runtime Type and Object Orientation

dia 06

Inner Class

dia 07

java.lang Package - String e Math

dia 08

Threads

dia 09

The Collections Framework

dia 10

Thousand "Freak" Questions  

Quanto custará?
O valor do curso será informado em nossos boletins.

Será emitido certificado?
Sim, como em todos os cursos patrocinados pelo DFJUG neste também, ao termino do mesmo, será emitido um certificado de frequência, para os que contarem com presença superior  75 % de todas as aulas ministradas.

É um curso Hands-On?
Não. A proposta deste curso é para um formato teórico, isto é, não se coloca as mãos em micro-computadores durante a aula. Não se pretende ensinar a programar Java neste curso. Você assiste as 03 (três) horas de aula do curso, no sábado, e tem o resto da semana para estudar. Caso existam dúvidas, estamos disponibilizando no nosso site http://www.dfjug.org uma lista onde você poderá colocá-las, e que serão respondidas pelos colegas e pelo instrutor.

Porque a certificação é importante?
Estamos adentrando o quarto ano de vida desta tecnologia e muitas das expectativas começam a se corporificar em estruturas concretas. Java hoje oferece soluções para o ambiente corporativo com atrativos   que maximizam a produtividade e reusabilidade das aplicações.

Ao longo dos anos os desenvolvedores tem sempre se  deparado com a tarefa de escrever aplicações corporativas cada vez maiores e mais complexas. Se o desenvolvimento da aplicação em si já se configura em uma tarefa hérculea então fatores complicadores tais como ser distribuída e confiscável adicionam percalços extras, sem contar com o princípio  de que todas as aplicações devem ser entregues para "ontem e funcionando".

Aplicações corporativas por natureza residem em ambientes heterogêneos, tanto a nível de hardware quanto ao nível de software. Imagine poder usar a tecnologia Java para escrever  aplicações corporativas. Apenas a escrita destas aplicações na linguagem Java faria com que a aplicação ganhe
independência de plataforma tornando-a portável. Para corporações com planos de atualização de hardware ou com expansões constantes da sua base, ter aplicações que executam independente de plataforma configura em  uma alternativa ao ciclo de intermináveis testes e adaptações.

Se eventualmente a empresa se propuser a comercializar sua solução, ou necessitar criar uma nova aplicação com funcionalidade provida por um módulo de código que já se encontra disponível no mercado, este apenas precisaria integrar os módulos  que comporiam a aplicação. Imaginemos por exemplo o caso de um banco A com uma estrutura composta de um servidor de bancos de
dados Oracle, middlewares diversos e que consiga desenvolver uma aplicação de Home banking. Se as diversas partes desta aplicação forem escritas como módulos de código Java, poderíamos imaginar a rápida adaptação destes módulos em um banco B que utiliza um banco de dados Informix, e com middlewares também diversos do banco B. Como isto é possível? A tecnologia Java provê duas arquiteturas de componentes distribuídos projetados para desenvolver componentes de software reutilizáveis.

Estas duas arquiteturas do modelo de componentes são: o Java Beans e o Enterprise Java Beans. A arquitetura do Java Beans já foi comentada e descrita em artigos anteriores desta revista. Basicamente os componentes  Java Beans trazem a reusabilidade de fato para as aplicações em Java a partir do momento em que definem regras de escrita de código, algumas características adicionais  foram incorporadas na nova versão do Java 2, tais como o JAF (Java Activation Framework) que provê uma forma padrão para mapear tipos MIME.

A arquitetura do Enterprise Java Beans é um modelo de componentes do lado do servidor, sua finalidade é  facilitar a escrita de aplicações definindo especificamente os papéis dos diversos desenvolvedores  envolvidos  no processo. A idéia básica é que o papel do desenvolvedor de aplicações  fique focado na escrita da lógica de negócios  sem que seja necessário se preocupar com o comportamento transacional, segurança, pooling de conexões ou múltiplos contextos de execução.

Soluções Corporativas acabam por envolver uma arquitetura cliente/servidor com conceitos tais como projeto de três camadas, incorporação de regras de negócios e compatibilidade com CORBA. De uma maneira bastante simples, assim como um componente JavaBean é conectado a outro para compor uma aplicação, o mesmo acontece com os Enterprise Java Beans. Imagine um programador com pouca experiência no desenvolvimento de aplicações corporativas tentando criar uma solução onde um cliente envia dados para uma camada de encriptação que por sua vez envia estes dados a um sistema gerenciador de bancos de dados. Insira componentes Enterprise Java Beans  neste cenário e imagine que com a união de um componente de encriptação  e um componente de acesso
teremos de pronto  uma solução corporativa. De antemão imagine um recálculo nas planilhas de planejamento dos diversos projetos da empresa e a diminuição do tempo de entrega dos projetos, isto é uma das promessas desta tecnologia corporativa.

Podemos ainda citar diversos benefícios da adoção e utilização desta tecnologia por parte das corporações. A performance nas aplicações aumenta pois a lógica migra do cliente (fat clients) para um ou mais servidores de middleware, isto automaticamente acaba por criar um thin client,
beneficiando os applets que dependem de seu tamanho. 
Entre outros benefícios ainda podemos citar o aumento na confiabilidade das aplicações geradas, pois é fato que a manutenção de partes menores é mais fácil e simples do que a manutenção de  programas complexos e "únicos". Ao projetarmos soluções complexas compondo pequenos componentes, fica mais fácil prover a manutenção dos projetos.

A flexibilidade também é beneficiada por soluções multi-camadas. Se houver modificações nas regras de negócios, a modificação se torna simples de ser implementada, bastando para isso alterar os componentes adequados ou adquirir novos componentes e inseri-los no contexto da aplicação para que este serviço ou funcionalidade fique disponibilizado ao sistema existente.
Voltando ao exemplo de uma aplicação de home banking, isto significa que se um novo serviço deve ser disponibilizado, ou alteramos um único componente ou inserimos um novo componente.

Todos estes benefícios que poderiam ser encontrados na maioria dos sistemas cliente/servidor tem uma vantagem adicional de que como os componentes foram escritos na linguagem Java, eles podem ser reutilizados não apenas em um sistema mas, em vários.
Com relação aos obstáculos encontrados por um desenvolvedor, podemos citar a velocidade. Uma vez que os programas Java são interpretados, eles não tem sua execução tão rápida quanto a execução de código nativo compilado de um programa em C ou C++.

Um compilador JIT (Just In Time) ajuda a reduzir este gap existente entre código interpretado e código nativo (compilado). Quando se utiliza um JIT, ele converte o bytecode para código nativo, este código é armazenado em um cache em tempo de execução. Esta conversão acontece apenas da primeira vez que o código é encontrado, é importante entender que não se gera código executável, uma vez que a máquina virtual deixa de estar ativo, o cache deixa de existir.

Com todas estas melhorias agregadas ao Java, o limite das aplicações e a sua proliferação  fica limitado apenas a qualificação do corpo de desenvolvedores da empresa.

Porque a certificação é importante?
Profissionais da área de Tecnologia da Informação (TI)  ganham valiosos benefícios  tornando-se profissionais certificados tais como:

O técnico chega  nas empresas já como um profissional competente na área de TI e a  indústria ganha também benefícios da aceitação difundida da certificação incluindo:

Satisfação do cliente: A partir do momento em que  os empregados têm uma credencial provando sua competência, as expectativas das empresas são mais altas em relação a este empregado e então mais  negócios podem  ser gerados para o   empregador com um nível de qualidade maior.

A certificação é oferecida pelo fabricante do produto. E enquanto as empresas querem que seus produtos trabalhem para seus clientes, os fabricantes querem que seus produtos trabalhem para as empresas. Assim, quando os fabricantes fornecem a certificação, estão dizendo: " Se você empregar as pessoas que demonstraram o conhecimento de meu produto passando no meu teste de certificação, você está empregando as pessoas que eu acredito que podem corretamente usar o produto. "Você também pode querer contratar uma pessoa certificada que investiu o momento, o esforço e o dinheiro para tornar-se certificado. O importante são os traços que você está procurando em um empregado!

A certificação pode ser  uma ferramenta barata de seleção. Estão procurando alguém proficiente na tecnologia UNIX/Solaris. 

Como você saberá quanto o candidato sabe realmente sobre estes produtos?
Se a pessoa for certicada, será muito mais fácil saber que você está contratando a pessoa certa.
O treinamento e a certificação podem também ser usados como uma concessão e um incentivo. A maioria dos empregados respondem muito bem a isto. 
Veja os benefícios da Certificação da empresa que criou a Tecnologia Java (tm), Sun Microsystems. Nós não estamos ensinando algo que nós aprendemos. Nós ensinamos algo que nós inventamos.
Os Serviços Educacionais oferecem programas de certificação profissional que ajudam indivíduos e organizações a maximizar sua produtividade e aumentar sua vantagem competitiva.

Quais são os benefícios para os profissionais da área de TI?

Existem dois níveis de exames de certificação Java:

      Obs.:O antigo terceiro nível, de "Certificado Sun para a Plataforma Arquiteto Java (tm)", foi removido pela Sun Restando somente os dois anteriores.

Uma  série de fatores conspiram para você se tornar um bom profissional de TI, mas nós asseguramos que a Certificação é o principal deles.  
Kentaro Takahashi, instrutor e funcionário da Sun, transcrito da revista Developers, ano 3, n. 34, junho 1999, pgs 32 e 33

Qual o livro  adotado?

Lamentavelmente, ao contrario dos cursos anteriores, neste, cada pessoa deverá providenciar o seu próprio material de estudos, pois se trata de livro americano e depende de importação direta. No site da Amazon, o livro do Simon Roberts está por U$$ 49.99.  A recomendação é : não deixe a aquisição destes livros para a ultima hora, ou você corre o risco de não ter material para acompanhar o curso. Leve em consideração também que, dependendo da forma de transporte que você escolher, o prazo de entrega vai de 72 horas (DHL) a 11 semanas (by ship). POR TANTO, CADA PESSOA DEVERÁ PROVIDENCIAR O SEU PRÓPRIO LIVRO.

Existem varias livrarias disponíveis na Web, com os mais variados preços para este livro. No Brasil a livraria Cultura, , está pedindo de 04 a 06 semanas para importação dos mesmos, aos preços de  R$ 105,00, mais o transporte.

O livro do Simon Roberts, JAVA 2 Certification Study Guide, ISBN 0-7821-2463-1, da Sybex, que foi escolhido com o livro texto do nosso curso de JAVA 2 Avançado para Certificação, não foi bem  recebido junto ao público devido ao grande número de incorreções e à abordagem utilizada na apresentação do conteúdo. Diante de tal reação, a Sybex interrompeu a sua produção e lançou uma nova edição corrigida do mesmo título com ISBN 0-7821-2700-2.  Portanto, ao adquirir o seu livro tenha o cuidado de obter o livro com o novo ISBN. Para aqueles que já adquiriram a edição anterior o site da Sibex está divulgando a errata do livro antigo.

 

Fernando Anselmo,
Coordenador do DFJUG, e Java 1.4 Certified Programmer

Bibliografia
O livro adotado será o Complete Java 2 Certification Study Guide, Simon Roberts & Philip Heller. Editora Sybex ISBN 0-7821-2700-2 (cuidado com este ISBN).