Resumen
En este episodio de enCoders se recorre el "setup" ideal de un Data Scientist: herramientas, configuraciones y prácticas que hacen el trabajo más eficiente y reproducible. Se habla de Git y plataformas como GitHub y Bitbucket, de IDEs (RStudio, VS Code, PyCharm, Spyder), de por qué evitar Jupyter Notebooks en favor de scripts con celdas, y de herramientas de pipelines como Kedro y Snakemake (complementarias a Airflow). También se tratan ambientes virtuales y Docker, Linux (SSH, Vim, tmux, terminales enriquecidas, alias), buenas prácticas (parametrización, modularización, estructura de carpetas), implementos de trabajo y extensiones de VS Code. Conclusión principal: no hay una receta única, pero conviene tener un orden estándar y reproducible, sumar complejidad (Kedro, Docker) solo cuando el proyecto madura, y conocer Linux y control de versiones como base.
Capítulos
- 00:00IntroSe presenta el tema: configuraciones, herramientas y prácticas para trabajar más eficientemente. Se justifica el setup óptimo (atajos de teclado, código manejable, ahorro de horas a largo plazo), se menciona el modo oscuro y la idea de no depender ciegamente de ayudas/extensiones, entendiendo también lo básico por consola.
- 04:41GitGit es fundamental y rara vez se enseña fuera de carreras de computación; permite ordenar el trabajo, volver a estados anteriores y colaborar. Se comparan GitHub y Bitbucket (este último ofrecía repositorios privados gratis para hasta cinco personas), se recomienda probar ambos (y GitLab) y se explica que las librerías abiertas están en GitHub por popularidad. También se menciona GitHub Pages/portafolio.
- 12:40RStudioPara R es casi obligatorio: R base se considera poco amigable para desarrollar y RStudio facilita ver variables, gráficos y atajos. Se comenta que corre Python vía reticulate (con reservas) y que RStudio cambia de nombre a Posit, con expectativa de mejor integración con Python.
- 17:11Otras IDEs para PythonSe repasa PyCharm (pagado, con versión para estudiantes, posible costo alto) frente a VS Code, que es más genérico y con extensiones para todo; también se muestra el visor de datos en VS Code y se menciona Spyder (polémico).
- 22:36JuliaNadie en su trabajo lo usa; es un lenguaje relativamente nuevo, sin comunidad tan grande, y no han tenido tiempo de aprenderlo. Se comenta que serviría para optimización y que su sintaxis es muy matemática.
- 24:01Muerte a los Jupyter NotebookCritican Jupyter: dificulta depurar (kernel aparte), obliga a correr celdas completas, guarda salidas y metadatos que pueden filtrar datos o claves al repositorio y ensucia el control de versiones. Proponen scripts `.py` con celdas `# %%` en VS Code, usar notebooks solo para presentar, y se menciona que la popularidad viene de lo que enseñan cursos y diplomados; Colab destacado por lo colaborativo.
- 39:13KedroSe explica el concepto de pipeline con nodos (input, función, output) y parámetros, y la importancia de una estructura estándar de proyecto. Kedro es solo para Python, su "Hello World" es largo, lo desarrolló QuantumBlack (McKinsey); se sugiere partir con scripts simples y pasar a algo robusto cuando el proyecto lo requiera. Se compara con Airflow y MLflow como herramientas complementarias.
- 50:05SnakemakeHerramienta nacida en bioinformática con el mismo concepto de inputs/outputs, compatible con cualquier lenguaje (R, Python, Julia, comandos), configurable en Python, que puede ejecutar dentro de contenedores y generar reportes. Entre Kedro y Airflow, los presentadores se inclinan por Airflow por ser menos rígido.
- 53:51Docker y Ambientes virtualesLos ambientes virtuales (virtualenv, etc.) aseguran reproducibilidad de librerías y versiones; se cuestiona el uso de conda/Anaconda. Docker es el siguiente nivel: empaqueta sistema operativo, paquetes y versiones para asegurar que corra igual en otro computador, útil para producción; se recomienda introducirlo cuando el proyecto escala.
- 01:00:00Configuraciones (en general Linux)Se argumenta que se termina trabajando en servidores Linux (incluso Azure corre Linux) y que aprenderlo ayuda a entender cómo funcionan los computadores. Se menciona transferir archivos con programas gráficos o por comando, WSL, SSH sin contraseña, Vim/Nano/Emacs, tmux, terminales enriquecidas (zsh, prompts como Liquid Prompt/Starship), `.bashrc`, alias y funciones (ej. `ls -lat`), y el modo oscuro.
- 01:18:57Buenas prácticasEstructura de carpetas estandarizada, parametrización temprana (ej. el mes/fecha del dataset en vez de dejarlo fijo) sin excederse en generalizar, distinguir parámetros variables y globales, y modularizar el código para insertar pasos fácilmente en un flujo.
- 01:22:31ImplementosSe recomienda una buena silla, un computador decente y buenas pantallas (discusión sobre cuántas y de qué tamaño, p. ej. 24 pulgadas). Se hace un resumen del episodio: SO, Git, IDE, ambientes virtuales, estructura de proyecto, pipelines, Linux, Anaconda como puerta de entrada para principiantes.
- 01:23:43Extensiones de Visual Studio CodeRepaso rápido: Git Graph, Git History, GitLens, Project Manager, Todo Tree, Live Share, extensiones de R y Python, Remote SSH, Peacock, formateadores (Prettier), Better Comments, Docker, Excel Viewer, LaTeX, Markdown All in One, Markdown Emoji, PowerShell, Quarto, iconos de archivos y una extensión de macros.
- 01:34:09CierreAgradecimientos, invitación al Discord y al newsletter para conocer el tema del próximo episodio.