Mi receta para aprobar la certificación CCA Spark and Hadoop Developer

Hola de nuevo mi gente, como ya es costumbre tenía tiempo sin escribir, de hecho la última vez fue para anunciarles que había aprobado la certificación de solution architect de AWS y comentarles mi receta para aprobarla, bueno en esta ocasión les traigo mi receta para aprobar la certificación CCA Spark and Hadoop Developer (CCA175) de Cloudera. Bueno primero comentarles que esta certificación me resulto fascinante, por distintas cosas, la primera fue que tenía un completo desconocimiento sobre la forma como sería el examen, la segunda es que es totalmente práctica y el contenido dependiendo de como se mire puede ser amplio o no, de acuerdo a cuanto se desee profundizar.

Algunos aspectos del examen: tiene una duración de 2 horas, se aprueba con el 70% y pueden ser entre 8 y 12 preguntas (en mi caso fueron 9). El examen se lleva a cabo de forma online a través de un máquina virtual a la que accederás desde el navegador (chrome), de tu ordenador y será estrictamente necesario tener una webcam mediante la cual un vigilante (proctor) estará atento a que no hagas trampa, también tendrás a disposición una serie de enlaces de documentación referente a las herramientas que puedes utilizar en el examen, como pueden ser la documentación oficial de sqoop, spark, hive, cloudera, por mencionar algunas. En el examen no te veras obligado a utilizar una herramienta en especial, es decir, lo que importa es el resultado final, si este lo consigues con Pig, Hive, Spark, impala, Flume, pues perfecto, lo que esta claro es que hay herramientas que terminan siendo más adecuadas que otras dependiendo del caso.

Dada mi experiencia les sugiero estudiar los siguientes tópicos:

  • Importar y exportar usando sqoop y en ambos casos considerar el uso y cambio de delimitadores de campos así como de lineas. En el caso particular de la importación tener en cuenta compresión (por ejemplo Gzip) y formatos de archivo (texto, avro, parquet), a su vez conocer como y cuando utilizar los argumentos, -m, -split-by, -where, -query, -columns, -warehouse-dir, -target-dir, por mencionar algunos.
  • Crear una tabla en Hive cuya fuente de datos sean ficheros de texto, o que los datos estén serializados en Parquet, ORC o AVRO (tener en cuenta evolución del schema) y que a su vez estén comprimidos. CTAS (Create Table as Select) y exportar desde hive un fichero tanto a HDFS como al FileSystem producto de una consulta.
  • Haciendo uso de Spark hacer Lectura de datos en distintos formatos (texto, json, orc, parquet o avro) e incluso comprimidos y a partir de estos llevar a cabo una transformación de los datos y exportar el resultado a uno de los posibles formatos mencionados anteriormente.
  • La Máquina virtual trae consigo eclipse y sublime, les sugiero hacer scripts en sublime y guardarlos para poder volver a ellos en caso de ser necesario. En el caso de spark al yo tener más experiencia con scala lo que hice fue lanzar los scripts con la spark-shell con el siguiente comando spark-shell -i script.scala  o sino desde la consola usando :load script.scala.
  • En el caso de spark al ser la versión 1.6 preferí trabajar con dataframes a tener que hacer la operativa con RDDs.
  • Hacer muchos ejercicios, prácticos. En mi caso creé un repositorio en Github donde hice unos cuantos ejercicios, unos inventados por mí y otros del sitio web itversity.
  • Es importante hacer una buena gestión del tiempo, sugiero tomar un par de minutos para leer las preguntas e ir a por las más sencillas al comenzar y si en algún momento te bloqueas, pues pasar a la siguiente de inmediato, de igual forma mientras se esté ejecutando una operación (puede que tarde 1 min + o -) aprovechar para al menos leer el enunciado siguiente.
  • Muy importante mucho cuidado con los datos fuentes y de ser posible respaldarlos.
  • La consola de la máquina virtual tiene un tamaño de fuente algo pequeño por lo que no es mala idea hacer un zoom in.

Yo he de confesar que de las 9 preguntas que me salieron solo respondí 8, porque no me dio tiempo he allí la razón por la que hago hincapié en la buena gestión del tiempo. El examen no resulta difícil si has estudiado, pero al contar con solo 2 horas es necesario haber practicado antes para no perder mucho tiempo buscando en la documentación.

Por último desearles mucha suerte y reiterar mi fascinación con esta certificación, he aprendido muchísimo y el examen en sí me genero una sensación de satisfacción increíble al conseguir aprobarla, sobre todo esa buena vibra de poner en practica todo aquello practicado.

 

Mi receta para aprobar la AWS Certified Solutions Architect – Associate

Hacía casi un año de la última vez que escribí, de hecho he de confesar que hecho de menos compartir más cosas a través de este blog, pero ahora mismo el tiempo es algo que no me sobra y desde que me convertí en padre es que paso muchisimo tiempo con mi hija y como es normal disfruto más el pasar tiempo con mi hija y mi señora.

Volviendo a lo tecnologico, a finales del mes de Julio presente y aprobé una de las certificaciones de amazon especificamente la AWS Certified Solution Architect – Associate y me gustaría compartir con ustedes mi receta para tal logro.

  • El curso para la certificación de la gente de acloud guru y OJO este mismo curso esta disponible en Udemy y pueden llegar a conseguir ofertas para adquirirlo por tan solo 10€, más interesante aun es que al adquirir el curso por Udemy pueden efectuar una migración del curso hacia acloud.guru y de esta manera tendrán acceso al curso mediante las 2 plataformas y a sus respectivos foros. Otra cosa interesante es que el curso al tenerlo en Udemy pueden aprovechar de descargar la app para iPad y iPhone y visualizar los videos desde estos incluso en modo offline.
  • En linea con lo anterior paprticipar activamente así sea como lector en los foros, seguramente te encontrarás con las mismas dudas salvo que estas ya estarán resueltas.
  • Adquirir los examenes de prueba de la misma gente a través de Udemy y aunque no es imprescindible si recomiendo comprar la guia de preparación para los examenes de certificación de amazon de la gente de acloud.guru.
  • Hacer el examen de muestra de Amazon para esta certificación, esto te dará una idea bastante cercana sobre el tipo y el estilo de las preguntas a las que te enfrentarás en el examen. He aquí las respuestas.
  • Imprescindible revisar las F.A.Q. y limitantes de los servicios más importantes como S3, Glacier, IAM, SQS, SNS, EC2, API Gateway, AWS Lambda, VPC, CloudFront, Route53, CloudWatch, RDS, EMR y Kinesis.
  • Por (pe)último no dejar de revisar los papers como por ejemplo el referente a Well Architected Framework, sobre estos encontrarán preguntas sobre escenarios de la vida real donde deberíamos aplicar lo especificado en los papers, estos están disponibles para descargar como pdf desde el site de amazon e incluso para descargar en kindle.
  • Ahora si finalizando, no dejar de leer sobre las características del examen, este es un examen un poco pecualiar donde se aprueba/desaprueba a partir de 67% de acierto en las preguntas según tengo entendido se basa en una campana de Gauss, por lo cual buscar como objetivo obtener como mínimo un 70% de aprobación.

 

Aqui les dejo algunos enlaces a sitios con preguntas tipo examen:

http://recurze.be/2015/06/06/certified-solutions-architect-sample-questions/

http://www.accelerated-ideas.com/exams/practice-exam.aspx?group=aws&fq=1&qmax=15

https://blog.cloudthat.com/sample-questions-for-amazon-web-services-certified-solution-architect-certification-aws-architect-certification-part-i/

https://blog.cloudthat.com/sample-questions-for-amazon-web-services-certified-solution-architect-certification-aws-architect-certification-part-ii/

https://markosrendell.wordpress.com/2013/12/12/aws-certified-solutions-architect-sample-questions-answered-and-discussed/

https://quizlet.com/144321056/aws-certified-solutions-architect-associate-practice-questions-flash-cards/

No dejes de preguntar cualquier duda al respecto o incluso una vez hayas presentado deja aqui tus impresiones del examen y comparte con nosotros sobre que cosas preguntaron mas en el examen. Mucha suerte y exito por si te entusiasmas a presentar el examen.

 

 

¿Valen la pena las certificaciones?

Tiempo atrás me hicieron la siguiente consulta en el blog:

«Hola Jose,

estoy muy indecisa en si prepararme para la certificación de Java. Mucha gente me dice que es absurdo porque las preguntas son del api, y tipo trozos de código que tienes que hacer de compilador y que al final se vuelve en un absurdo porque eso al fin y al cabo en nuestro día a día con un compilador es intuitivo. También me han dicho que a la hora del mundo laboral apenas lo valoran porque como debemos pagar para certificarnos, como que los empresarios lo ven como un título comprado.«

Antes que nada disculparme con la persona que me escribió ya que ha pasado algo de tiempo y apenas ahora es que le respondo, pero aquí voy y con la sinceridad que me caracteriza.

En más de una vez he recalcado estar a favor en realizar certificaciones, pero así como lo he dicho alguna vez, ahora lo repito, «no es por el papel», el papel o el certificado es lo de menos, bueno (pausa de 1 seg), es un premio o mejor dicho un reconocimiento al esfuerzo y a la dedicación que has puesto en estudiar y aprender cierta tecnología o idioma, es como cuando presentábamos un examen importante (para obtener créditos especiales o en una materia electiva de particular importancia) y después de tanto estudiar te otorgaban un aprobado pero que goza de cierto cache, ya que no se aprueba con la mitad de la nota sino con un poco más (por ejemplo si las notas van de 1 a 10 se otorgue únicamente el aprobado con 6.5). Lo que a mí particularmente me parece fascinante de las certificaciones y me entusiasma a realizarlas es todo el proceso de preparación, es como te planteas y organizas los objetivos para estudiarlos, como al cabo de un tiempo empiezas a darte cuenta de que algunos temas los tienes bien cubiertos mientras que hay otros donde necesitas hacer énfasis y repasarlos de nuevo, todo ese proceso de estudio con ese poquitín de presión añadida pero sobretodo con la ambición de aprender y mejorar tus habilidades profesionales, creo que hace méritos más que suficientes para presentar una certificación, y voy a plantear par de ejemplos para intentar hacerles llegar mi punto de vista.

Imaginemonos que empezamos a prepararnos durante algunos meses en presentar un examen de inglés, por ejemplo el FCE (también llamado el first). Si nos hemos esforzado digamos que durante unos 5 meses estudiando, leyendo muchos verbos, conjungandolos y utilizándolos en frases, escuchando mucho inglés, etc… ya habremos ganado, porque independientemente de que al presentar aprobemos o no el examen, el premio lo recibiremos cuando nos toque hablar con una persona de habla inglesa y hayamos podido entender a esta persona y a su vez hayamos logrado expresarnos con cierta fluidez, que si no fue tal, pues sencillamente no importa porque estoy seguro de que nos expresaríamos mucho mejor que antes de haber empezado a estudiar para la certificación.

Otra razón de presentar las certificaciones, es el saber, porque para mí «el saber es poder», el saber te da confianza, y si vas a presentarte para una entrevista de trabajo o para un cargo, créeme que la confianza es importante (te desenvuelves mejor, yo sinceramente creo que hasta te cambia la cara y hasta la forma de expresarte) y ahora bien ¿recuerdas cuando en la escuela tenías que hacer una exposición? a la mayoría nos daba algo de miedo escénico, pero había una cosa que siempre era palpable independientemente de que fueras el mejor en el escenario o no, y es que siempre se sabía quien había estudiado y quien no. ¿Crees que las personas de RRHH no se dan cuenta? y si tuviste suerte y pasaste esa entrevista recuerda que luego seguramente tendrás una entrevista técnica y a esta persona será difícil que le engañes o mejor dicho dejaras mejor imagen si le demuestras a esa persona que sabes de lo que hablas.

Entonces, ¿valen la pena las certificaciones? SI

¿Los empresarios lo ven como un titulo comprado? No conozco ninguno que lo vea de esa manera y en dado caso desde mi humilde punto de vista te diría corre y vete de esa empresa porque allí no te valorarán ni como profesional ni tu deseo de ser mejor.

Yo particularmente he visto como últimamente empresas dedican una «bolsa» de dinero para fomentar la certificación de sus empleados, ya que a la hora de escoger un perfil entre un grupo de candidatos, la certificación y el haber aprobado la entrevista técnica puede que pongan la balanza a tu favor. Además no olvidemos que las empresas son las principales beneficiadas de que nosotros los empleados nos certifiquemos, ya que a priori están ganando, teniendo en el staff mejores profesionales.

¿Algunas preguntas son muy complejas y debemos actuar como si fuésemos un compilador, ya que incluyen código? Si hay preguntas que incluyen código y debemos actuar como un compilador pero ni son muchas y tampoco todas son extremadamente difíciles, estas la mayoría de las veces son conchas de mango, que si has estudiado, las vas a pillar de inmediato.

Así que amiga no lo pienses 2 veces certificate si tienes interés en hacerlo, que en el peor de los casos lo que harás es aprender 😉 y serás bien valorada por el gremio profesional y por tus colegas por interesante en afrontar retos de este tipo.

Por último confesar que ya he empezado a preparar mi próxima certificación y como adelanto les dire que va enfocada en tecnologías Big Data.

PD: La de Java 8 me hace mucho ojito, jejejeje, pero ya he estudiado por mi parte las expresiones lambda, los streams, los default methods de las interfaces, entre otras cosas, por lo cual no siento tanto interés como otras veces en presentarla, así que quizás cuando salga Java 9 me meta de cabeza a estudiar de nuevo.

Mi receta para aprobar la Oracle Certified Professional, Java SE 7 Programmer

Ayer presente el examen 1Z0-805 de Oracle para obtener la Oracle Certified Professional, Java SE 7 Programmer y con mucho orgullo (producto de muchas horas de estudio) puedo decirles que la he aprobado con 80%. Llevaba preparandome unos 8 meses, con alguno que otro descanso bien merecido en navidad y semana santa, pero en general fui constante y cada semana dedicaba al menos una (1) o dos (2) horas a hacer ejercicios y/o leer al respecto.

Debo admitir que aunque consideraba que habia repasado bastante, el examen fue mas dificil de lo que yo esperaba, pero como ya ven no es imposible. Los objetivos a evaluar en el examen en resumen son los siguientes:

  • Language Enhancements (Mejoras en el lenguaje), que no es más que el project coin: diamond operator (operador <>), try-with-resources, sentencia swith con variables tipo String, etc…
  • Design Pattern (Diseño de patrones): Comprensión del concepto de cohesión, asi como también de los patrones Factory,  Singleton, DAO, diferencia entre un objeto de negocio (Bussiness Object) y un objeto de transferencia de datos (Data Transfer Object o DTO) y Entender los conceptos de herencia, composición y encapsulamiento.
  • Database Applications with JDBC (Desarrollo de aplicaciones utilizando JDBC): Características y métodos de un ResultSet, conocer los distintos tipos de RowSet, poder crear una app de tipo CRUD (Create, Read, Update and Delete) utilando JDBC.
  • Concurrency (Concurrencia): manejo de entorno multihilos, el framework for/join, colecciones seguras para el manejo con hilos, entender los conceptos de starvation, deadlock, liveness.
  • Localization (Localización): Todo lo necesario para poder hacer una aplicación multidioma o como también se le dice, soporte i18n.
  • NIO 2: Conocer las nuevas clases y métodos para el manejo de archivos, tales como la clase Path, FileStore, FileSystem, entre muchas otras.

Ahora bien no perdamos mas tiempo y vayamos al grano ¿Cual es la receta?… Bueno al empezar a preparar esta certificación me tope con que habia un único libro enfocado en la aprobación de la certificación y me refiero a esos libros a los que nos tiene o tenia acostumbrados Kathy Sierra y este era el libro Oracle Certified Professional Java SE 7 Programmer Exams 1Z0-804 and 1Z0-805: A Comprehensive OCPJP 7 Certification Guide (Expert’s Voice in Java) que al revisar por internet los comentarios y opiniones de la gente con respecto al mismo lo que hicieron fue desanimarme a comprarlo asi que opte por yo mismo recabar mi material aunque esto me tomara mas tiempo para preparar la certificación, a continuación se los detallo:

  • The Well-Grounded Java Developer: Es un magnifico libro, en mi opinion digno a estar en la biblioteca de todo buen programador Java, por supuesto es un libro que yo denominaría de nivel intermedio, ya requiere conocimientos fundamentales en Java, pero toca desde cosas basicas del lenguaje (nuevas para Java 7) como el project coin hasta aspectos más avanzados como la concurrencia y el framework fork/join para el trabajo con hilos y otros lenguajes de la JVM tales como Groovy, Scala y Clojure. De este estudie project coin, NIO2 y concurrencia.
  • Java 7 New Features Cookbook: Este libro repasa con bastante detalle las novedades de NIO2, de hecho dedica 5 capítulos del libro a este tema, un libro a recomendar para aquellos que quizás sientan que están un poco desactualizados (digamos que se quedaron en Java 1.4 o Java 5) y quieren de una forma bastante light ir empapandose de las novedades del lenguaje, de este libro estudie los mismos objetivos que del libro anterior (project coin, NIO2 y concurrencia), realmente en mi opinión se complementan muy bien para estudiar.
  • Tutoriales Java de Oracle, específicamente internacionalización, JDBC, Concurrencia, además pueden descargarse en formatos para libro electrónico.
  • Java Practice Questions: Upgrade to Java SE 7 Programmer, este es un libro que consta unicamente de preguntas tipo certificación de todo los objetivos a evaluar en la certificación, por supuesto con sus respectivas respuestas y explicación, a mi este libro me vino muy bien para evaluarme una vez consideraba que ya había cubierto un objetivo especifico y así poder ver si tenia algún tema falto por cubrir.
  • Al final opte por comprar el paquete de whizlabs para actualización a Java 7, no puedo decir que me haya ido mal, porque me permitió hacer simulacros de examen pero si esperaba que tuviese mas preguntas (solo tiene 243) y que estuvieran clasificadas por objetivo/tema, ya que en algún momento tuve interés de solo evaluarme en un tema en especial y no pude.
  • Por ultimo encontre un simulacro de examen gratuito y que sinceramente esta muy bien que de paso se ejecuta mediante JNLP, la página en cuestión es Java Quiz Player.
  • NOTA: Es muy importante programar, programar y seguir programando, sinceramente no conozco otra forma de poder internalizar los conocimientos sobretodo cuando se trata de tantas clases y cada una de ellas con sus respectivos métodos, además de ser una especie de abogado del diablo y plantearse uno mismo interrogantes, intentar conocer en detalle cuando y/o por que un determinado método arroja una exception en particular. En este orden de ideas les diría por ejemplo, ¿Que sucede si a una sentencia switch le paso un String null? ¿Alguna vez han ejecutado un switch donde el case «default» sea el primero de la lista? y así sucesivamente.

No puedo negarles que estoy muy contento de hecho tenia como 3 años que no presentaba un examen de certificación, pero mas que por el resultado del examen, lo que me  contenta y que de hecho considero que es lo más importante de todo este proceso es que «HE APRENDIDO», y eso haya o no un papel que lo avale es lo que mas me llena y es por eso que por ahora seguiré invitando a la gente a que lo intente ya que siempre todo lo que conlleva la preparación para presentar una certificación entre estudiar, plantearte interrogantes, programar, nos deja conocimiento y el saber, es PODER.

Otros enlaces de interés:

– Sitio Web en Amazon de Esteban Herrera, este ha publicado libros (de preguntas y respuestas) para los exámenes de certificación 1Z0-803, 1Z0-804 y 1Z0-805, este ultimo es el que les mencione arriba llamado Java Practice Questions: Upgrade to Java SE 7 Programmer.

– Página de enlace a los tutorales de preparación para las certificaciones de Oracle.

– Guia para el examen de certificación (la actualización) 1Z0-805 de Mikalai Zaikin, quien ya lleva un largo recorrido preparando guías de certificación para casi todas las certificaciones Java.

Entonces, quien se anima a preparar esta certificación o para aquellos que están haciéndolo, ¿qué tal les va en la preparación? ¿Añadirían algún otro recurso a la lista que les he detallado anteriormente?

Material de estudio para la Oracle Certified Professional Java Programmer

Esta certificación antiguamente antes de la adquisición de SUN de parte de Oracle era llamada Sun Certified Java Programmer (SCJP), ahora el motivo de este post es compartir con ustedes el material con el cual considero es justo y suficiente para aprobar el examen de Oracle Certified Professional Java Programmer.

Comenzare con par de libros (listados abajo) cuya autora la considero de las mejores, ya que no solo se basa es presentarnos muy buenos ejemplos sino que a su vez explota los canales visuales y emocionales para el aprendizaje. Ella es Kathy Sierra. Además ella tambien ha creado una de las comunidades mas importante llamada javaranch, donde podras encontrar un inmenso foro que trata no solo de dudas acerca de certificaciones sino de programación en general, entre otras cosas, podras alli hallar enlaces a mas material recomendado por los foristas, asi como fe de erratas de los libros, libros review etc… muchas de las preguntas que ya te has hecho te asuguro que estan alli con sus respectivas respuestas.

Por otro lado si posees cuenta twitter (y si no, no dudes en crearte una rapidamente) no pierdas tiempo y conviertete en seguidor de la cuenta de Whizlabs, que diaramente nos ofreceran una pregunta tipo examen con su respectiva respuesta.

Por ultimo nunca pero nunca dejes de acudir a la Java API y de revisar el tutorial java. Con esto y un poco de esfuerzo de tu parte estoy seguro que lograras certificarte asi que te deseo Mucho exito!!!

Aquellos que ya se han certificado que nos recomendarias.