Resumen
En este episodio, dedicado a la dimensión de "hacking skills" de la "Trifuerza" (mentalidad de negocio, analítica avanzada y hacking skills), los conductores explican por qué un Data Scientist debe dominar más que programar: entender infraestructura, sistemas operativos, redes, memoria, costos de cómputo y calidad de código. Repasan el concepto de "hacker" como alguien creativo que conoce su entorno, los nueve valores del manifiesto de programación y la deuda técnica. Luego estructuran el tema en tres componentes: gestión y almacenamiento de datos (formatos, bases de datos, Data Warehouse/Lake/Mesh, IaaS/PaaS/SaaS), poder de cómputo y procesamiento, y versionamiento de código con git. Concluyen que trabajar en la nube da respaldo, acceso al equipo y cómputo elástico, y que es mejor preguntar con criterio (una regla práctica: tras una hora sin avanzar, preguntar). También hay espacio para memes y recomendaciones de canales sobre cómo funcionan los computadores.
Capítulos
- 00:00IntroBienvenida al episodio 46; se anuncia que el tema son los hacking skills, parte del típico diagrama de Venn de Data Science. La Trifuerza ayuda a identificar en qué área se está más fuerte o más débil.
- 00:15Qué es la "Trifuerza"?La Trifuerza (referencia a Zelda, aprendida de un exjefe) se compone de mentalidad de negocio, analítica avanzada y hacking skills. Se detalla la mentalidad de negocio (entender el problema, comunicar, storytelling, finanzas, impacto en millones, preguntar bien), la analítica avanzada (experiencia da soluciones "atingentes"; ejemplo de que balancear muestras no ha servido en su contexto) y se introduce el hacking skill: código robusto, capa semántica (ej. 10.000 clientes vs 1 millón), uso de una instancia AWS de 768 GB de RAM a unos 6 USD la hora, leer errores y buscarlos en Google de lo específico a lo general, y practicar formateando un PC propio.
- 28:22Qué es un "Hacker"?Se define al hacker como quien, con habilidad técnica, creatividad y mentalidad consultiva, busca soluciones no convencionales; conoce su infraestructura y contexto. Se distingue programador de desarrollador y se destaca la intuición de saber qué herramienta corresponde (el martillo y el clavo), además de la importancia de documentar para que otros entiendan.
- 35:00Manifiesto de programaciónSe repasan nueve valores: código resiliente y robusto, facilita el traspaso, distintas herramientas, paso sencillo a producción, cultura y estructura en común, eficiencia (paquetes conocidos, poca RAM) y generación de valor. Se explica la deuda técnica y que dejar el orden para el último día es costoso; se propone dedicar un rato semanal a revisar código. (Hay un incidente con anuncios automáticos de Twitch en el medio.)
- 42:30MemesMemes sobre comandos de redes (ipconfig), Linux, mods en videojuegos, Mr. Robot, diagramas de Venn, el "unicornio" que sabe todo, el dilema de código bueno vs rápido, PostgreSQL, soporte técnico ("apágalo y préndelo") y overclocking. También se discute si hacer un canal de gaming y se menciona emular Zelda Breath of the Wild.
- 55:10Gestión y almacenamiento de datosFormatos (csv, txt, xlsx vs rds, feather, parquet con compresión, lectura columnar y particionado), bases de datos OLTP/OLAP, columnares, de grafos, series de tiempo y vectoriales. Se explican Data Warehouse, Data Mart, Data Lake, Data Swamp, Data Lakehouse y Data Mesh, y los modelos IaaS, PaaS y SaaS, con el riesgo de vendor lock-in y la recomendación de ser agnóstico a la plataforma. Se mencionan Synapse (Microsoft), Snowflake y dbt.
- 01:15:33Poder de cómputo y procesamientoSe insiste en conocer CPU, RAM, disco, GPU, IP y puertos; ejemplo de servidores gigantes para usar un solo hilo. Hay un debate sobre si un Junior debe preguntar todo: se propone llegar con algo investigado y la regla de preguntar tras una hora sin avanzar. Se mencionan Linux, bash, paralelización y cómputo elástico en la nube, y se comenta la salida de Llama 2.
- 01:24:20Versionamiento de códigoSe explica que el código es el entregable principal y debe respaldarse con control de versiones; git sirve para respaldar, colaborar y volver a versiones anteriores, evitando archivos tipo "tesis_final_v3". Se mencionan otras herramientas de versionamiento y servicios en la nube.
- 01:30:28CierreResumen de la Trifuerza y de por qué trabajar en la nube (acceso del equipo, respaldo, cómputo elástico, código compartido). Se recomiendan una página sobre IPv4/IPv6 y un canal de YouTube que construye computadores de 8 bits y otros en juegos como Minecraft.