Estudando para a SCJA

SCJA

A SCJA (Sun Certified Java Associate) é a certificação Java de nível de entrada. Como ela não é pre-requisito para nenhuma outra certificação poucas pessoas tiram a SCJA. Apesar disso eu a acho uma certificação interessante porque ela é bem abrangente, embora que superficial. Eu estou estudando para SCJA como uma porta de entrada para as outras certificações.

Este post é uma coletânea de links e dicas úteis para aqueles que possuirem estes mesmo objetivos.

  • Página oficial da SCJA – nesta página estão as principais informações sobre a certificação, algumas referencias de material para estudo e os objetivos do exame, que é a primeira coisa que você deve ler. Se possível imprima os objetivos do exame e vá marcando os objetivos que você já estudou.
  • UML for the Java Associate – Esse é um PDF gratuito que cobre alguns conceitos básicos de UML em uma linguagem fácil de divertida. Eu gostaria de ter tido isso em mãos alguns semestres atrás. O autor é o Dave Wood (que também elabora provas da SCJA) e é da mesma editora da série Head First. Esse livrinho é um ótimo ponto de partida para começar a estudar.
  • JavaRanch SCJA FAQ – Um tira dúvidas das dúvidas comuns sobre o SCJA e também uma excelente coletânea de materiais de estudo.
  • J2EE Specification – Um dos objetivos da é “Java Platforms and Integration Technologies“. Vá nesse PDF J2EE Specification, na seção 2.6 há um ótimo guia de termos de J2EE.
  • Trail: Learning the Java Language – Trilha de aprendizado da página oficial de tutoriais do Java. Muito bom e completo.

Objetivos da Certificação SCJA

Essa tradução fui em quem fiz, não é oficial. Se encontrar algum erro me notifique nos comentários do post.

  • Seção 1 – Conceitos Fundamentais de Orientação a Objetos.
    • Descrever, comparar e contrastar primitivas (inteiro, ponto flutuante, booleano, e caractere), tipos enumerados e objetos.
    • Descrever, comparar e contrastar classes concretas, classes abstratas, e interfaces, e como a herança se aplica a elas.
    • Descrever, comparar e contrastar composição de classes, e associações (inclusive de multiplicidade um-para-um, um-para-muitos e muitos-para-muitos) e associações de navegação.
    • Descrever ocultamento de informação (usando atributos privados e métodos), encampsulamento e exposição de funcionalidades de objetos usando métodos públicos; e descrever as convenções de JavaBeans para métodos setter e getter.
    • Descrever polimorfismo aplicado a classes e interfaces, e descrever e aplicar o princípio de “programar para uma interface”.
  • Seção 2 – Representação UML de Conceitos de Orientação a Objetos.
    • Reconhecer as representações UML de classes, (incluindo atributos e operações, classes abstratas, e interfaces), as representações UML de herança (ambas implementações e interface), e a representação UML de modificadores de visibilidades de membros de classe (- para privado e + para público).
    • Reconhecer a presetação UML de associação de classe, composição, indicadores de multiplicidade da associação, e indicadores de navegação da associação.
  • Seção 3 – Implementação Java de Conceitos de Orientação a Objetos.
    • Nota: exemplos de código podem usar o operador “new“.
    • Desenvolver código que use tipos primitivos, tipos enumerados, e referencias a objetos, e reconhecer os literais desses tipos.
    • Desenvolver código que declare classes concretas, classes abstratas, e interfaces, código que suporte implementação e interfaces de herança, código que declare atributos de instância e métodos, e código que use os modificadores de acesso: private e public.
    • Desenvolver código que implemente associação de classes simples, código que implemente multiplicidade usando vetores, e reconhecer código que implemente composição em detrimento de simples associações, e código que implementa associações de navegação corretamente.
    • Desenvolver código que use polimorfismo tanto para classes quanto para interfaces, e reconhecer código que usa o princípio de “programar para uma interface”
  • Seção 4 – Projeto e Implementação de Algoritmos.
    • Descrever, comparar e contrastar estes três tipos fundamentais de sentenças: atribuição, condicional, e iteração, e dado uma descrição de um algoritmo, selecionar os tipos apropriados de sentenças para projetar o algoritmo.
    • Dado um algoritmo em pseudo-código, terminar o escopo correto para a variável usada no algoritmo, e desenvolver código que declara variáveis em qualquer um dos seguintes escopos: variável de instância, parâmetro de método, e variável local.
    • Dado um algoritmo em pseudo-código, desenvolver um código de método que implementa o algoritmo usando sentenças condicionais (if e switch), sentenças de iteração (for, for-each, while, e do-while), sentenças de atribuição, e sentenças break e continue para controlar o fluxo no switch e nas sentenças de iteração.
    • Dado um algoritmo e múltiplas entradas e saídas, desenvolver o código do método que implementa o algoritmo usando os parâmetros de métodos, um tipo de retorno, e uma sentença de retorno, e reconhecer os efeitos quando referencias a objetos e primitivas são passadas para métodos que os modificam.
    • Dado um algoritmo em pseudo-código, desenvolver código que aplica corretamente e apropriadamente os operadore incluíndo os operadores de atribuição (limitados a: =, +=, -=), operadores aritméticos (limitados a: +, -, *, /, %, ++, –), operadores relacionais (limitados a: <, <=, >, >=, ==, !=), operadores lógicos (limitados a: !, &&, ||) para produzir o resultado desejado. Também escrever código que determina a igualdade de dois objetos ou duas primitivas.
    • Desenvolver código que usa o operador de concatenação (+), e os seguintes métodos da classe String: charAt, indexOf, trim, substring, replace, length, startsWith, e endsWith.
  • Seção 5 – Fundamentos de Desenvolvimento Java.
    • Descrever os propósitos de pacotes (packages) na linguagem Java, e reconhecer o uso correto de sentenças de import e package.
    • Demonstrar o uso correto do comando “javac” (inclusive as opções de linha de comando: -d e -classpath), e demonstrar o uso correto do comando “java” (inclusive as opções de linha de comando: -classpath, -D e -version).
    • Descrever os propósitos e tipos de classes dos seguintes pacotes Java: java.awt, javax.swing, java.io, java.net, java.util.
  • Seção 6 – Tecnologias Java de Plataforma e Integração.
    • Distinguir as características básicas das três plataformas Java: J2SE, J2ME, e J2EE, e dado objetivos arquitetônicos de alto nível, selecionar a(s) plataforma(s) apropriada(s).
    • Descrever em um alto nível os benefícios e as características básicas do RMI.
    • Descrever em um alto nível os benefícios e as características básicas das tecnologias JDBC, SQL e RDBMS.
    • Descrever em um alto nível os benefícios e as características básicas das tecnologias JNDI, mensagem, e JMS.
  • Seção 7 – Tecnologias Cliente.
    • Descrever em um alto nível as características básicas, benefícios e inconvenientes de criar thin-clients usando HTML e JavaScript e os problemas e soluções relacionadas à distribuição.
    • Descrever em um alto nível as características básicas, benefícios, inconvenientes e os problemas de distribuição relacionados a criação de clientes usando J2ME.
    • Descrever em um alto nível as características básicas, benefícios, inconvenientes e os problemas de distribuição relacionados a criação de fat-clients usando Applets.
    • Descrever em um alto nível as características básicas, benefícios, inconvenientes e os problemas de distribuição relacionados a criação de fat-clients usando Swing.
  • Seção 8 – Tecnologias Servidor.
    • Descrever em um alto nível as características básica de: EJB, servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (incluindo SOAP, UDDI, WSDL, e XML), e JavaMail.
    • Descrever em um alto nível as características básicas de servlet e o suporte JSP para thin-clients HTML.
    • Descrever em um alto nível o uso e as características básicas de uma seção EJB, beans de entidade e beans orientados a mensagem (message-driven).
    • Descrever em uum alto nível os benefícios fundamentais e inconvenientes de usar tecnologias do lado do servidor J2EE e descrever e comparar as características básicas da camada web, camada de negócios e a camada EIS.

Simulados SCJA gratuitos

  • scja.de – na lateral esquerda, tem uns botões azuis. Cada um deles é uma bateria de questões.
  • ejavaguru.com – 10 questões de SCJA.
  • cafe4java.com – 5 questões sobre SCJA.
  • WGS-PREX-J019C – Esse é o melhor teste que eu já vi. É o teste oficial da Sun, com 150 questões e é um teste pago e o valor varia de país para país. O que certamente você não sabe é que esse teste está disponível gratuitamente, só que neste site bem escondido. Você vai lá, se cadastra e recebe um link, login e senha. O ambiente não é tão bom quanto o Sun Learning Connection mas as questões são as mesmas. Inclusive nesse mesmo pacote tem testes para várias outras certificações, tudo de graça e dentro da lei. :)

Eu estou incrementando e organizando esse post aos poucos.

26 thoughts on “Estudando para a SCJA”

  1. Opa!
    Tudo bom!?
    Estou pensando também em fazer essa prova, mas não sei se a prova é em inglês ou português!
    Voce pode me tirar essa dúvida!
    Abraços!

  2. @Zarathon

    Na página dessa certificação no site da Sun informa as línguas de todas as provas.

    Para a SCJA, tem as seguintes possibilidades:

    Languages

    * English
    * Japanese
    * Chinese (Traditional)
    * Chinese (Simplified)
    * German
    * Korean
    * Portuguese (Brazilian)
    * Spanish

  3. @Zarathon rapaz, foi meio diferente do que eu estava imaginando. Pra começar, a boa notícia é que eu passei. :) \o/
    Eu esperava que os simulados fossem mais difíceis que a prova em si, mas comigo, a prova foi bem mais difícil. Caiu muita questão de programação, com códigos bem capciosos, cheios de casca de banana. Por exemplo, teve um tópico que eu havia estudado por puro acaso no dia do exame: sombreamento. Caiu umas três questões envolvendo isso.
    Quand oeu terminei a prova eu não tinha idéia se eu ia passar ou não, estava achando que ia tirar algo oscilando aí perto de 70%. :P Mas tirei 82%.
    Agora minha namorada vai fazer o exame, vai ser bom porque eu vou poder passar os toques pra ela, talvez eu compre algum pacote de questões simuladas.
    Pra mim também foi bom porque eu dei uma revisada no UML e em alguns conceitos de OO e agora vou só emendar os estudos para a SCJP.

  4. Massa…!!!
    Parabens ai..
    Boa sorte no SCJP!
    Ps.:Sabe onde eu posso arranjar alguns simulados em Português!?
    Abração

  5. Muito legal as dicas que vc postou em seu blog, agradeço por isso, pois, facilitou minha decisão de fazer a scja antes da scjp, vou pagar meu vouch dia 15 agora e encarar..
    Abraços

  6. Silveira,
    Me cadastrei no site que vc indicou que tinha os simulados com 150 questões, porem não consegui ver no site onde que eu faço o downlod do simulado.

    Será que vc pode me ajudar !!!

  7. Tentei entrar na url referente WGS-PREX-J019C mas não visualizei nada sobre simulado online poderia me ajudar onde encontro ….

  8. Pessoal,
    Eu estudando só pelo SAI no site da sun,será que eu consigo fazer a prova só estudando por lá?

    eu arranho no inglês, será que faço inglês ou português?

    abraço….

  9. Rafael Piton, você fez a prova do site da Sun em inglês não foi? Se você fez e passou, você também está apto a passar na prova real. As questões são no mesmo estilo, é possível até que alguma se repita.

    O inglês vai te acompanhar durante toda sua carreira e vida, então eu recomendo que você tope esse desafio. =D Vai fundo.


  10. Silveira:

    Rafael Piton, você fez a prova do site da Sun em inglês não foi? Se você fez e passou, você também está apto a passar na prova real. As questões são no mesmo estilo, é possível até que alguma se repita.
    O inglês vai te acompanhar durante toda sua carreira e vida, então eu recomendo que você tope esse desafio. =D Vai fundo.


    Silveira:

    Rafael Piton, você fez a prova do site da Sun em inglês não foi? Se você fez e passou, você também está apto a passar na prova real. As questões são no mesmo estilo, é possível até que alguma se repita.
    O inglês vai te acompanhar durante toda sua carreira e vida, então eu recomendo que você tope esse desafio. =D Vai fundo.

    eu tenho o livro como programar do deitel, baseando-se nele eu passo no exame?

  11. Estou pesquisando um material em portugues para estudar justamente para esta prova Silveira, Voce me indica um livro que é voltado pra SCJA completo ?

  12. Um bom livro par SCJA é o seguinte :
    SCJA Sun Certified Java Associate: Study Guide Exam CX-310-019 (Certification Press)

    Bom estudo! ;)

  13. Fiz a prova e tbm passei, mas além do Livro indicado pelo @Oscar indico tbm fazer os simulados do @whizlabs que são mto bons… a prova não é tão simples quanto falam, então estudem bem e boa sorte…

  14. Olá,
    Estou estudando par ao SCJP 6, mas acho que vou tirar essa antes, só para me testar um pouco contra a SCJP!
    Existe um livro de SCJA, tipo um guia e não tá muito caro não! acho q é esse que o amigo indicou, mas como eu tenho o livro do SCJP 6, que por sinal é muito bom, e parece que os conceitos cobrados nesta prova são cobrados com mais rigor na JP, vou utilizar o que aprendi com o livro, essa é uma dica.

    Flw

  15. cara…

    na parte que tu fala ” neste site bem escondido. Você vai lá, se cadastra”
    não achei..onde fica?

    abraço

    1. Olá Ahdail, hoje eu não sei como está o formato dessa prova já que agora quem aplica a prova é a Oracle. Na época que eu fiz eu usei esse primeiro livro mas também no curso gratúito da Sun que havia na época. Acredito que ainda hoje haja alguma documentação sobre isso no site da Oracle.

  16. Silveira, vim apenas agradecer pelo post e a tradução dos objetivos, já que estou com a pagina do blog ja fixa no firefox a mais de uma semana haha me achei na obrigação de comentar, vou prestar a OCJA em breve e depois a OCJP

    Abraço.

  17. Boa tarde Silveira Neto!
    Talvez seja por causa do tempo que já se passou desde que você escreveu este, mas o link que você passou sobre o teste gratuito da SUN, não mostra o simulado. Pode me dar um help? Desde já, agradeço.

  18. Oi Joabe, realmente faz um bom tempo. Eu não tenho informações de como está funcionando esta certificação ou simulado agora na Oracle. Eu recomendo procurar no site da Oracle.

Leave a Reply

Your email address will not be published. Required fields are marked *