lunes jun 29, 2009

Se terminó nomas el curso de Java SCJP. Parece que fuese ayer cuando fui a pedir las aulas para comenzar, pero ya pasaron casi 4 meses... 

La verdad, es que ha sido una experiencia muy positiva, y repetible. Pobres de los alumnos que sufrieron un poco el experimento, y muchas gracias por ponerle toda la onda.

El siguiente paso ahora, será preparar el examen para después de las vacaciones de invierno. Después les cuento como nos fue.

Comparto las últimas tres presentaciones del curso, que corresponden a Inner classes, Threads, Strings e Input/ Output. Las restantes pueden encontrarlas en mi perfil de slideshare o en los anteriores artículos sobre el curso aquí en el blog (parte 1, parte 2). Como siempre, todas van con licencia CC atributtion-Share alike 3.0.

miércoles jun 03, 2009

Durante el pasado mes de mayo, a pesar del frío de Tandil y del comienzo de las fechas de parciales del primer cuatrimestre, continuamos con el curso presencial de SCJP 6 en la Universidad Nacional del Centro. 

 Los chicos que asisten al curso, después de un pequeño sorteo de regalos de Sun en una de las clases (por cierto, aprovecho a dejarle un saludo a todos)

En las últimas clases, cubrimos los siguientes temas:

  • Operadores
  • Control de Flujo
  • Collections
  • Generics

 Como siempre, pueden encontrar las slides del curso en slideshare.net/flekoso (además de embebidas en el articulo). Sientanse libres de redistribuirlas y utilizarlas en cuanto lugar se les ocurra (todas las presentaciones tienen licencia CC atributtion-Share alike 3.0).

Les dejo entonces las slides:






jueves abr 23, 2009

Ha pasado una eternidad desde la última vez que aparecí por el blog. La verdad es que he estado bastante ocupado, entre otras cosas con el curso que da el título a este post. 

Les cuento que hace unos meses que tenia la idea dando vuelta en la cabeza de dictar un curso de SCJP en mi universidad. Finalmente, y luego de casi un mes de tramites burocráticos académicos, mails de acá para allá y reuniones en persona con las autoridades de la facultad y los posibles asistentes, conseguí un aula y un cañón por dos horas a la semana (por cierto, agradezco a todas las autoridades de la facultad que me ayudaron con la gestión, en particular al vice decano de la facultad de exactas, Nelson Acosta)

Los objetivos principales del curso, más allá de conseguir que algunos de los asistentes obtengan la certificación es que funcione como complemento de las cátedras de la universidad en las que se utiliza Java, haciendo que los chicos profundicen un poco sus conocimientos y mejoren su manejo de este lenguaje.

Una vez conseguidos todos los permisos y realizada la difusión en forma de mails y empapelado de las paredes de la facultad con carteles informativos,  mis expectativas de asistencia al curso se mantenían en no más de 3 personas (si, soy un tipo optimista). Sin embargo, después de 3 clases, con una asistencia que ha alcanzado 60 personas,  debo reconocer que me ha sorprendido mucho el interés de los alumnos por este curso (muchos incluso piensan en rendir efectivamente el examen de SCJP), lo cual me motiva tanto a continuar con las restantes clases como a animar a alguno de los lectores que esté interesado en realizar este curso en su facultad a hacerlo sin dudarlo, ya que cualquier alumno con algo de ganas podría hacer, a contactarse conmigo en los comentarios para pasarle material e información, y contarle un poco más de mi experiencia como "profesor".

A continuación, les dejo las tres primeras presentaciones, que abarcan una introducción a SCJP, una introducción al lenguaje Java, las tres primeras unidades de SCJP (Declaración y Control de acceso, Conceptos de Programación Orientada a Objetos, Asignaciones) y algunos ejemplos de enumeraciones. Las presentaciones están en SlideShare, y además de verlas desde acá, pueden bajarlas a su computadora en pdf.

A medida que vaya teniendo listas las presentaciones para las próximas clases, las voy a ir subiendo a SlideShare, y publicandolas en el blog y los grupos de OSUM.

Pasando ahora  a las novedades y anuncios, tres cortitas:

1) Si bien ya lo había nombrado antes en otro post, les recuerdo que junto con otros empleados de Sun estamos traduciendo "The Aquarium" que es el blog más visitado del conjunto blogs.sun.com,  el cual es un compendio de novedades sobre Java EE, GlassFish, Grizzly, Hudson, MySQL, Metro, OpenESB, OpenSSO, etc. De más está decir que si trabajan con alguna de estas tecnologías, es una visita obligada. Además quiero destacar la labor de este equipo, que está logrando que la traducción se realice a una velocidad asombrosa (les recuerdo que este equipo realiza esta tarea adicionalmente a sus obligaciones diarias). Visiten "El Acuario" en http://blogs.sun.com/theaquarium_es/

2) Este sábado voy a estar participando en la edición 2009 del Festival Latinoamericano de Instalación de Software Libre (FLISoL) en la ciudad de Mar del Plata. El mismo va a estar organizado por el nodo gulBAC de dicha ciudad (info y cronograma en su página). La novedad principal de este año, es que todas las charlas del evento se transmitirán en vivo por streaming (por acá: http://www.mogulus.com/gulbac). De más está decir que si pueden acercarse, mucho mejor.

3) Nos enteramos (supongo que ustedes también), de que Oracle ha realizado una oferta por la compra de Sun, y la junta de accionistas de Sun ha aceptado dicha oferta, por lo que en los próximos meses (luego de la aceptación de la transacción por parte de los oficiales correspondientes del gobierno de los Estados Unidos - quienes deben realizar análisis anti monopolio, entre otros tantos, obligatorios en transacciones que involucran adquisiciones de empresas de este tamaño) Sun pasará a formar parte de Oracle.

Por el momento, eso es todo lo que se sabe al respecto, y las respuestas oficiales que hemos recibido a la mayoría de nuestras preguntas (que supongo serán más o menos las mismas que las suyas) son "aún no se sabe nada al respecto". Lo único que se sabe en concreto es que las tecnologías principales de Sun (especialmente Java, MySQL y Solaris) continuarán siendo soportadas por Oracle, y se mantendrán sus licencias respectivas. Pueden encontrar información oficial sobre la adquisición tanto en sun.com/oracle como en su contraparte oracle.com/sun.

viernes jul 25, 2008

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.

This blog copyright 2009 by Ezequiel Singer