Cómo ser Data Scientist y NO Morir en el Intento — Parte Final
Tabla de contenido
Este post es el final de la serie “Cómo ser Data Scientist y NO Morir en el Intento.” Hay dos partes anteriores:
- una que describe qué es Data Science, donde utilizamos la película Arrival como ejemplo;
- y otra que describe el proceso de aprendizaje,donde usamos la serie japonesa Hunter x Hunter como motivación.
Esta vez no usaré ficción como base, sino que hablaré desde mi experiencia. Específicamente, hablaré de actividades que te permitan adquirir y profundizar las tres habilidades que necesita un(a) Data Scientist: pensamiento computacional, modelamiento, y comunicación.
Aunque en la Web existen recursos para aprender cada una de estas habilidades por separado, en Data Science debemos mezclarlas para, por ejemplo, comunicar los resultados de aplicar un modelo matemático a un subconjunto de datos que se obtuvo al procesarlos con un algoritmo.
Encontrar ejemplos no es fácil.
Lo que haré es exponer distintas actividades que puedes llevar a cabo en las que ejercitarás y aumentarás tus habilidades de manera conjunta. Las oportunidades para aprender y crecer están a la vuelta de la esquina, pero requieren que miremos con un poco más de atención.
Las actividades que describiré son:
- resolver problemas para otres;
- asistir a meet-ups y conferencias;
- tener presencia activa en redes sociales;
- buscar mentoras y colaboradoras, y, también, enseñar;
- y desarrollar hobbies que permitan la transferencia de habilidades.
Comencemos.
Primero: Definamos las Habilidades #
Pensamiento Computacional #
El Pensamiento Computacional no está vinculado necesariamente a la computación como carrera, sino a la manera de enfrentar y desarrollar problemas. Jeannette Wing fue quien propuso el término en ese contexto, diciendo:
El pensamiento computacional involucra resolver problemas, diseñar sistemas y entender el comportamiento humano basándose en los conceptos fundamentales de las ciencias de la computación.[…]
Teniendo que resolver un problema particular, nos podemos preguntar: ¿cuán difícil es resolverlo? y ¿cuál es la mejor forma de resolverlo? Las ciencias de la computación se basan en fundamentos teóricos sólidos para responder a esas preguntas con precisión.[…]
En la solución eficiente de un problema, debemos preguntarnos adicionalmente si una solución aproximada es suficientemente buena, si podemos sacar ventaja de la aleatoriedad, y si se permiten falsos positivos o falsos negativos. El pensamiento computacional es reformular un problema aparentemente difícil en uno que sabemos resolver, tal vez por reducción, empotrado, transformación o simulación.
Pueden encontrar el artículo original aquí, y la traducción aquí.
Un ejemplo de pensamiento computacional es la idea “dividir para conquistar,” que consiste en separar un problema en problemas más pequeños, quizás de manera recursiva hasta que cada subproblema sea manejable, y luego mezclar los resultados.
Así, la próxima vez que te encuentres con un problema que parezca inabordable, piensa en cómo lo puedes descomponer en pedazos más pequeños que sí puedas atacar. Esto es particularmente relevante a la hora de trabajar con grandes candidates de datos, o de enfrentarse a un problema que parezca demasiado grande como para poder idear siquiera una solución.
Modelamiento #
El modelamiento se refiere a la capacidad de abstraer un fenómeno en términos formales, de tal modo que se puede medir en términos cuantitativos el efecto que queremos analizar. Haremos uso de la abstracción matemática, de modelos estadísticos, de la física, o, en general, de cualquier tipo de técnica formal proveniente de alguna disciplina con métodos cuantitativos.
Por ejemplo, últimamente hay mayor conocimiento respecto a los distintos sesgos que tenemos en nuestro comportamiento. Uno de ellos es la homofilia, es decir, la tendencia que tenemos a relacionarnos con gente similar a nosotres.
Es importante medir estas situaciones porque cada persona vive en su propia burbuja. Lo que observamos no es necesariamente representativo de la realidad. Entonces, la pregunta de investigación era: ¿cómo medir la homofilia? En uno de los casos de estudio de mi tesis, quise medir si esto se aplicaba a temas específicos. Como tema, estudié la discusión sobre aborto que había en Chile. Como datos, decidí utilizar Twitter entre julio y agosto de 2013. Allí la gente expresa sus ideas y, en ese aspecto, es tierra fértil para estudiar el comportamiento humano.
Una respuesta es modelando la discusión utilizando grafos, donde cada nodo es una persona (más bien, su perfil en Twitter), y dos personas están conectadas a través de una arista si ambas han intercambiado mensajes en la discusión sobre aborto. A continuación se visualiza el grafo de discusión que armé en esa ocasión. El color de cada nodo representa si una persona tiene una posición conservadora (verde) o pro-elección (púrpura). La hipótesis que queríamos probar con este modelamiento es si las personas tendían a discutir con quienes pensaban igual. Para los grafos, la métrica conocida como asortatividad permite medir la tendencia de los nodos a conectarse con nodos similares. Por tanto, la respuesta (que visualmente es evidente), también se pudo cuantificar.
Comunicación #
Es importante comunicar tus resultados de manera eficiente (con la mínima cantidad necesaria de recursos) y efectiva (entregar el mensaje que se desea entregar, y no otro).
También es importante saber escuchar, porque resolveremos problemas externos a nuestras áreas de especialización. Tendremos que usar su lenguaje, entender qué es importante en ese otro contexto, poder cuantificar el resultado obtenido en términos de las variables que importan en ese otro ámbito. Eso es algo que en la comunidad de User Experience (UX) tienen claro y de la cual debemos aprender como data scientists. Una comunidad que está haciendo grandes aportes en este tema es Más Mujeres en UX.
Por ejemplo, en UX se utilizan herramientas que hacen dialogar a las personas. Francisca Arévalo, de Telefónica I+D, diseñó dos instrumentos que aplicamos en un workshop con expertes de transporte, académiques, y personas usuarias de sistemas de transporte, en los que debían discutir y diseñar proyectos de investigación en torno a dos perspectivas: el alcance (Open Canvas) y el impacto (matriz de problemáticas). La idea de ambos instrumentos es que grupos de cuatro personas deben idear un proyecto y ponerse de acuerdo en el lenguaje a utilizar y en su importancia. Uno de ellos es la matriz de problemáticas que aparece en la imagen, que permite discutir dónde situar una investigación: ¿es básica (es decir, fundamental de un área) o aplicada (es decir, lo que buscamos en Data Science)?¿aporta suficiente valor? Si es una investigación meramente incremental, puede ser que su impacto no sea grande, puesto que era el paso a seguir de manera obvia.
El siguiente paso es mejorar las intersecciones entre estas habilidades. Leer lo que significa cada una puede ser motivante, pero enfrentarse a un vacío al intentar adquirirlas es frustrante. Tampoco ayuda que nos digan “hay que aprender haciendo.” ¿Haciendo qué?
A continuación las actividades que me aportaron en ese aspecto, al combinarlas con mi proceso de aprendizaje de cada habilidad individual.
1. Resolver Problemas para Otres #
Hay que aprender haciendo. Ahora bien, ¿si no tenemos experiencia, cómo nos van a contratar?
La experiencia no se adquiere solamente a través de trabajos remunerados. Existen dos actividades que pueden ayudarte a adquirir experiencia: hackathones y voluntariado.
Hackathones #
Las hackathones son eventos en los que se juntan equipos de personas en pos de resolver un problema específico en un tiempo limitado. Usualmente son competencias aunque también hay actividades colaborativas. Aunque suele exigirse la participación en equipos, en ocasiones éstos se arman en el momento. Si los equipos deben estar constituidos de antemano, pueden sugerirle a personas no cercanas que participen con ustedes. Es la oportunidad perfecta para complementar habilidades y aprender de otres.
Las hackathones fomentan un tipo de desarrollo que es crucial en Data Science, sobretodo en fases exploratorias: se necesita iterar rápido, porque lo importante es generar conocimiento accionable. La calidad de la iteración no es lo más importante. Podemos olvidarnos de la ingeniería de software, que más que aportar en estos casos, contamina. Porque lo que importa en la hackathon es la prueba de concepto, la demostración de la idea. Encontrar el desarrollo mínimo que permita demostrar que hay un camino a seguir.
La primera a la que asistí, junto a mi amigo Luca Chiarandini (hoy en Google), era sobre colecciones digitales de obras de arte, en el Museu Picasso en Barcelona. Los datos no eran un fin, sino un input más en la problemática de la hackathon: ¿cómo organizar y aprovechar las colecciones digitales para fomentar las visitas a museos y el uso del patrimonio cultural? Es una oportunidad que permitirá resolver un problema utilizando datos, adquiriendo un lenguaje de otra disciplina, y comunicando los resultados.
Después seguí participando en otras. Hicimos equipo con Luca y otro amigo, Diego Sáez-Trumper (hoy en Wikimedia Research). Teníamos personalidades distintas y, por ende, distintas maneras de reaccionar ante la presión. Las cosas no siempre salían como queríamos. Otras veces, nos dimos cuenta que habíamos malentendido lo que se esperaba en la hackathon. En otras, nos dimos cuenta que nuestro trabajo se podía interpretar de múltiples formas, y teníamos que aprovechar eso para presentarlo. Sí, mejoramos nuestra programación, pero en otros aspectos crecimos más.
En Chile también se hacen hackathones. La primera en la que participé se llamó Abre CL y se realizó en noviembre de 2014. Participé junto a mi amigo Alonso Astroza, hicimos visualizaciones sobre el transporte en la ciudad. Titulamos nuestro proyecto “Los Dos Santiagos.” La siguiente imagen muestra una de las visualizaciones que hicimos, a partir del uso de tarjetas bip! en la ciudad.
El evento fue genial. Se hizo en una casona en Providencia, organizado por la Unidad de Modernización del gobierno. Allí conocí personas motivadas por el movimiento Open Data, por la visualización de datos (hola, @palamago), y también me reencontré con otras a quienes les había perdido la pista.
Una hackathon que ya se ha hecho dos veces y que al parecer llegó para quedarse es la Youth for Public Transport Hackathon, que se enfoca en problemas de movilidad y transporte público. Este año se llama HackAmericas y todavía tienes tiempo para inscribirte. ¿Qué esperas? Como ves en la imagen, es una hackathon de nivel internacional. Su tema ser el transporte, algo que nos concierne a todes. Nota que Santiago no es Chile: también se llevará a cabo en Temuco y Concepción.
¿Hay alternativa a las hackathones? #
¡Sí! Puedes acercarte a organizaciones sin fines de lucro y ofrecerles colaborar de manera voluntaria. Muchas ONGs trabajan con datos, tanto recolectados de fuentes oficiales como generados por ellas mismas. Trabajar con ellas generará beneficios mutuos: tú aprendes haciendo algo que importa, y ellas ganan insights. Y quién sabe, puede ser una puerta de entrada al mundo laboral de la Data Science.
2. Asistir a Meetups y Conferencias #
Las hackathones se enfocan en hacer; las meet-ups, por otra parte, en conocer y observar. Nos permiten contar lo que estamos haciendo sin ser juzgados, conocer en qué están otras personas involucradas en el área, y ejercitar nuestras habilidades de sintetizar y explicar lo que hemos hecho. La mayoría de la gente que asiste busca conocer a otras personas y pasarlo bien.
En Santiago, hay dos meet-ups que me parecen geniales: Santiago Data Visualization y Santiago Machine Learning. Aunque son de dos aspectos técnicos de Data Science, son un buen punto de partida.
Allí puedes mostrar experimentos que hagas. En Chile existen datasets interesantes, como la encuesta CASEN, las encuestas Origen-Destino, que permiten responder preguntas relevantes para la sociedad. Junto a mis amigos Diego Caro y Denis Parra una vez presentamos en un meetup nuestro trabajo que eventualmente compartí en el post sobre las ciudades ocultas de Santiago. Fue una gran experiencia donde recibimos mucho feedback y, además, descubrimos cuáles elementos del trabajo eran relevantes para un público general. Ése fue el lugar donde mostramos en pṕublico por primera vez esta imagen, que fue el comienzo del fin de un proyecto que tomó tres años en el Instituto de Data Science de la Universidad del Desarrollo (pronto tendremos más novedades al respecto, mantente en sintonía ;) ).
Las conferencias o simposios tienen una mayor escala, se presentan trabajos o propuestas que ya están maduras, o al menos ya han sido iteradas, y también suele ser más difícil conocer gente. En Chile, eventos como Chile Women in Computing (que al momento de escribir este post tiene abierta la convocatoria de ponencias), o la misma StarsConf que originó estos posts, son grandes lugares de encuentro. Hay que perder la timidez y atreverse a conversar con otras personas, incluyendo quienes presentan sus trabajos. ¡Para eso lo hacemos!
3. Amplificar Conexiones en Redes Sociales #
Es importante estar al día de lo que sucede en el área y para ello las redes sociales son una buena herramienta. Por ejemplo, yo leo y actualizo frecuentemente Twitter. También nos permiten difundir nuestros proyectos, recibir feedback, encontrar potenciales colaboraciones, o incluso expandir los límites de nuestra red. A través de Twitter he hecho conexiones que después me han abierto puertas. Así surgió mi trabajo en San Francisco, y también he conocido a otres data scientists que más adelante he conocido en persona, en distintas conferencias a lo largo del mundo. Es más fácil hablarle a alguien en un evento cuando existe ese contacto inicial.
En Reddit existen comunidades especializadas donde pueden difundir su trabajo. No siempre es efectivo, pero cuando se viraliza, las consecuencias pueden ser sorprendentes. En mi caso, difundí allí un post que hice sobre uno de mis hobbies: jugar Street Fighter. Fue un ejercicio de Machine Learning que se que hice con mi amigo Alonso Astroza. Como resultado, el post se viralizó, y me invitaron a publicarlo en el sitio web más relevante en el tema. El post no fue importante por la técnica; en realidad, es sencillo. Lo relevante fue el área de aplicación y la pregunta que motivó el experimento.
Las redes sociales están para que las usemos. ¡Aprovechémoslas!
4. Buscar (y ser) Mentoras y Colaboradoras #
Es importante la reflexión y el autoaprendizaje. Pero también necesitamos subirnos a hombros de gigantes.
Ciertamente hay personas que nos mentorean de manera formal, y yo tuve la fortuna de contar con grandes personas que me apoyaron de una manera que me impactará por siempre. Contar con personas que sepan mostrarte un camino, demostrarte que no saber no significa estar limitade, que es humano equivocarse, y que podemos seguir creciendo. Que no estaba solo en la incertidumbre. En el doctorado, esas personas para mí fueron Ricardo, Mounia y Daniele. Fue tal el apoyo que recibí que prometí intentar hacer lo mismo con otres.
Ahora bien, ¿cómo encontrar a estas personas? Busquen proyectos de software libre donde contribuyan personas de quienes quieran aprender, y participen. Únanse a proyectos comunitarios como Wikipedia. Escriban tutoriales de lo que ya han aprendido y publíquenlo. Quienes les den feedback podrían ser potenciales mentores.
Y podrían ser quienes menos esperamos que lo sean.
Estar en el otro lado del aprendizaje también te aportará: dicen que la mejor manera de aprender es enseñar. No duden en compartir el material que generan. Serán un aporte para otres y al mismo tiempo reflexionarán sobre cómo mejorar su código y su análisis.
Como muestra, el último material que subí fue un set de Jupyter Notebooks para analizar el censo chileno del 2017. Los puedes encontrar en este repositorio de github. No tengan miedo de que el código no sea perfecto. El mío no lo es. Lo que importa es que haga la pega. Al compartir código de esta manera no solamente reflexiono respecto a qué es lo que hace, sino que otras personas me hacen preguntas y comentarios interesantes que me llevan más allá de las intenciones originales.
5. Desarrollar Hobbies que Catalicen Habilidades #
Por último, los hobbies son una herramienta poderosa para mejorar, pero no cualquiera. Tiene que ser uno que estimule la creatividad, donde no seamos sujetos pasivos. Esto incluye escribir, pintar, componer música, cocinar, bailar, jugar videojuegos, entre otras. Por ejemplo: cocinar requiere paciencia. En demasía. No se puede llegar a buenos resultados sin una ardúa planificación y organización.
Los franceses inventaron el concepto mise en place, que se refiere a organizar, limpiar, preprocesar y disponer los ingredientes antes de la preparación. ¿Les suena conocido este proceso? Un buen ejercicio es intentar dominar la preparación de un plato específico, como el risotto. Sus ingredientes básicos son arroz, caldo de verduras, vino blanco, queso parmesano, mantequilla. Se ve sencillo, pero cada detalle que se pase por alto puede arruinarlo por completo. ¿No hiciste un buen caldo?¿No mediste la cantidad de erroz?¿No utilizaste buen queso parmesano?¿No rellenaste la olla cuando debiste hacerlo?¿No revolviste suficiente?¿Revolviste demasiado?¿El fuego estaba demasiado alto?¿O quedó crudo?Etc. He pasado muchas tardes revolviendo la olla sin parar para terminar con un resultado mediocre. Lo único que podía hacer entonces es reflexionar respecto a dónde falló el proceso, y volver a intentarlo. Es doloroso, puesto que la única manera de lograrlo es hacerlo una y otra vez hasta que salga bien, reflexionando en cada ocasión, probando distintas proporciones en los ingredientes, distintas temperaturas, distintas disposiciones. Es un proceso de experimentación continua más que de repetición e insistencia.
En la descripción anterior hay un proceso de Data Science. Descubrirlo requiere que reflexiones, que busques la analogía, que descubras cuál es la actitud que tienes en ambas situaciones (cocina y ciencia), y cómo mejoraría tu trabajo si reduces las falencias que encuentres. Pensar qué es lo que estás aprendiendo y cómo lo puedes transferir a tus habilidades en Data Science te permitirá crecer.
¿Preparades para iniciar el camino? #
Todo lo que les he contado hasta ahora nace de mis experiencias. Espero que el post no haya sido demasiado autoreferente, pero creo que es necesario mirar atrás y compartir lo que he aprendido.
Mi camino comenzó cuando inicié el doctorado, sin embargo, no es necesario empezar (y menos terminar) un PhD para ser Data Scientist. Conozco personas con doctorado que no tienen mindset de Data Scientist, y personas sin doctorado que sí lo tienen — y ninguna de esas opciones es mejor que la otra.
He puesto énfasis en el aporte que otras personas han hecho a mi formación. No soy una persona del todo sociable, y ha sido difícil para mí abrirme al mundo, sin embargo, hacerlo ha tenido un impacto que no puedo expresar con palabras. Cambiar de vida y empezar de cero en todo aspecto cuando me fui a Barcelona me ayudó. No tengas miedo de ir a territorio desconocido; las oportunidades para hacerlo son más de las que crees. No hay que ser brillante: yo nunca he ganado una beca, ni un fondo concursable, ni premio alguno. Pero he sido perseverante.
Independiente del camino que sigas, no debes detener en el aprendizaje. Cada aventura será diferente y necesitarás incorporar nuevos conocimientos para superarla. Si llega el día en el que la solución no presente incertidumbre, ese día entonces ya no estarás haciendo Data Science.
¡Éxito en tu camino, data scientist!