Daniel Morales_

Maker - Data Scientist - Ruby on Rails Fullstack Developer

Twitter:
@daniel_moralesp

2020-12-18 17:52:15 UTC

Plan De Estudios Para Aprender Data Science En Los Próximos 12 Meses

Cómo habíamos hablado en una post anterior, estamos terminando 2020 y es hora de hacer planes para el próximo año, y uno de los planes y preguntas más importantes que debemos hacer es ¿que queremos estudiar?, ¿que queremos reforzar?, ¿qué cambios queremos hacer? y cual es el rumbo que vamos a tomar (o a seguir) en nuestras carreras profesionales. 

Muchos de ustedes estarán empezando en el camino a convertirse en data scientist, de hecho puede que lo estén evaluando, ya que han escuchado mucho sobre el tema, pero tienen algunas dudas, por ejemplo acerca de la cantidad de ofertas laborales que puede existir en ésta área, dudas acerca de la tecnología en sí, y acerca del camino que deberían seguir, teniendo en cuenta la amplia gama de opciones para aprender. 

Yo soy un partidario de que debemos aprender de varias fuentes, de varios mentores y de varios formatos. Con fuentes me refiero a las diferentes plataformas virtuales y presenciales que existen para estudiar. Por mentores me refiero a que siempre es una buena idea escuchar los diferentes puntos de vista y de enseñanza de diferentes profesores, y por formatos me refiero a las opciones entre libros, videos, clases, y otros formatos donde está contenida la información. Cuando extraemos información de todas estas fuentes reforzamos el conocimiento aprendido, pero siempre necesitamos una guía, y este post pretende dar algunas luces y estrategias prácticas al respecto. 

Para decidir sobre las fuentes, los mentores y los formatos dependerá de ti escogerlos. Depende si prefieres material en español o en inglés, o si prefieres mezclarlos. También depende de tus gustos y facilidad de aprendizaje: por ejemplo, hay personas que se les da mejor aprender de libros, mientras que otros prefieren aprender de videos. Algunos prefieren estudiar en plataformas que son prácticas (con código en línea), y otros prefieren en plataformas tradicionales: como las de las universidades o MOOCs. Otros prefieren pagar por contenido de calidad, otros prefieren buscar solamente material gratuito. Es por ello que no daremos una recomendación en específico en este post, sino que daremos un plan de estudios. 

Para iniciar debes tener en cuenta el tiempo que vas a dedicar a estudiar y la profundidad en el aprendizaje que puedes lograr, ya que si te encuentras sin trabajo podrías estar disponible a tiempo completo para estudiar, lo cual es una enorme ventaja. Mientras que si estás trabajando tendrás menos tiempo y deberás disciplinarte para poder disponer del tiempo en las noches, en las mañanas o los fines de semana. Finalmente, lo importante es cumplir la meta de aprender y quizás dedicar tu carrera profesional a esta apasionante área!

Dividiremos el año en trimestres de la siguiente manera
  • Primer Trimestre: Aprendiendo Las Bases
  • Segundo Trimestre: Subiendo El Nivel: Conocimientos Intermedios
  • Tercer Trimestre: El Proyecto Real - Un Proyecto Full-stack
  • Cuarto Trimestre: Buscando Oportunidades Mientras Se Mantiene la Práctica

Primer Trimestre: Aprendiendo Las Bases


Si quieres ser más estricto puedes tener fechas de inicio y terminación para este periodo de estudio de las bases. Podría ser algo como: Desde Enero 1 Hasta Marzo 30 de 2021 como fecha límite. Durante este periodo estudiarás lo siguiente:

Un lenguaje de programación que podrás aplicar a data science: Python o R. 
Te recomendamos Python debido al simple hecho de que aproximadamente el 80% de las ofertas de trabajo en data science piden conocimientos en Python. Ese mismo porcentaje se mantiene con respecto a los proyectos reales que encontrarás implementados en producción. Y sumamos el hecho de que Python es multipropósito, así que no “perderás” tu tiempo si en algún momento decides enfocarte por ejemplo en desarrollo web, o de escritorio. Aquí podrás ver otros motivos por los que Python es el líder en data science. Este sería el primer tema a estudiar en los primeros meses del año.


Familiarizarte con estadística y matemáticas. 
Existe un gran debate en la comunidad de data science alrededor de sí necesitamos estas bases o no las necesitamos. Escribiré un post más adelante sobre esto, pero la realidad es que SI lo necesitas, pero SOLO las bases (por lo menos al principio). Y quiero aclarar este punto antes de continuar. 

Podríamos decir que data science se divide en dos grandes campos: Investigación y Desarrollo por un lado y poner algoritmos de Machine Learning en producción por el otro lado. Si usted más adelante decide enfocarse en Investigación y Desarrollo (Research), si va a necesitar matemáticas y estadística en profundidad (muy en profundidad). Si vas a irte por la parte práctica, las librerías te ayudarán a lidiar con la mayor parte de ello, bajo el capó. Cabe aclarar que la mayor cantidad de ofertas laborales, se encuentran en la parte práctica. 

Para ambos casos, y en esta primera etapa solo necesitarás lo básico de:

Estadística (con Python y NumPy)
  1. Estadística descriptiva
  2. Estadistica inferencial
  3. Hypothesis testing
  4. Probabilidad
Matemáticas (con Python y NumPy)
  1. Algebra Lineal
  2. Calculo Multivariable

Nota: Recomendamos que estudies primero Python antes de ver estadistica y matematicas, debido a que el reto es implementar estas bases estadísticas y matemáticas con Python. No busques tutoriales teóricos que muestran solo diapositivas o ejemplos estadísticos y/o matemáticos en Excel, ¡se vuelve muy aburrido y poco práctico! Deberías elegir un curso, programa o libro que te enseñe esos conceptos de forma práctica y con Python. Recuerda que Python es lo que finalmente empleamos, por ello necesitas elegir bien. Este consejo es clave para que no abandones en esta parte, ya que será la más densa y difícil. 

Si tienes estas bases en los primeros tres meses, estarás listo para dar un salto de calidad en tu aprendizaje para los siguientes tres meses.


Segundo Trimestre: Subiendo El Nivel: Conocimientos Intermedios


Si quieres ser más estricto puedes tener fechas de inicio y terminación para este periodo de estudio en el nivel intermedio. Podría ser algo como: Desde Abril 1 hasta el 30 de Junio de 2021 como fecha límite. 

Ahora que tienes unas buenas bases de programación, estadística y matemáticas, es hora de avanzar y conocer las grandes ventajas que tiene Python para aplicar análisis de datos. Para esta etapa estarás enfocado en:

Stack de Python para data science
Python tiene las siguientes librerías que debes de estudiar, conocer y practicar en esta etapa

Pandas es la librería in-facto para análisis de datos, es una de las herramientas más importantes (si no la más importante) y poderosas que debes de conocer y dominar durante tu carrera como data scientist. Pandas te facilitará enormemente la manipulación de datos, la limpieza y la organización de los mismos. 


Feature Engineering
Muchas veces no se profundiza en el aprendizaje de la ingeniería de las características (o Feature Engineering), pero si quieres tener modelos de Machine Learning que hagan buenas predicciones y/o clasificaciones y mejorar los scores, dedicar un tiempo a esta materia es invaluable! 

La ingeniería de características es el proceso de utilizar el conocimiento de los dominios para extraer características de los datos en bruto mediante técnicas de minería de datos. Estas características pueden utilizarse para mejorar el rendimiento de los algoritmos de aprendizaje automático. La ingeniería de características puede considerarse como el propio aprendizaje automático aplicado. Para lograr el objetivo de una buena ingeniería de características debes conocer las diferentes técnicas que existen, por tanto es una buena idea que al menos estudies las principales. 


Modelos Básicos de Machine Learning
Finalizando esta etapa iniciarás con el estudio de Machine Learning. Este es quizás el momento más esperado! Aquí es donde empiezas a conocer los diferentes algoritmos que podrás utilizar, que problemas en particular puedes resolver y cómo puedes aplicarlos en la vida real. 

La librería de Python que te recomendamos para empezar a experimentar con ML es: scikit-learn. Sin embargo es una buena idea que puedas encontrar tutoriales donde explican la implementación de los algoritmos (al menos los más sencillos) desde cero con Python, ya que la librería podría ser una “Caja negra” y podrías no entender lo que está sucediendo bajo el capó. Si aprendes a implementarlos con Python, podrás tener unas bases más sólidas. 

Si implementas los algoritmos con Python (sin una librería), pondrás en práctica todo lo visto en la parte de estadística, matemática y de Pandas.

Estas son algunas recomendaciones de los algoritmos que al menos deberías conocer en esta etapa inicial

Aprendizaje supervisado
  • Regresión Lineal Simple
  • Regresion Lineal Multiple
  • K-nearest neighbors (KNN)
  • Regresion Logistica
  • Arboles de Decisión
  • Random Forest
Aprendizaje No Supervisado
  • K-Means
Bonus: si tienes el tiempo y estas dentro de los rangos de tiempo, puedes estudiar estos
  • Algoritmos Gradient Boosting
  • GBM
  • XGBoost
  • LightGBM
  • CatBoost
Nota: no te pases más de los 3 meses estipulados para esta etapa. Porque te estarás retrasando e incumpliendo con el plan de estudios. Todos tenemos falencias en esa etapa, es normal, sigue adelante y luego podrás retomar algunos conceptos que no entendiste en detalle. Lo importante es tener el conocimiento básico y avanzar!. 

Si al menos logras estudiar los algoritmos mencionados de aprendizaje supervisado y no supervisado, tendrás una idea muy clara de lo que podrás hacer en el futuro. Así que no te preocupes por abarcarlo todo, recuerda que es un proceso, y lo ideal es que tengas unos tiempos claramente establecidos para que no te frustres y sientas que estás avanzando. 

Hasta aquí llega tu estudio “teórico” de las bases de un Data Scientist, que de hecho se ha especializado como Machine Learning Engineer. Ahora seguiremos con la parte práctica!

Tercer Trimestre: El Proyecto Real - Un Proyecto Full-stack


Si quieres ser más estricto puedes tener fechas de inicio y terminación para este periodo de estudio en el nivel intermedio. Podría ser algo como: Desde Julio 1 hasta el 30 de Septiembre de 2021 como fecha límite. 

Ahora que tienes unas buenas bases de programación, estadística, matemáticas, análisis de datos y de algoritmos de machine learning, es hora de avanzar y poner en práctica real todos estos conocimientos.

Muchas de estas sugerencias podrían sonar fuera de lo común, pero creeme que harán una gran diferencia en tu carrera como data scientist. 

Lo primero es crear tu presencia web:
  • Crea una cuenta en Github (o GitLab), y aprende Git. Poder manejar diferentes versiones de tu código es importante, deberías tener un control de versiones sobre los mismos, por no decir que tener una cuenta de Github activa es muy valiosa para demostrar tus verdaderas habilidades. En Github también podrás montar tus Jupyter Notebooks y hacerlos públicos, así demuestras también tus habilidades. Este es el mío por ejemplo: https://github.com/danielmoralesp
  • Aprende lo básico de programación web. La ventaja es que ya tienes Python como una habilidad, por tanto puedes aprender Flask para crear una página web sencilla. O puedes usar algún motor de templates como Github Pages, Ghost o el mismo Wordpress y crear así tu portafolio en línea. 
  • Compra un dominio con tu nombre. Algo como minombre.com, minombre.co, minombre.dev, etc. Esto es valiosísimo para que puedas tener tu CV online y lo actualices con tus proyectos. Allí podrás hacer una gran diferencia, mostrando tus proyectos, tus Jupyter Notebooks y dejando ver que tienes las habilidades prácticas para ejecutar proyectos en esta área. Existen muchos templates front-end para que adquieras gratis o de pago, y le des un look más personalizado y agradable. No uses subdominios gratuitos de Wordpress, Github o Wix, se ve muy poco profesional, haz el tuyo propio. Aqui esta el mío por ejemplo: https://www.danielmorales.co/
  • Monta todos los ejercicios y proyectos que has hecho hasta ahora, en los 6 meses previos, a tu portafolio en línea. Ya tienes material para darte a conocer, no importa que tan profesionales luzcan tu Jupyter Notebooks, trata de arregarlos un poco y móntalos. Mis Jupyter Notebooks por ahora los estoy montando de forma privada aqui: https://www.narrativetext.co/

Elige un proyecto que te apasione y crea un modelo de Machine Learning a su alrededor.

El objetivo final de este tercer trimestre es crear UN ÚNICO proyecto, que a ti te apasione, y que sea ÚNICO entre los demás. Resulta que en la comunidad existen muchos proyectos típicos, como predecir los Sobrevivientes del Titanic, o predecir el precio de las Casas en Boston. Ese tipo de proyectos son buenos para aprender, pero no lo son para demostrarlos como tus proyectos ÚNICOS

Si te apasiona el deporte, trata de predecir los resultados de fútbol de tu liga local. Si te apasionan las finanzas, trata de predecir los precios de las acciones de la bolsa de valores de tu país. Si te apasiona el marketing, trata de buscar a alguien que tenga un e-commerce e implementa un algoritmo de recomendación de productos y súbelo a producción. Si te apasionan los negocios: haz un predictor de las mejores ideas de negocio para 2021. 

Como vez en este caso estas limitado por tus pasiones y por tu imaginación. De hecho esas son las dos claves para que hagas este proyecto: Pasión e Imaginación

Sin embargo no esperes hacer dinero de ello, estás en una etapa de aprendizaje, necesitas que ese algoritmo esté montado en producción, haz una API en Flask con ella, y explica en tu sitio web como lo hiciste y cómo la gente puede acceder a él. Este es el momento de brillar, y a la vez es el momento de mayor aprendizaje.

Muy seguramente te encontrarás con obstáculos, si tu algoritmo da un 60% de Accuracy después de un gran esfuerzo de optimización, no importa, termina todo el proceso completo, súbelo a producción, trata de que algún amigo o familiar lo use, y ése será el objetivo cumplido para esta etapa: Hacer un proyecto Full-stack de Machine Learning

Con full-stack me refiero que tu hiciste todos los siguientes pasos:
  1. Obtuviste los datos de alguna parte (scrapping, open data o API)
  2. Hiciste un análisis de datos
  3. Limpiaste y transformaste los datos
  4. Creaste Modelos de Machine Learning
  5. Subiste el mejor modelo a producción para que otras personas lo usen.

Esto no significa que todo este proceso es lo que harás siempre en tu trabajo, pero significa que conocerás cada una de las partes del pipeline que se necesita para un proyecto de data science para una empresa. Tendrás una perspectiva única!


Cuarto Trimestre: Buscando Oportunidades Mientras Se Mantiene la Práctica



Si quieres ser más estricto puedes tener fechas de inicio y terminación para este periodo de estudio en el nivel intermedio. Podría ser algo como: Desde Octubre 1 hasta el 31 de Diciembre de 2021 como fecha límite. 

Ahora tienes conocimientos teóricos y prácticos. Has implementado un modelo en producción. El paso siguiente depende de ti y de tu personalidad. Digamos que eres alguien emprendedor, y tienes la visión de crear algo nuevo a partir de algo que descubriste o que viste una oportunidad de hacer negocio con esta disciplina, así que es el momento de empezar a planear cómo hacerlo. Si ese es el caso, obviamente este post no abarcara ese proceso, pero tu deberías de saber cuales podrán ser los pasos a seguir (o empezar a averiguarlos).

Pero si eres de los que quieren emplearse como data scientist aquí van mis consejos. 

Consiguiendo trabajo como data scientist

"No vas a conseguir trabajo tan rápido como piensas, si sigues pensando de la misma forma".
Autor

Resulta que todas las personas que inician como data scientists se imaginan trabajando para las grandes empresas de su país o de su región. O incluso remoto. Resulta que si aspiras a trabajar en una empresa grande como data scientist te vas a frustrar al ver los años de experiencia que piden (3 o más años) y las habilidades que solicitan.

Las grandes empresas no contratan Juniors (o muy pocas lo hacen), precisamente porque ya son grandes empresas. Tienen el músculo financiero para exigir experiencia y habilidades y pueden pagar un salario acorde (aunque no siempre es el caso). El tema es que si te enfocas allí te vas a frustrar!. 

Aquí debemos volver a lo siguiente: "Necesitas creatividad para conseguir un trabajo en data science"

Como todo en la vida debemos empezar en diferentes escalones, en este caso, desde el principio. Aquí están los escenarios

  • Si estás trabajando en una empresa y en un rol no relacionado con ingeniería debes demostrar tus nuevas habilidades a la empresa en la que trabajas. Si por ejemplo trabajas en el área de servicio al cliente, deberías aplicarlo a tu trabajo, y hacer por ejemplo, análisis detallados de tus llamadas, de los porcentajes de conversión, almacenar la data y hacer predicciones sobre ella! Si puedes tener datos de tus compañeros, ¡podrías tratar de predecir las ventas de ellos! Esto puede sonar gracioso, pero se trata de que tan creativamente puedes aplicar data science a tu actual trabajo y cómo demostrarle a tus jefes lo valioso que es y EVANGELIZARLOS acerca de los beneficios de la implementación. Te harás notar y seguramente podrían crear un nuevo departamento o puesto de trabajo relacionado con data. Y tu ya tienes el conocimiento y la experiencia. La palabra clave aquí es Evangelizar. Muchas empresas y empresarios apenas estan empezando a ver el poder de esta disciplina, y es tu tarea alimentar esa realidad.
  • Si estás trabajando en un área relacionada con ingeniería, pero que no es data science. Aquí aplica lo mismo del ejemplo anterior, solo que tienes algunas ventajas, y es que podrías acceder a la data de la empresa, y podrías usarla a beneficio de la empresa, haciendo análisis y/o predicciones sobre la misma, y nuevamente EVANGELIZAR a tus jefes tus nuevas habilidades y de los beneficios del data science. 
  • Si estás desempleado (o no quieres o no te sientes a gusto siguiendo los dos ejemplos anteriores), puedes empezar a buscar por fuera, y lo que te recomiendo es que busques emprendimientos y/o startups de tecnología donde apenas están formando los primeros equipos y que estén pagando algún salario, o incluso tengan opciones sobre acciones de la empresa. Obviamente aquí los salarios no serán exorbitantes, y los horarios de trabajo podrían ser más extensos, pero recuerda que estás en la etapa de aprendizaje y práctica (apenas en el primer escalón), por tanto no puedes exigir, debes aterrizar un poco las expectativas y acoplarte a esa realidad, y dejar de pretender que te paguen 10.000 dólares al mes en esta etapa. Pero 1.000 dólares si podría ser algo muy interesante para iniciar esta nueva carrera. Recuerda, eres un Junior en esta etapa.

La conclusión es: no pierdas el tiempo viendo y/o aplicando a ofertas de grandes empresas, porque te vas a frustrar. Se creativo, y busca oportunidades en empresas más pequeñas o recién creadas.


El aprendizaje nunca se detiene
Mientras estás en ese proceso de búsqueda de trabajo o de oportunidades, la cual podría tomarte la mitad de tu tiempo (50% buscando oportunidades, 50% seguir estudiando), tienes que seguir aprendiendo, deberías avanzar a conceptos tales como Deep Learning, Data Engineer u otros temas que sientes quedaron flojos de las etapas pasadas o enfocandote en los temas que te apasionen dentro de este grupo de disciplinas en data science. 

Al mismo tiempo puedes elegir un segundo proyecto, y dedicarle un tiempo a ejecutarlo de principio a fin, y asi aumentar tu portafolio y tu experiencia. Si éste es el caso, trata de buscar un proyecto completamente diferente: si el primero lo hiciste con Machine Learning, que este segundo sea con Deep learning. Si el primero lo montaste a producción en la web, que este segundo lo montes a una plataforma móvil. Recuerda, la clave es la creatividad!

Conclusion


Estamos en un momento ideal para planear 2021, y si éste es el camino que quieres tomar, empieza a buscar las plataformas y los medios por los que quieres estudiar. ¡Ponte manos a la obra y no dejes pasar esta oportunidad de convertirte en data scientist en el 2021!

Si estas [email protected] tengo este portafolio de cursos prácticos en data science, ojalá puedas tomarlo y te enseñaré más en detalle cómo lograr este objetivo para el 2021

Nota: estamos construyendo una comunidad privada en Slack de data scientist, si quieres unirte escribenos al email: [email protected]

Gracias por leer!