domingo, 18 de marzo de 2007

Sección 1: Declaración, Inicialización y Ámbito (Paso 1)

Sección 1: Declaración, Inicialización y Ámbito (Paso 1)

Ahora comenzaremos con el estudio de cada una de las secciones (Objetivos o Areas) que componen el examen, comenzaremos con la sección Nº1 describiendo los detalles y haciendo un mapa mental, sobre el cual basaremos nuestra preparación, es decir que y como estudiaremos.

La siguiente información fue extraída y traducida desde el sitio oficial de Sun Microsystems, la que pueden ver aquí

Sección 1: Declaración, Inicialización y Ámbito

  1. Desarrollar código que declare clases (incluidas clases abstractas y todas los tipos de clases anidadas), interfaces y enumeraciones,e incluir el uso apropiado instrucciones package e import (incluido static import)

  2. Desarrollar código que declare una interfaz. Desarrollar código que implemente o extienda una o mas interfaces. Desarrollar código que declare una clase abstracta. Desarrollar código que extienda una clase abstracta.

  3. Desarrollar código que declare, inicialice y use primitivos, arreglos, enums, y variables objeto como estáticos, instancia y local. También, usar identificadores permitidos para nombres de variables.

  4. Desarrollar código que declare métodos estáticos y no estáticos, y -si es apropiado- usar nombres de métodos que adhieran el estándar de nombres “JavaBeans”. También desarrollar código que declare y use una lista de argumentos variable en largo.

  5. Dado un código de ejemplo, determinar si un método esta correctamente sobre-escrito o sobre-cargado por otro método, y identificar valores de retornos legales (incluidos retornos co-variantes) para un método.

  6. Dado un conjunto de clases y superclases, desarrollar constructores para una o mas clases. Dado una declaración de clases, determinar si el constructor por defecto sera creado, y entonces determinar el comportamiento de ese constructor. Dado un listado de clases anidado o no anidado, escribir código que instancie la clase.

Si analizamos cada uno de los items obtendremos información relevante acerca de que debemos conocer en particular, esta información podemos representarla en un mapa mental, en esta URL podrán acceder al repositorio de mapas mentales. Ahí esta la primera versión de nuestro mapa, conforme avancemos con el estudio ira creciendo hasta cubrir el examen por completo, por ahora solo refleja la sección Nº1, al hacer clic sobre cada ítem podrán ir viendo los tópicos que tendremos que estudiar para cubrir con éxito el primer (de siete) objetivo del examen.


Bases de Conocimiento

Ahora veamos que hacer con cada nodo de nuestro mapa mental. Cada nodo representa un concepto ó característica del lenguaje de programación y que ademas ahora conforman un objetivo del examen SCJP y como estamos por transformarnos en expertos conocedores del lenguaje, cada nodo será algo que debemos conocer en profundidad.

Una de las cosas mas complejas al abordar los objetivos del examen es que pueden parecer redundantes, enredados, confusos, etc. Si ven el mapa mental aparecen “repetidos” varios términos como Classes, Enums, etc. esto puede parecer complejo, pero hay que considerar los nodos padre para entender el objetivo especifico que necesitamos comprender. Ahora cuando avancemos en los otros tópicos si descubriremos un “lado oscuro” y es el cruce de objetivos, es decir que la incorporación de un nuevo objetivo generara un cambio o agregara una condición que antes no la conocíamos, no hay manera de explicar esto claramente o dar un ejemplo sin entrar en detalles técnicos que confundirán a quien los lea, por ahora no se preocupen, solo tengan presente que los objetivos están bien planteados, solo que para las clases abstractas (por ejemplo) hay que saber declararlas y extenderlas, y ambas características se estudiaran por separado, por que el examen así lo considera necesario.

Ahora tendremos que recurrir a las bases de conocimiento para profundizar o aprender todo lo requerido para ser un Programador Java Certificado por Sun. Ahora recurriremos a los esenciales, de los que hablamos en el Post pasado, pero a petición de un visitante comenzaremos con el tutorial de Java.


Tutorial de Java

El tutorial de Java puede ser accedido desde aquí . Hay solo un detalle la gente de Sun trabaja muy duro....y ya se encuentra actualizado a la versión 6.0!!, y esto es muy bueno, ahora el examen aun esta en la versión 5.0, pero la verdad es que los cambios en la plataforma no entran en conflicto con los objetivos del examen, si prefieren lo pueden bajar desde aquí.

Para los que tienen (o motivados por este blog compraran :P) el libro (en papel) del tutorial de Java (4ª Edición), incluye un apéndice dedicado a la preparacion del examen estas son las paginas que cubren los contenidos correspondientes a la sección Nº1 del examen:

  • Pagina 87: Declarando clases
  • Pagina 161: Clases y Métodos abstractos
  • Pagina 122: Clases anidadas
  • Pagina 139: Interfaces
  • Pagina 128: Tipos Enum
  • Pagina 183: Creando y Usando Paquetes
  • Pagina 187: Instrucciones import, static import y usando miembros de un paquete

Ahora los links a la versión electrónica (html) del tutorial están aquí:

Lamentablemente toda esta información esta en ingles, pero recuerden este es un ingles técnico y el vocabulario es bastante acotado. Ahora el examen pueden tomarlo en español, sin embargo mejorar nuestro nivel de ingles aunque sea técnico no le viene mal a nadie.

Ya tienen harto que estudiar, háganlo a conciencia, recuerden que obtener la certificación es una consecuencia de nuestro nivel de conocimiento, esto es lo importante obtener el conocimiento. Cualquier duda ya saben donde pueden encontrar la respuesta, pueden dejar un comentario y cuanto antes tendrás la respuesta.

En el próximo post, revisaremos la especificación para sumergirnos en los detalles del lenguaje y prepararemos un conjunto de preguntas que nos permitan validar que hemos comprendido cada uno de los conceptos o características incluidas en este objetivo.