¿Que necesito para llegar a ser ingeniero de datos?

¡Que difícil es hablar de este tema!

La complicación viene porque es un rol muy “hot” actualmente y personas de diferentes backgrounds quieren llegar a ser ingenieros de datos, lo que yo les pueda recomendar en esta entrada podría no funcionarles a todos, pero tratare de generalizar.

Cuando se postean vacantes de ingeniería de datos, generalmente cuentan con requerimientos específicos acerca de las tecnologías y habilidades que el aplicante debe cumplir. Es una buena opción leerlas y prepararse en cada una de ellas, sin embargo creo que es una mejor idea crear una base de conocimientos acerca de ingeniería de datos. Lo que quiero decir es que tu preparación no debe depender por completo de los requisitos de una vacante.

La siguiente lista de herramientas y skills, es lo que yo considero que debe estar en la base de conocimientos que un ingeniero de datos debe tener.

Obligatorios: son aquellas herramientas o skills que deben manejar para ser un ingeniero de datos.

  • Python: Se debe saber programar en Python tanto orientado a scripting como orientado a la manipulación de datos. Es muy importante saber programar utilizando el paradigma orientado a objetos, conocer las bondades de python (list comprehensions, decorators, etc.) y saber cuando sacar ventaja de ellas. En cuanto a la manipulación de datos, saber utilizar Jupyter notebooks, pandas, numpy, matplotlib, entre otras cosas, ayudarán a tener visibilidad de los datos y a darles tratamiento.
  • SQL: Esto sí que es un MUST porque todo el tiempo se encontrarán manipulando datos a través de queries. Es un lenguaje universal que servirá para todas la bases de datos que siguen el paradigma relacional: MySQL, SQLServer, PostgreSQL, entre otras.
  • NoSQL: Aunque muchas empresas aún no confían en el modelo no relacional, es importante que sepan acerca de él, puesto que les permitirá pensar más ampliamente acerca de la arquitectura de datos y sugerir mejoras en base a casos de uso. 
  • Git: Aunque explícitamente no se encuentra en la mayoría de las vacantes de ingeniería de datos, yo sugiero que se aprenda a utilizar esta herramienta (o cualquier otra de control de versiones), porque de alguna manera es parte del proceso de desarrollo de software y creanme, un ingeniero de datos desarrolla mucho software, hay que seguir las buenas prácticas del desarrollo de software tradicional.
  • Procesos ETL: Esto es el pan de cada día. Necesitamos datos para trabajar y hay que conseguirlos, procesarlos y ponerlos disponibles para tratamientos futuros.
  • Arquitecturas de datos: Para que el flujo de datos sea efectivo, hay que tener una buena arquitectura. El diseño dependerá mucho del negocio y de los casos de uso, por lo tanto hay que tener conocimiento de las diferentes alternativas que existen para poder seguir patrones y buenas prácticas.
  • Habilidad de solucionar problemas: Para mí esto es lo más importante, esta habilidad es la que marca el rumbo hacia el éxito. Es independiente de las herramientas y es una práctica continua.
  • Comunicación efectiva en inglés: Definitivamente si se quiere tener éxito en cualquier entorno tech, el manejo del inglés es un must. Los ingenieros de datos deben tener la habilidad de comunicarse entre ellos y por supuesto con stakeholders, que son los que toman decisiones de negocio en base a datos.

Más pedidos: son aquellas herramientas o skills que más empresas buscan y que por lo tanto es bueno que conozcan.

  • Spark: El procesamiento de datos distribuido es el ahora y el futuro. Es importante que se maneje una tecnología de este calibre para poder lidiar con el procesamiento de datos a gran escala.
  • Scala: Es un lenguaje de programación muy popular (y bien pagado) en estos días. En cuanto a ingeniería de datos, la ventaja de saber usarlo radica en el hecho de que se comunica perfecto con spark puesto que ambos están basados en java. 
  • Cloud: Hoy en día todo (idealmente) radica en la nube. Es importante tener nociones de SaaS (software as a service), IaaS (infrastructure as a service) y PaaS (platform as a service).. Los ingenieros de datos normalmente utilizan y configuran muchas herramientas en la nube que sirven para llevar a cabo sus tareas del dia a dia: almacenar datos, ejecutar data pipelines, extraer datos, etc.

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: Esto es parte de la arquitectura de datos. Sin embargo quiero enfatizar que no todo ingeniero de datos tiene conocimiento profundo en modelos de datos. Saber construir estos modelos creanme que definitivamente les dará ventajas sobre cualquier otro candidato.
  • Visualización de datos: Parte del procesamiento de datos es la calidad de los mismos y las métricas usadas para medir dicha calidad. Si sabemos utilizar alguna herramienta de visualización de datos podremos “visualizar” y monitorear el flujo de nuestros datos, notar anomalías y trabajar en la manera de solucionarlas. Hay muchas tareas en las que podemos utilizar la visualización de datos.
  • Conocimientos de machine learning: Esto es todo un plus. En muchas empresas, el stakeholder de los ingenieros de datos son los ingenieros en machine learning o los científicos de datos. Proveerles datos para que desarrollen/ejecuten sus modelos es una de las tareas de los ingenieros de datos, pero si estos tienen el contexto de lo que se quiere lograr usando ML, podrían ayudar estructurando los datos para cierto propósito, de manera que ahorran tiempo a los científicos de datos en la manipulación de los datos. También podrían ayudar en el proceso del deployment del modelo de machine learning a un ambiente de producción.
  • Tecnologías de streaming: El manejo de datos en tiempo real sigue siendo todo un reto y para muchas empresas es una necesidad. El saber utilizar alguna tecnología de streaming definitivamente nos hace más competitivos en el mundo laboral de los ingenieros de datos.

¿Qué les pareció la lista? (y eso que me falto listar muchas cosas mas :P)

Tal vez se sientan abrumados con todo lo que les acabo de proponer, sin embargo recuerden algo muy importante, el aprendizaje de estas herramientas y habilidades es continuo y no siempre es fácil. La frase trillada de querer es poder aquí también aplica, porque no importa el background que tengan, con dedicación y disciplina pueden llegar a prepararse para llegar a ser un ingeniero de datos.

En la próxima entrada compartiré una lista de recursos que definitivamente pueden ayudar a poner manos a la obra en su camino hacia la ingeniería de datos, estén pendientes. 😀

3 comentarios en “¿Que necesito para llegar a ser ingeniero de datos?”

Replica a Emiliano Cancelar la respuesta