En un mercado que comienza a volverse cada vez más competitivo como es el de los programadores en nuestro país, es importante que nuestro curriculum esté lo más completo posible, sobretodo al momento de conseguir nuestro primer trabajo, sin experiencia previa. Es en estos casos, que una certificación oficial puede ser de gran ayuda a la hora de ser elegidos por sobre otros candidatos en la fila (pueden preguntarle sobre esto a los administradores de redes que poseen una certificación de Cisco, por ejemplo).
Además, estudiar para obtener una certificación nos brindará valiosos conocimientos sobre el tópico de interés, sin importar si nuestro objetivo es o no obtener un empleo, por lo cual no debemos desestimar esta posibilidad aún si ya estamos inmersos en el mercado laboral.
En mi caso particular, me encuentro estudiando para rendir el examen Sun Certified Java Programmer (más conocido por sus siglas en inglés, SCJP). Se me ocurrió que podría ser útil transmitir algo de información al respecto en el blog, ya sea para que se encuentren interesadas en obtener esta certificación, como para aquellas que no conocían nada al respecto.
SCJP pertenece al programa de certificaciones Sun Certified Professional, que son otorgadas por la empresa Prometric (quienes también se encuentran a cargo de las certificaciones de Microsoft, Oracle, IBM, etc) las cuales tienen validez internacional y no poseen una fecha de vencimiento. Algunas, sin embargo poseen el número de versión del producto que certifican (Java SE 6, por ejemplo), y ante una nueva versión del producto, se publica un examen de actualización.
Dos razones para no asustarse y pensar que esto es un "gancho" para rendir montones de exámenes: primera, en el caso de SCJP (por nombrar una certificación de la cual conozco algo al respecto), sólo existen dos actualizaciones del examen original desde su creación (además, si lo rinden hoy, estarían rindiendo la versión de Java SE 6, salida en diciembre de 2007 y aún falta un tiempo para SE 7); y segunda, el hecho de que aparezca una nueva versión del examen no implica que aquellos que poseen la certificación anterior no sepan "nada" de la nueva versión, de hecho de SCJP 5 a SCJP 6 sólo se agregaron 3 temas más, y el resto del examen sólo sufrió ligeras modificaciones.
Es decir, análogamente a aquel que posee una certificación First Certificate of English de la universidad de Cambridge, el poseedor de una certificación SCJP puede anunciarle al mundo que maneja el lenguaje de programación Java. La validez internacional de este certificado es un punto muy importante a tener en cuenta.
Siguiendo un poco con la descripción, SCJP es la certificación de nivel inicial que indica que la persona que la obtuvo posee conocimientos suficientes para trabajar con las herramientas fundamentales del lenguaje. Es, además, el requisito para poder obtener la mayor parte de las certificaciones Java más especificas (ver esquema).
 |
Esquema que muestra las certificaciones Java del programa Sun Certified Professional. Las flechas negras indican que poseer la certificación anterior es requisito para obtener la señalada.
|
Oficialmente, el temario de la última versión del examen contiene:
- Sección 1, declaraciones, inicializaciones y alcance: conceptos de clase, interfaz, enumeración. Manejo de clases abstractas. Variables de clase y de instancia.
- Sección 2, flujo de control: manejo de sentencias while, for, if, switch. Aserciones. Excepciones. Manejo de try, catch, finally.
- Sección 3, contenidos de la API: boxing y unboxing. Manejo de archivos. Serialización de objetos. Parsing de números, fechas y monedas. Manejo (basico) de expresiones regulares con Strings.
- Sección 4, concurrencia: Threads. Locking de variables. Uso correcto de wait, notify y notifyAll.
- Sección 5, conceptos de programación orientada a objetos: encapsulamiento. Acoplamiento. Cohesión. Polimorfismo. Herencia.
- Sección 6, colecciones/ genericos: uso de hashCode y equals. Set, List y Map. Comparator y Comparable.
- Sección 7, fundamentales: modificadores de acceso. Declaraciones de paquetes. Garbage Collection. Jars. Operadores básicos. Operaciones en línea de comandos.
El examen se realiza en los centros habilitados por Prometric, de los cuales en Argentina hay varios en Buenos Aires, uno en Cordoba, uno en Mendoza y uno en Rosario. Pueden ver las direcciones en la página de información de Prometric. Consta de 72 preguntas multiple choice, de las cuales deben contestarse 47 (65%) en forma correcta para apobar. El tiempo disponible para esto serán 210 minutos.
Algo muy importante a destacar, es que el hecho de conocer el lenguaje "por arriba", haberlo utilizado para realizar trabajos en la facultad o incluso si llevan un tiempo trabajando en un proyecto Java no garantiza que posean los conocimientos necesarios para pasar el examen. En mi caso particular, y pese a que llevo varios años trabajando con Java, nunca había utilizado un assertion, por ejemplo. Y como este último, seguro reconozcan una gran cantidad de cosas que nunca habían oido nombrar o visto a medida que lean el temario en detalle. Así que cuidado con "mandarse de cabeza" a rendir sin revisar estas cosas primero. Además, y ya que no hablé de eso todavía, les comento que este no es un examen barato como para rendirlo mal (de todas formas, si tuviesen esta suerte, se les darán 6 semanas para volver a tomar el examen sin costo adicional). El examen cuesta 150U$S, sin embargo, aquellos alumnos de instituciones educativas miembros de la iniciativa acádemica de Sun, obtienen un 60% de descuento sobre el precio del examen (de más esta decir que este descuento también es valido para varias certificaciones de Solaris), y acceso gratuito al sistema de entrenamiento semipresencial online de Sun, Learning Connection. Actualmente la mayor parte de las universidades nacionales y muchas de las privadas del país ya son miembros de esta iniciativa. Pueden ver una lista de las mismas aquí. En caso de que su institución no figure en la lista, comuniquense con nosotros, ya que formar parte de esta iniciativa es gratuito y brinda además varios beneficios adicionales.
En cuanto al material de estudio, Sun recomienda tomar los cursos "Fundamentals of the Java Programming Language (SL-110)" y "Java Programming Languaje (SL-275)". Ambos se encuentran disponibles en forma semi presencial (presentaciones + audio) en Learning Connection. Les recomiendo adicionalmente que realicen el examen de práctica que se encuentra en el mismo lugar, que además de evaluar nuestros conocimientos provee las respuestas justificadas a cada una de las preguntas. Otros sitios muy recomendables son Java Ranch, que posee un juego llamado Rule Roundup Game y examenes de practica, además de un excelente articulo titulado "How my dog learned polymorphism"; Java Programmer Certification, que es un compendio de articulos, tutoriales, applets, examenes de practica y otros recursos para obtener la certificación SCJP; y finalmente, Java Black Belt que, al igual que los sitios que les mencioné anteriormente brinda gran cantidad de material de calidad sobre esta y otras certificaciones. Dentro de estos sitios encontrarán material más que suficiente para cubrir los tópicos de todo el temario.
Si eso no fuese suficiente, existen además varios libros (si, esas cosas de papel apilado y pegado todo del mismo lado) específicos para obtener esta certificación. No he tenido la oportunidad de leer ninguno, pero entre la comunidad de ambassadors alguien pidió recomendaciones y las respuestas fueron: "A Programmers Guide to Java Certification" de Khalid Mughal y Rolf Rasmussen, "Complete Java 2 Certification Study Guide" de Phillip Heller y "SCJP Sun Certified Programmer for Java 6 Exam" de Katherine Sierra y Bet Bates (los links a Amazon, no estoy muy seguro de que puedan conseguirse en Argentina, ni del precio que puedan llegar a tener - si alguno los consigue o consigue información sobre donde podrían conseguirse y los precios, favor de compartirla en los comentarios).
Cualquier duda sobre el examen, el material, la forma de inscribirse, la iniciativa académica de Sun, etc, no duden en expresarla en los comentarios, intentaré ayudarlos con todo lo que este a mi alcance. A todos aquellos que se decidan a tomar el examen, les deseo el mayor de los éxitos.