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.

jueves, 15 de marzo de 2007

Preparación del Examen SCJP

Preparación del Examen SCJP

Ahora entremos de lleno a preparar el examen de certificación SCJP, pero antes responderemos a la duda que quizás muchos se están preguntando: ¿como?. Muchos tendrán como expectativa con respecto a un blog dedicado a una certificación es que este lleno de trucos, pistas, preguntas "tipo", y un largo etc al respecto. La verdad es que esa "metodología" no sera la elegida y para explicar de que se trata la metodología seleccionada, respondamos otra duda común en cuanto al camino mas "corto" para obtener una certificación: ¿si me compro un libro y exámenes de practica dedicados a la certificación, puedo estar seguro que pasare la certificación?, la respuesta es: no, y entonces que me garantiza que la pase la certificación?, solo una cosa: conocimiento.

Sin lugar a dudas que un buen libro de certificación y exámenes de practica (en especial estos últimos) son una herramienta muy útil para mejorar nuestro conocimiento, sin embargo pueden ser también un arma de doble filo, si nos compramos un libro de certificación para aprender Java el tema es muy delicado, ya que los libros de certificación no son para quienes tienen pocos conocimientos y experiencia en Java, y si lo es, lo mas probable es que sea pobre en cuanto a la preparación del examen, por lo tanto las dudas pueden multiplicarse o peor aun, hacernos creer que dominamos el lenguaje por que conocemos algunas características avanzadas, pero esto no es mas que una suerte de espejismo que nos pasara la cuenta a la hora de rendir el examen.

En este blog discutiremos en detalle el nivel de conocimiento requerido en cada tópico (ó sección,objetivo, etc) que cubre el examen y usaremos herramientas (recursos, contenidos, exámenes de practica) libres de costos y disponibles en Internet, muchos ellos de Sun Microsystems. Si no tienes dinero para comprar un libro o exámenes de practica, no te preocupes, todo lo que necesitas para pasar el examen esta disponible en la Web! o donde creen que obtuvieron la información los que escriben los libros o hacen los exámenes de practica?...shhh esto ultimo es un secreto no se lo cuenten a nadie...

Detalles de la Certificación

Esta certificación está para programadores interesados en demostrar su habilidad en los fundamentos del lenguaje de programación Java usando la plataforma de Java edición estándar (JSE).

El examen de certificación de programador para la plataforma 5.0 de Java es para programadores experimentados usando el lenguaje de programación de Java. Lograr esta certificación proporciona una evidencia clara que un programador entiende el sintaxis y la estructura básica del lenguaje de programación Java y puede crear aplicaciones usando la tecnología Java que corran en servidores y sistemas de escritorio usando J2SE 5.0.

  • Entregado por: Centros Autorizados Prometric

  • Pre requisitos: Ninguno

  • Otros exámenes/asignaciones(tareas) requeridas para esta certificación: Ninguna

  • Tipo de Examen: De elección múltiple y "arrastrar y soltar"

  • Numero de preguntas: 72

  • Puntaje de aprobación: 59% (43 de 72 preguntas)

  • Limite de tiempo: 175 minutos


Los Esenciales

Si hablamos de fuentes de conocimiento donde se cubran los detalles de cada sección del examen, en primer lugar aparecerá (sin lugar a dudas) "Java Language Specification", ¿ahí esta todo lo que necesitamos saber?....casi, solo dos detalles a considerar primero es una "especificación" y por lo tanto pueden aparecer cosas poco claras, lo segundo es que podemos llevarnos algunas sorpresas a la hora de ver la implementación, muy importante por cierto ya que sin practica no llegaremos a ninguna parte, amigos "memoriones" les tengo malas noticias, ya hablaremos de eso ;)

En segundo lugar (sin lugar a dudas nuevamente) el "Tutorial de Java" que sera nuestra salvación cuando "Backus-Naur Form" este presente en nuestros sueños (mas bien pesadillas) de tanto leer las especificaciones sin éxito en cuanto al aprendizaje.

En tercer lugar hay unos cuantos libros (Java Series, ) que cubren topicos de manera ideal para quien esta mejorando sus conocimientos en tecnologia Java. Ya hablaremos de ellos.

En cuarto lugar herramientas ó recursos de terceros (osea no Sun, pero también gratis) que nos pueden ayudar a ir un poco mas allá (como nos exige el examen) u obtener otro punto de vista, siempre bienvenido.

Eso seria todo...por ahora....ya les adelante las "fuentes" sobre las cuales desarrollaremos este blog de preparación para el examen y les adelanto una herramienta que sera parte importante de nuestra metodología: "FreeMind" la cual pueden conseguir aquí, información acerca de lo que hay detrás de la herramienta la pueden encontrar en WikiPedia