En la ingeniería de datos, como lo vimos en la entrada anterior, se requiere de diversas habilidades para ejecutar distintas tareas. Sinceramente no conozco un programa from zero to hero que te prepare para ser un ingeniero de datos. Sin embargo, dadas las herramientas y habilidades de las cuales estuvimos hablando anteriormente, puedo recomendar algunos recursos que nos ayuden a iniciarnos en cada una de ellas para completar el perfil.
Seguiré el mismo patrón e iniciaré con las recomendaciones en orden de importancia.
Obligatorios: son aquellas herramientas o skills que deben manejar para ser un ingeniero de datos.
- Python: Para aprender python hay muchos recursos en la web, también hay muchos libros y tutoriales que nos pueden ayudar con esta tarea:
- Libro: Fluent Python es un libro que nos enseñara a programar desde un punto de vista ingenieril con paradigmas y patrones. Recordemos que para hacer data pipelines necesitamos más que pandas y numpy, necesitamos real python.
- Web: Python for beginners. Nada como la fuente de la verdad. Esta guía nos llevará paso a paso a aprender a usar Python a través de ejemplos.
- Web: The complete Python developer course. Es un curso accesible que nos enseña las bases de Python, es ideal para beginners.
- Tutorial: Hackerearth. Este tutorial nos enseña a usar las librerías pandas y numpy con ejemplos muy simples a los cuales les va aumentando complejidad conforme el curso avanza.
- Recursos: En esta liga comparto algunos ejercicios con pandas y numpy que pueden realizar para reafirmar el conocimiento en estas dos librerías.
- SQL: Los recursos que más recomiendo para aprender SQL son:
- Web: Cursos gratis de Udemy. El acceso a estos cursos es libre y maneja varios niveles, desde beginners hasta advanced.
- Tutorial: Guru99. Este es un tutorial muy completo para beginners, tiene ejemplos muy entendibles para dominar las bases.
- NoSQL: Más que aprender a usar alguna herramienta NoSQL, recomiendo que primero se entienda el concepto y sus casos de uso, para ello les comparto lo siguiente:
- Web: Beginners Book. Aquí aprenderán los conceptos básicos de NoSQL y además podrán practicar con las herramientas que ya existen en el mercado.
- Tutorial: Guru99. Un excelente recurso para aprender de este tipo de bases de datos siguiendo ejemplos concretos y diagramas ilustrativos.
- Git: Es muy importante aprender sobre el control de versiones, para ellos les dejo lo siguiente:
- Video: Curso práctico de Git y Github desde cero. Este es un video fácil de seguir, que nos dará información muy importante acerca del uso de esta herramienta de control de versiones.
- Web: Documentación de Git. Nada más certero que la documentación oficial de git para revisar cosas específicas de la herramienta.
- Procesos ETL: Aprendamos los principales conceptos con los siguientes recursos:
- Tutorial: Guru99. Todos los conceptos que necesitas aprender están aquí, y los muestran de una forma muy gráfica fácil de entender.
- Arquitecturas de datos: No soy una experta en este tema, digamos que apenas estoy aprendiendo, pero el siguiente libro me está cambiando la vida:
- Libro: Designing Data Intensive Applications, para darte una idea de lo que se trata, puedes leer el resumen que cree del capítulo 1.
- Habilidad de solucionar problemas: Debemos entrenar mucho para resolver problemas de código, aunque no son los que primariamente se le presentan a un ingeniero de datos, es bueno estar alerta 😛
- Web: hackerank … liberaremos el estrés resolviendo problemas de código en diferentes lenguajes de programación (Usen Python :D)
- Comunicación efectiva en inglés: Hay muchas maneras de aprender inglés, ya sea entrando a grupos de conversación, entrando a una escuela online (por el momento que vivimos), usando aplicaciones, etc. Lo que a mi me ha funcionado es lo siguiente:
- Leer todo en inglés.
- Usar Babbel
- Escribir por las noches mi diario en inglés (Creanme que esto ayuda mucho en la gramática y en aprender nuevas palabras)
- Hablar inglés en mi trabajo.
Más pedidos: son aquellas herramientas o skills que más empresas buscan y que por lo tanto es bueno que conozcan.
- Spark:
- Libro: Spark la guia definitiva. Nos enseña las bases de Spark, deployment, funciones, etc.
- Web: Edureka. Un tutorial que de una manera muy ilustrativa nos muestra los fundamentos de Spark.
- Web: Databricks. Aquí aprenderás a usar spark de una manera muy sencilla en la nube. Menos tiempo seteando spark, más tiempo programando!
- Scala: Realmente lo único que he aprendido de scala proviene del siguiente curso:
- Web: Scala & Functional Programming for Beginners | Rock the JVM. Este curso es realmente para beginners, enseña las bases del lenguaje con ejemplos sencillos y prácticos.
- Cloud: Es muy importante aprender los fundamentos, por ello recomiendo el siguiente video:
- Video: Cloud computing full course. Es un curso que está en inglés (vale la pena para practicar el listening), pero nos enseña acerca de las tres principales plataformas cloud que existen: AWS, Azure, Google Cloud.
Nice to have: son aquellas herramientas o skills que no todos tienen y que será una ventaja para ustedes el contar con ellas.
- Data warehouses: Aunque es parte de la arquitectura de datos, los data warehouses son todo un tema a explorar, para ello les comparto lo siguiente:
- Tutorial: Guru99. Aquí están todos los conceptos que necesitas aprender acerca de los data warehouses.
- Web: Kimball Group. En este sitio encontrarás todo lo referente a data warehouses y al modelo dimensional del que les hable en esta entrada.
- Visualización de datos: La visualización de datos la podemos descomponer en diferentes herramientas que se tienen que aprender, ya que por sí solo es todo un stack. Existen diferentes herramientas entre las cuales destacan:
- Tutorial: D3.js. Es una librería de Javascript que no es tan intuitiva si no sabes programar, pero que de lo contrario te permite crear gráficos hermosos y a tu gusto.
- Web: Data Storytelling and Data Visualization. En este curso nos enseñan a utilizar varias herramientas a la vez, desde excel hasta Python y R.
- Conocimientos de machine learning: Bueno este es todo un tema que me saltaré por esta ocasión ya que vale la pena descomponerlo en un solo artículo.
- Tecnologías de streaming: Existen varias tecnologías de streaming, las más populares son Apache Kafka y Spark streaming.
- Web: Kafka stream. Es el get started con esta tecnología. Aprenderemos a setear el ambiente y el uso primordial de la misma.
- Web: Spark streaming. Aquí encontraremos documentación y ejemplos de cómo usar esta tecnología.
Fuentes extra: Tengo la intención de revisar/tomar los cursos que a continuación les comparto. Ojala resulten buenos…
Sin duda alguna hay muchos recursos disponibles para poder formarnos en las tecnologías y habilidades que se requieren para llegar a ser un ingeniero de datos. Esta lista es muy mínima, son recursos que yo he utilizado y me han funcionado, espero que a ustedes tambien les sean de utilidad 😀
