Lo mínimo e indispensable para ser un Data Engineer competente
Difícil que zafes
Python es lo que mucho denominan el lenguaje de facto en data. El rol de la Ingeniería de Datos no es ajeno a este lenguaje, de hecho, todo lo contrario, puede llegar a una herramienta del día a día en muchas empresas.
Pero, ¿qué es lo que tiene que conocer un Data Engineer sobre este lenguaje para ser competente? Veamos brevemente 9 conceptos básicos (el último es vital).
Quizá te tocó arrancar en este rol sin tener que tocar mucho código (algo poco probable pero posible) o a lo mejor estás buscando transicionar a Data Engineering y te preguntas cómo empezar. Sea como sea, espero que lo que veamos acá te sea de utilidad.
Los 9 conceptos
Si tu objetivo es introducirte en Data Engineering, esto es lo que se suele considerar conocimiento mínimo de Python para ser competente.
Si creés que falta algo, decime y lo agrego :)
- Variables: un espacio de almacenamiento en memoria volátil (RAM) que lleva un identificador (el nombre) y guarda un valor
- Operadores: aritméticos, de comparación y lógicos para trabajar con variables
- Estructuras de datos: formas de representar datos. Cada una tiene sus pros y contras, como así también casos de uso ideales. Consideralas como herramientas que deben usarse en el momento indicado (un martillo no siempre es la mejor opción, a veces es bueno ir por un destornillador). Algunas estructuras destacadas para estudiar…
- Listas: colección ordenada de elementos que pueden ser accedidos si se conoce la ubicación del elemento (también conocido como índice)
- Diccionarios: colección de pares clave-valor donde cada clave está mapeada a un valor usando una función hash. Muy eficientes en búsquedas
- Set: también conocida como “conjunto”, es otra colección de elementos similar a la lista pero que no admite valores duplicados
- Tupla: colección ordenada de elementos que no puede ser modificada, o en otras palabras, es inmutable
- Loops: o bucles, que permiten que una porción de código pueda ser repetida una cierta cantidad de veces
- Comprehension: una manera de escribir loops de forma compacta en listas, diccionarios o sets.
- Funciones: bloque de código que puede ser reutilizado según sea necesario. Esto permite tener cierta lógica definida en un único lugar, permitiendo que nuestro código sea más mantenible y fácil de utilizar.
- Clases y Objetos: esto hace referencia al paradigma de programación orientada a objetos, concepto importantísimo. Se puede pensar en una clase como un plano y a los objetos como creaciones realizadas en base a ese plano.
- Librería: conjuntos de módulos y funciones reutilizables. Python trae muchas por defecto y se pueden instalar más con pip, el gestor de paquetes más famoso de este lenguaje. En próximas ediciones vamos a ahondar en algunas librerías particularmente útiles para Data Engineering.
- Entornos virtuales: muy relacionado al concepto de librería, ya que un entorno virtual te permite generar un ambiente donde poder instalar librerías sin conflictos con el Python a nivel sistema. Más info acá.
- Excepciones: manejo de errores para que el programa siga funcionando ante problemas.
Conclusión
Como todo lenguaje, Python es un mundo. Pero no te abrumes. Si no sabes nada de nada, lo mejor es ver cuál puede ser tu próximo paso y arrancar por ahí.
¿Te gustaría aprender este lenguaje de manera ordenada, concepto por concepto y con ejercicios para practicar? Entonces tengo lo que buscás: Exercism.
Exercism es una plataforma gratuita (en inglés por ahora) con ejercicios guiados, mentoría de otros programadores y retos prácticos. Te ayuda a pasar de la teoría a la práctica rápido, con feedback real y casos concretos que simulan problemas del mundo real. Ideal para afianzar lo que aprendas en tus primeras lecciones.
Y no, Exercism no me sponsorea de ninguna manera y no me pagan por anunciarlos en mi blog (ojalá, je). Solamente comparto lo que me ha servido en mi aprendizaje y esta plataforma me parece muy buena para arrancar 😉
Demás está decir que si necesitás ayuda con la viborita, me tenés a un mensaje de distancia. Con gusto te ayudo :)