26 de marzo de 2018

Nueva certificación de Microsoft: Introducción a la programación usando Python

Actualización (noviembre de 2018): Unos meses después de que escribí esta entrada del blog tuve la oportunidad de presentar la certificación de PCAP (Certificación de Python a nivel asociado) ofrecida por el Python Institute. También escribí una entada respecto a esta experiencia, la cual complementa de manera relevante la información que se presenta a continuación.

Introducción

Una certificación profesional es un proceso por el cual una organización valida y dictamina el nivel de conocimiento y/o competencia que tiene una persona para un cierto trabajo o tarea. En el área de TI (Tecnologías de Información) las certificaciones profesionales comenzaron a popularizarse en la década de los años noventa a través de diversas empresas como Cisco, Novell, IBM, Oracle y Microsoft. Con ello cualquier individuo tiene, desde entonces, la posibilidad de ganarse las credenciales que avalan su dominio en el manejo de ciertas herramientas tecnológicas demandadas en la industria.

Fuente: www.certifiedeo.com

Hasta hace relativamente poco había tan solo un puñado de certificaciones relacionadas con Python, las cuales se podían obtener después de tomar uno o varios cursos presenciales o en línea (por el ejemplo los cursos ofrecidos por la Universidad de Illinois a través de la O’Reilly School of Technology) o presentando un examen no supervisado por Internet (como los ofrecidos por la empresa Brainbench). Sin embargo, no existía una certificación de Python que tuviera un amplio reconocimiento en la industria a nivel mundial. Por decir, algo equivalente a la certificación de Sun Microsystems/Oracle para el lenguaje Java o la certificación de Ruby ofrecida por la Ruby Association. Al parecer esta situación está cambiando a partir de hace unos meses.


El recién creado Python Institute anunció que está preparando dos certificaciones de tipo vendor-neutral (independientes de proveedor). El primero y más básico es el Python Certified Associate Programmer (PCAP), que será liberado supuestamente en este mismo mes (marzo de 2018). El segundo y más avanzado es el Python Certified Professional Programmer (PCPP), el cual está programado para ofrecerse a partir de julio de 2018. PCAP no tiene requisitos previos, pero, como es de esperarse, para ser PCPP primero se tiene que ser PCAP. Cada una de estas certificaciones se obtendrá pasando un examen supervisado en alguno de los más de cinco mil centros autorizados de evaluación Pearson VUE localizados alrededor del mundo. El costo anunciado de estos dos exámenes es de $295.00 USD, con la posibilidad de obtener un descuento del 50% si se toman los cursos en línea correspondientes, los cuales no tienen costo.

Otra opción para certificarse en Python apareció apenas en agosto de 2017. 98-381 “Introducción a la programación usando Python” es la clave y el nombre del nuevo examen ofrecido por Microsoft. Conviene mencionar que además de esta certificación, Microsoft recientemente ha hecho un esfuerzo encomiable para apoyar al lenguaje Python y a su comunidad. Por ejemplo, Python ahora corre en Visual Studio 2017, Visual Studio Code y el Subsistema de Windows para Linux; así mismo, Azure (el servicio de cómputo en la nube de Microsoft) permite crear Jupyter Notebooks (documentos que contienen código fuente, ecuaciones, visualizaciones y texto explicativo) de forma gratuita.

Fuente: www.microsoft.com

Desde el año 2000 he obtenido más de una decena de certificaciones profesionales, principalmente relacionadas con la plataforma Java. La verdad es que me gusta el desafío que representa obtener una certificación en algún área de mi interés. Así que cuando me enteré de que Microsoft estaba ofreciendo una certificación con Python no pude mas que sentirme intrigado y decidí aceptar el reto.

Meme generado en: imgflip.com

En lo que resta de esta entrada del blog comentaré los detalles más importantes de la nueva certificación de Microsoft así como mi experiencia personal presentando este examen.

Información general sobre el examen

NOTA: La información que se presenta a continuación fue recopilada durante los meses de febrero y marzo de 2018. Algunos datos podrían diferir en el futuro. Recomiendo consultar el sitio oficial de Microsoft para obtener la información actualizada.

El examen 98-381 (Introducción a la programación usando Python) está basado en la versión 3.6 (o superior) de Python y va dirigido en particular al siguiente público:
  • Profesionales de TI
  • Desarrolladores de software
  • Trabajadores de la información (information workers)
El sitio oficial además agrega esto:
Los candidatos a este examen deben poder reconocer y escribir de forma sintácticamente correcta código de Python, reconocer tipos de datos compatibles con Python y poder reconocer y escribir código de Python que resuelva lógicamente un problema concreto.

Se espera que los candidatos hayan tenido, como mínimo, clases y/o experiencia práctica de aproximadamente 100 horas con el lenguaje de programación Python, estén familiarizados con sus funciones y capacidades, y comprendan cómo escribir, depurar y mantener código de Python bien formado y documentado.
Específicamente se evalúan las siguientes habilidades:
  • Realizar operaciones usando tipos de datos y operadores.
  • Controlar el flujo con decisiones y ciclos.
  • Realizar operaciones de entrada y salida.
  • Documentar y estructurar código.
  • Diagnosticar problemas y gestionar errores.
  • Realizar operaciones usando módulos y herramientas.
En mi trabajo como profesor en el Tecnológico de Monterrey he impartido varias veces el curso de Fundamentos de programación usando Python, en el que cubrimos una gran porción de los temas mencionados arriba. Así que la mayor parte del contenido del examen ya lo manejaba bastante bien. Solo tuve que concentrarme en estudiar la parte del API de Python, específicamente los módulo math, datetime, io, sys, os, os.path y random. En total le habré dedicado unas tres o cuatro horas de estudio.

Al acreditar el examen 98-381 se obtiene la certificación MTA (Microsoft Technology Associate). Su costo varía según el país. Para México y otros países de Latinoamérica el costo del examen es de $62.00 USD. En Estados Unidos el examen cuesta $127.00 USD. El costo del examen en España y otros países de la Unión Europea es de €127.00 EUR. El examen se lleva a cabo por computadora y es necesario acudir a un centro de evaluación autorizado de Pearson VUE o Certipoint para presentarlo.

Distintivo (badge) MTA
(Microsoft Technology Associate)

El examen se ofrece en varios idiomas, incluyendo inglés y español. Yo hice mi examen en inglés, pues me inquieta la idea de no poder entender completamente las traducciones que luego se emplean para ciertos términos técnicos. Por ejemplo, en el mismo sitio en español de Microsoft usan la palabra “operarios” como traducción de operators en inglés. Sin embargo, la mayoría de la gente de habla hispana usamos el término “operadores”. De forma similar, yo uso el término “operaciones de rebanadas” como traducción de slicing operations, pero en el sitio de Microsoft le llaman “operaciones de troceado”. No dudo que otros autores traduzcan estos y otros términos de manera muy distinta. Para no tener que estar adivinando, prefiero presentar este tipo de exámenes siempre en inglés.

Fuente: www.trialinteractive.com

El estilo de las preguntas del examen es variado. Hay una serie de videos (en inglés) en los que se muestran todos los posibles tipos de pregunta. A mí principalmente me tocaron preguntas de opción múltiple o de arrastrar y soltar. En total, el examen consta de 40 preguntas, las cuales se deben responder en 45 minutos como máximo. Esto significa que se tiene, en promedio, un poco más de un minuto para responder cada pregunta. Estoy acostumbrado a terminar este tipo de exámenes con bastante tiempo de sobra, incluso alcanzo a repasar con relativa calma todas mis respuestas antes de darlo por terminado. Pero esta vez no fue así. Por primera vez no alcancé a terminar un examen de certificación en el tiempo designado. Me quedé sin poder responder las últimas dos preguntas.

Fuente: naturalsociety.com

Debo confesar que durante la recta final del examen comencé a sentirme agobiado y con dudas sobre mi capacidad para concluirlo de manera exitosa. Afortunadamente, todo salió bien al final. Se requieren 70 de un total de 100 puntos para pasar el examen. En mi caso obtuve 90 puntos, así que logré acreditarlo con bastante holgura, aún a pesar del par de preguntas que me faltaron responder.

El resultado del examen está disponible inmediatamente al terminar, el cual se proporciona en forma de un reporte como el que se muestra a continuación:


El reporte muestra el desempeño de cada una de las seis habilidades evaluadas en el examen usando barras horizontales. El desempeño es mejor entre más larga sea la barra.

Una vez acreditado el examen, el sitio de certificación de Microsoft proporciona la opción de descargar en formato electrónico el certificado correspondiente.

Certificado de MTA

Y a final de cuentas, ¿conviene certificarse?

El tema de las certificaciones en TI puede llegar a ser controvertido. Los detractores de las certificaciones consideran que éstas son solo un negocio para las compañías que las emiten, que no garantizan que alguien realmente domina el material examinado, y que la experiencia práctica obtenida en el trabajo y/o proyectos FOSS (software libre y de código abierto) es mucho más valiosa. A mi parecer estas críticas son bastante válidas, pero hay que considerarlas en su justa dimensión, pues de otra forma podríamos caer en el error de usarlas también en contra de cualquier esquema de educación formal.

El sitio de Microsoft enuncia las siguientes motivaciones para obtener una certificación profesional en el área de TI:
Las certificaciones le proporcionan una ventaja profesional al ser una prueba respaldada y mundialmente reconocida por la industria del dominio de unas habilidades, demostrando su capacidad y voluntad para aceptar las nuevas tecnologías. Verifique sus habilidades, consiga más oportunidades.
Para un joven recién graduado de una carrera profesional, alguien que posiblemente tenga poca o nula experiencia laboral, una certificación puede ser un factor importante para diferenciarse de otros candidatos a un mismo puesto de trabajo. Sin embargo, para alguien que ya tiene varios años de experiencia trabajando en la industria, las certificaciones pueden ser irrelevantes, aunque esto también depende del área de especialidad. Por ejemplo, las certificaciones en el área de seguridad, redes y administración de proyectos son más trascendentes que las del área de programación. El siguiente artículo (en inglés) escrito por Bob Violino hace una reflexión interesante sobre todo este asunto: The real dirt on programming certifications.

Para mí, en lo particular, las certificaciones han sido un medio para el desafío y la superación personal. Con ellas he podido validar y complementar mis habilidades y conocimientos, ya que me han motivado a prepararme en temas particulares que de otra forma difícilmente hubiera revisado por mi cuenta. Considero que las certificaciones han sido una buena inversión de mis recursos.

Fuente: emojiisland.com