Coding Languages – Andres Rios Macias
Knowledge base

Coding Languages.

Los lenguajes que mueven el mundo de los datos. Python para análisis, Scala para Spark, Java para JVM, SQL para consultas, Bash para automatizar. Cada herramienta en su lugar.

5+
Lenguajes cubiertos
#1
Python en Data Eng.
SQL
Nunca pasa de moda

01 /

Los lenguajes esenciales

Py
Python
General Purpose · Scripting · Data

El lenguaje dominante en Data Engineering, Machine Learning y automatización. Su sintaxis limpia, ecosistema masivo y comunidad activa lo hacen la primera opción para cualquier proyecto de datos. PySpark, Pandas, Airflow y la mayoría de herramientas modernas tienen APIs en Python.

Úsalo para
ETL Pipelines PySpark Airflow DAGs ML / AI Automatización APIs REST
Ejemplo — ETL con PySpark
from pyspark.sql import SparkSession from pyspark.sql.functions import col, to_date spark = SparkSession.builder.appName("etl_job").getOrCreate() df = spark.read.csv("s3://bucket/raw/*.csv", header=True) df_clean = (df .filter(col("amount") > 0) .withColumn("date", to_date(col("ts"))) .dropDuplicates(["id"])) df_clean.write.parquet("s3://bucket/processed/")
Sc
Scala
JVM · Functional · Apache Spark nativo

Scala es el lenguaje en el que fue escrito Apache Spark. Combina programación orientada a objetos con programación funcional sobre la JVM. Para pipelines de Spark en producción a gran escala, Scala ofrece mejor performance y tipado estático que Python.

Úsalo para
Apache Spark Kafka Streams Akka Big Data prod. APIs tipo-seguras
Ejemplo — Spark en Scala
import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ val spark = SparkSession.builder .appName("ETLJob").getOrCreate() val df = spark.read .option("header", "true") .csv("s3://bucket/raw/*.csv") val clean = df .filter(col("amount") > 0) .withColumn("date", to_date(col("ts"))) clean.write.parquet("s3://bucket/processed/")
Jv
Java
OOP · JVM · Enterprise

Lenguaje de la JVM por excelencia. Hadoop, Kafka y HBase están escritos en Java. Es el lenguaje de producción en empresas grandes y el fundamento del ecosistema Big Data open-source. Verboso pero extremadamente robusto y portable.

Úsalo para
Hadoop Kafka Clients Spring Boot Microservicios HBase
Ejemplo — Kafka Producer
Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("key.serializer", "...StringSerializer"); props.put("value.serializer", "...StringSerializer"); KafkaProducer<String,String> producer = new KafkaProducer<>(props); producer.send(new ProducerRecord<>( "events-topic", "key1", "value1")); producer.close();
SQL
SQL
Query Language · Declarativo · Estándar

El lenguaje que nunca muere. SQL es indispensable para cualquier persona de datos: desde MySQL hasta Redshift, BigQuery, Hive o Spark SQL. Conocerlo a fondo — con window functions, CTEs y optimización de queries — separa a los junior de los senior.

Úsalo para
Análisis de datos Hive / HiveQL Spark SQL Redshift BigQuery dbt models
Ejemplo — Window function en HiveQL
SELECT user_id, event_date, revenue, SUM(revenue) OVER ( PARTITION BY user_id ORDER BY event_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS cumulative_revenue FROM events_table WHERE event_date >= '2024-01-01' ORDER BY user_id, event_date;
Sh
Bash / Shell
Scripting · DevOps · Automatización

El lenguaje del sistema operativo. Indispensable para automatizar tareas en servidores Linux, configurar entornos, escribir scripts de despliegue en CI/CD y orquestar procesos. Todo Data Engineer que trabaja con infraestructura cloud necesita dominarlo.

Úsalo para
Linux Admin CI/CD Scripts Cron Jobs AWS CLI Deploy scripts
Ejemplo — Script de backup a S3
#!/bin/bash # Backup diario a S3 DATE=$(date +%Y-%m-%d) BUCKET="s3://my-backups" SOURCE="/var/data/output" echo "Iniciando backup: $DATE" aws s3 sync $SOURCE $BUCKET/$DATE \ --exclude "*.tmp" \ --storage-class STANDARD_IA if [ $? -eq 0 ]; then echo "Backup exitoso ✓" else echo "Error en backup" >&2 fi
R
R
Estadística · Visualización · Ciencia de datos

Diseñado por estadísticos para estadísticos. R brilla en análisis exploratorio, visualizaciones complejas (ggplot2), modelos estadísticos y reportes reproducibles con R Markdown. Muy usado en academia, bioestadística y cuando los datos son más pequeños pero el análisis es profundo.

Úsalo para
Estadística ggplot2 tidyverse R Markdown Shiny apps
Ejemplo — Análisis con tidyverse
library(tidyverse) df <- read_csv("ventas.csv") resumen <- df %>% filter(monto > 0) %>% group_by(region, mes) %>% summarise( total = sum(monto), n_trans = n() ) %>% arrange(desc(total)) ggplot(resumen, aes(mes, total, fill=region)) + geom_col(position="dodge")

02 /

¿Cuál usar y cuándo?

Lenguaje Aprendizaje Performance Data Eng. Mejor para
Python ★★★★★ Fácil ★★★★★ ★★★★★ ETL, ML, Airflow, scripting general
SQL ★★★★ Medio ★★★★★ Motor ★★★★★ Consultas, DW, reportes, transformaciones
Scala ★★★★★ Difícil ★★★★★ ★★★★★ Spark en producción, pipelines de alto volumen
Java ★★★★★ Medio ★★★★★ ★★★★ Kafka clients, Hadoop, microservicios
Bash ★★★★★ Medio ★★★★ ★★★★★ DevOps, CI/CD, automatización de servidores
R ★★★★★ Medio ★★★★★ ★★★★★ Estadística, visualización exploratoria, academia

03 /

Consejos prácticos

🎯
Empieza con Python + SQL

Si estás comenzando en datos, estos dos te dan el 90% de lo que necesitarás en los primeros años. Python para lógica, SQL para consultas. Domínalos antes de moverte a Scala o Java.

Scala cuando Spark sea el core

Si tu trabajo gira alrededor de Spark en producción con grandes volúmenes, aprender Scala vale la inversión. El código es más verboso pero el debugging es más claro y la performance, superior.

🔧
Bash no es opcional

Trabajando con Linux, AWS o cualquier servidor, Bash aparece constantemente. Aprende lo suficiente para escribir scripts de automatización, manejar variables de entorno y procesar archivos.

📚
SQL avanzado te diferencia

La mayoría sabe SELECTs básicos. Dominar window functions, CTEs recursivos, optimización de query plans y partitioning te pone en un nivel completamente diferente.

🔄
Los lenguajes son intercambiables

El concepto de un ETL, un join o un aggregation es el mismo en Python, Scala, SQL o Java. Domina los patrones, no memorices la sintaxis. Los IDEs y la documentación te ayudan con lo demás.

🚀
Practica con proyectos reales

La mejor forma de aprender es construir: un pipeline con datos públicos (Kaggle, AWS Open Data), un script de automatización personal, o contribuir a un proyecto open-source en GitHub.


04 /

Ruta de aprendizaje recomendada

NIVEL 1
Fundamentos — primeros 3 meses

Aprende Python básico (variables, funciones, listas, diccionarios, manejo de archivos) y SQL con SELECTs, JOINs, GROUP BY y filtros. Instala un ambiente local con VS Code, Python y un cliente SQL como DBeaver.

Python básico SQL básico
NIVEL 2
Data Engineering — meses 4 a 9

Aprende Pandas, PySpark básico, y SQL avanzado (window functions, CTEs). Comienza con Bash para automatizar tareas. Construye tu primer pipeline ETL que lea, transforme y escriba datos a un destino real.

PySpark SQL avanzado Bash
NIVEL 3
Producción — meses 10 a 18

Agrega Airflow para orquestación, aprende los fundamentos de Java para entender Kafka y Hadoop, y considera Scala si trabajas intensivamente con Spark. Integra todo con AWS: EMR, Glue, S3, Kinesis.

Java básico Scala Airflow
NIVEL 4
Especialización — 18+ meses

Profundiza en el stack que uses en producción. Contribuye a proyectos open-source. Aprende sobre optimización de queries, cost-based optimization en Spark, y patrones de arquitectura como Lambda y Kappa.

Optimización Arquitectura Open Source

¿Necesitas un Data Engineer
que hable todos estos lenguajes?

Python, Scala, SQL, Java, Bash — experiencia real en producción.

© 2026 Andres Rios Macias me@andresriosmacias.com