¿Quiénes son ingenieros de datos y cómo llegar a serlo?

¡Hola de nuevo! El título del artículo habla por sí solo. A la espera del inicio del curso Ingeniero de datos Le sugerimos que comprenda quiénes son los ingenieros de datos. Hay muchos enlaces útiles en el artículo. Feliz lectura.

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

Una guía sencilla sobre cómo coger la ola de la Ingeniería de Datos y no dejar que te arrastre al abismo.

Parece que todo el mundo quiere convertirse en científico de datos en estos días. Pero ¿qué pasa con la ingeniería de datos? Esencialmente, se trata de una especie de híbrido entre analista de datos y científico de datos; Un ingeniero de datos suele ser responsable de gestionar flujos de trabajo, canalizaciones de procesamiento y procesos ETL.. Debido a la importancia de estas funciones, esta es actualmente otra jerga profesional popular que está ganando impulso activamente.

¡Los altos salarios y la gran demanda son sólo una pequeña parte de lo que hace que este trabajo sea extremadamente atractivo! Si quieres unirte a las filas de los héroes, nunca es demasiado tarde para empezar a aprender. En este post he recopilado toda la información necesaria para ayudarte a dar tus primeros pasos.

Así que vamos a empezar!

¿Qué es la ingeniería de datos?

Sinceramente, no hay mejor explicación que esta:

“Un científico puede descubrir una nueva estrella, pero no puede crearla. Tendrá que pedirle a un ingeniero que lo haga por él".

–Gordon Lindsay Glegg

Por tanto, el papel de un ingeniero de datos es bastante importante.

Como sugiere el nombre, la ingeniería de datos se ocupa de los datos, es decir, de su entrega, almacenamiento y procesamiento. En consecuencia, la tarea principal de los ingenieros es proporcionar una infraestructura confiable para los datos. Si observamos la jerarquía de necesidades de la IA, la ingeniería de datos ocupa las primeras 2 o 3 etapas: recopilación, movimiento y almacenamiento, preparación de datos.

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

¿Qué hace un ingeniero de datos?

Con la llegada del big data, el alcance de la responsabilidad ha cambiado drásticamente. Si antes estos expertos escribían grandes consultas SQL y destilaban datos utilizando herramientas como Informatica ETL, Pentaho ETL, Talend, ahora los requisitos para los ingenieros de datos han aumentado.

La mayoría de las empresas con vacantes abiertas para el puesto de ingeniero de datos tienen los siguientes requisitos:

  • Excelente conocimiento de SQL y Python.
  • Experiencia con plataformas en la nube, particularmente Amazon Web Services.
  • Se prefiere conocimiento de Java/Scala.
  • Buen conocimiento de bases de datos SQL y NoSQL (modelado de datos, almacenamiento de datos).

Tenga en cuenta que estos son sólo los elementos esenciales. De esta lista se puede suponer que los ingenieros de datos son especialistas en el campo del desarrollo de software y backend.
Por ejemplo, si una empresa comienza a generar una gran cantidad de datos de diferentes fuentes, tu tarea como ingeniero de datos es organizar la recopilación de información, su procesamiento y almacenamiento.

La lista de herramientas utilizadas en este caso puede variar, todo depende del volumen de estos datos, la velocidad de recepción y la heterogeneidad. La mayoría de las empresas no manejan big data en absoluto, por lo que, como repositorio centralizado, el llamado almacén de datos, puede utilizar una base de datos SQL (PostgreSQL, MySQL, etc.) con un pequeño conjunto de scripts que alimentan los datos. El almacén.

Los gigantes informáticos como Google, Amazon, Facebook o Dropbox tienen mayores requisitos: conocimientos de Python, Java o Scala.

  • Experiencia con big data: Hadoop, Spark, Kafka.
  • Conocimiento de algoritmos y estructuras de datos.
  • Comprender los conceptos básicos de los sistemas distribuidos.
  • Se valorará experiencia con herramientas de visualización de datos como Tableau o ElasticSearch.

Es decir, hay un claro cambio hacia el big data, concretamente en su procesamiento bajo cargas elevadas. Estas empresas han aumentado los requisitos de tolerancia a fallos del sistema.

Ingenieros de datos vs. científicos de datos

¿Quiénes son ingenieros de datos y cómo llegar a serlo?
Vale, esa fue una comparación simple y divertida (nada personal), pero en realidad es mucho más complicada.

En primer lugar, debe saber que existe mucha ambigüedad en la delimitación de los roles y habilidades de un científico de datos y un ingeniero de datos. Es decir, es fácil confundirse acerca de las habilidades necesarias para ser un ingeniero de datos exitoso. Por supuesto, hay ciertas habilidades que se superponen con ambos roles. Pero también hay una serie de habilidades diametralmente opuestas.

La ciencia de datos es un asunto serio, pero nos estamos moviendo hacia un mundo de ciencia de datos funcional donde los profesionales pueden realizar sus propios análisis. Para habilitar canalizaciones de datos y estructuras de datos integradas, se necesitan ingenieros de datos, no científicos de datos.

¿Hay más demanda de un ingeniero de datos que de un científico de datos?

- Sí, porque antes de poder hacer pastel de zanahoria, ¡primero debes recolectar, pelar y almacenar zanahorias!

Un ingeniero de datos entiende la programación mejor que cualquier científico de datos, pero cuando se trata de estadísticas, ocurre todo lo contrario.

Pero aquí está la ventaja de un ingeniero de datos:

Sin él, el valor del modelo prototipo, que a menudo consiste en un fragmento de código de pésima calidad en un archivo Python, obtenido de un científico de datos y que de alguna manera produce un resultado, tiende a cero.

Sin un ingeniero de datos, este código nunca se convertirá en un proyecto y ningún problema empresarial se resolverá de forma eficaz. El ingeniero de datos está intentando convertir todo esto en un producto.

Información básica que un ingeniero de datos debe saber

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

Entonces, si este trabajo saca la luz que llevas dentro y estás entusiasmado, puedes aprenderlo, dominar todas las habilidades necesarias y convertirte en una verdadera estrella de rock en el campo de la ingeniería de datos. Y sí, puedes lograrlo incluso sin habilidades de programación u otros conocimientos técnicos. ¡Es difícil, pero posible!

¿Cuáles son los primeros pasos?

Debes tener una idea general de qué es qué.

En primer lugar, la ingeniería de datos se refiere a la informática. Más específicamente, debe comprender algoritmos y estructuras de datos eficientes. En segundo lugar, dado que los ingenieros de datos trabajan con datos, es necesario comprender los principios de las bases de datos y las estructuras que las sustentan.

Por ejemplo, las bases de datos SQL B-tree convencionales se basan en la estructura de datos B-Tree, así como, en los repositorios distribuidos modernos, LSM-Tree y otras modificaciones de las tablas hash.

*Estos pasos están basados ​​en un gran artículo. Adilya Khashtamova. Entonces, si sabes ruso, apoya a este autor y lee. su publicación.

1. Algoritmos y estructuras de datos

Usar la estructura de datos correcta puede mejorar significativamente el rendimiento de un algoritmo. Idealmente, todos deberíamos aprender sobre estructuras de datos y algoritmos en nuestras escuelas, pero esto rara vez se cubre. En cualquier caso, nunca es demasiado tarde para conocerse.
Aquí están mis cursos gratuitos favoritos para aprender algoritmos y estructuras de datos:

Además, no se olvide del trabajo clásico de Thomas Corman sobre algoritmos: Introducción a los algoritmos. Esta es la referencia perfecta cuando necesitas refrescar tu memoria.

  • Para mejorar tus habilidades, utiliza Leetcode.

También puedes sumergirte en el mundo de las bases de datos con increíbles vídeos de la Universidad Carnegie Mellon en Youtube:

2. Aprenda SQL

Toda nuestra vida son datos. Y para extraer estos datos de la base de datos, es necesario "hablar" el mismo idioma con ellos.

SQL (lenguaje de consulta estructurado) es el lenguaje de comunicación en el dominio de datos. Independientemente de lo que digan, SQL ha vivido, está vivo y vivirá durante mucho tiempo.

Si ha estado en desarrollo durante mucho tiempo, probablemente haya notado que periódicamente surgen rumores sobre la muerte inminente de SQL. El lenguaje fue desarrollado a principios de los años 70 y sigue siendo muy popular entre analistas, desarrolladores y simplemente entusiastas.
Sin conocimientos de SQL no hay nada que hacer en ingeniería de datos, ya que inevitablemente tendrás que crear consultas para recuperar datos. Todos los almacenes de big data modernos admiten SQL:

  • Desplazamiento al rojo de Amazon
  • HP vertical
  • Oracle
  • SQL Server

... y muchos otros.

Para analizar una gran capa de datos almacenados en sistemas distribuidos como HDFS, se inventaron motores SQL: Apache Hive, Impala, etc. Mira, no va a ninguna parte.

¿Cómo aprender SQL? Simplemente hazlo en la práctica.

Para ello, recomendaría consultar un excelente tutorial, que, por cierto, es gratuito, de Análisis de modo.

  1. SQL intermedio
  2. Unir datos en SQL

Lo que hace que estos cursos sean especiales es que tienen un entorno interactivo donde puedes escribir y ejecutar consultas SQL directamente en tu navegador. Recurso SQL moderno no será superfluo. Y puedes aplicar este conocimiento a Tareas de código Leet en la sección Bases de datos.

3. Programación en Python y Java/Scala

Por qué deberías aprender el lenguaje de programación Python, ya lo escribí en el artículo Python vs R. Elegir la mejor herramienta para IA, ML y ciencia de datos. Cuando se trata de Java y Scala, la mayoría de las herramientas para almacenar y procesar grandes cantidades de datos están escritas en estos lenguajes. Por ejemplo:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Casandra (Java)
  • HBase (Java)
  • Colmena Apache (Java)

Para comprender cómo funcionan estas herramientas, es necesario conocer los idiomas en los que están escritas. El enfoque funcional de Scala le permite resolver eficazmente problemas de procesamiento de datos paralelos. Desafortunadamente, Python no puede presumir de velocidad y procesamiento paralelo. En general, el conocimiento de varios lenguajes y paradigmas de programación es bueno para la variedad de enfoques para la resolución de problemas.

Para sumergirse en el lenguaje Scala, puede leer Programación en Scala del autor del idioma. Twitter también publicó una buena guía introductoria: Escuela Scala.

En cuanto a Python, creo Pitón fluido Mejor libro de nivel medio.

4. Herramientas para trabajar con big data

A continuación se muestra una lista de las herramientas más populares en el mundo del big data:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Puede encontrar más información sobre cómo crear grandes bloques de datos en este increíble entorno interactivo. Las herramientas más populares son Spark y Kafka. Definitivamente vale la pena estudiarlos, es recomendable comprender cómo funcionan desde adentro. Jay Kreps (coautor de Kafka) publicó una obra monumental en 2013 El registro: lo que todo desarrollador de software debe saber sobre la abstracción de agregación de datos en tiempo realPor cierto, las ideas principales de este Talmud se utilizaron para crear Apache Kafka.

5. Plataformas en la nube

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

El conocimiento de al menos una plataforma en la nube está en la lista de requisitos básicos para los solicitantes del puesto de ingeniero de datos. Los empleadores prefieren Amazon Web Services, con la plataforma en la nube de Google en segundo lugar y Microsoft Azure completando los tres primeros.

Debe tener buenos conocimientos de Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistemas distribuidos

Trabajar con big data implica la presencia de grupos de computadoras que funcionan de forma independiente, cuya comunicación se realiza a través de una red. Cuanto más grande sea el clúster, mayor será la probabilidad de falla de sus nodos miembros. Para convertirse en un gran científico de datos, es necesario comprender los problemas y las soluciones existentes para los sistemas distribuidos. Esta zona es antigua y compleja.

Andrew Tanenbaum es considerado un pionero en este campo. Para aquellos que no le temen a la teoría, recomiendo su libro. "Sistemas distribuidos"Puede parecer desalentador para los principiantes, pero realmente le ayudará a perfeccionar sus habilidades.

Yo considero Diseño de aplicaciones con uso intensivo de datos por Martin Kleppmann Mejor libro de introducción. Por cierto, Martin tiene una maravillosa Blog. Su trabajo ayudará a sistematizar el conocimiento sobre la construcción de una infraestructura moderna para almacenar y procesar big data.
Para los que les gusta ver vídeos, hay un curso en Youtube. Sistemas informáticos distribuidos.

7. Canalizaciones de datos

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

Las canalizaciones de datos son algo sin lo que no puedes vivir como ingeniero de datos.

La mayoría de las veces, un ingeniero de datos construye el llamado canal de datos, es decir, crea un proceso para entregar datos de un lugar a otro. Estos podrían ser scripts personalizados que van a la API de un servicio externo o realizan una consulta SQL, aumentan los datos y los colocan en un almacén centralizado (almacén de datos) o en un almacén de datos no estructurados (lagos de datos).

En resumen: la lista de verificación básica para un ingeniero de datos

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

En resumen, se requiere una buena comprensión de lo siguiente:

  • Sistemas de información;
  • Desarrollo de software (Agile, DevOps, Técnicas de Diseño, SOA);
  • Sistemas distribuidos y programación paralela;
  • Fundamentos de bases de datos: planificación, diseño, operación y resolución de problemas;
  • Diseño de experimentos: pruebas A/B para probar conceptos, determinar la confiabilidad, el rendimiento del sistema y desarrollar caminos confiables para ofrecer buenas soluciones rápidamente.

Estos son solo algunos de los requisitos para convertirse en ingeniero de datos, así que aprenda y comprenda los sistemas de datos, los sistemas de información, la entrega/implementación/integración continua, los lenguajes de programación y otros temas de informática (no todas las áreas temáticas).

Y finalmente, lo último pero muy importante que quiero decir.

El camino para convertirse en Ingeniería de Datos no es tan sencillo como parece. Él no perdona, frustra y debes estar preparado para ello. Algunos momentos de este viaje pueden empujarte a rendirte. Pero esto es un trabajo real y un proceso de aprendizaje.

Simplemente no lo endulces desde el principio. El objetivo de viajar es aprender tanto como sea posible y estar preparado para nuevos desafíos.
Aquí hay una gran imagen que encontré que ilustra bien este punto:

¿Quiénes son ingenieros de datos y cómo llegar a serlo?

Y sí, recuerda evitar el agotamiento y descansar. Esto también es muy importante. ¡Buena suerte!

¿Qué os parece el artículo amigos? Te invitamos a seminario web gratuito, que tendrá lugar hoy a las 20.00 horas. Durante el seminario web, discutiremos cómo construir un sistema de procesamiento de datos eficaz y escalable para una pequeña empresa o startup a un costo mínimo. Como práctica, nos familiarizaremos con las herramientas de procesamiento de datos de Google Cloud. ¡Nos vemos!

Fuente: habr.com

Añadir un comentario