Ensayo · Ensayos
Qué es un cuaderno Jupyter (y por qué es una gran forma de empezar a programar)
Un cuaderno Jupyter mezcla explicación y código ejecutable en el mismo documento. Qué es, cómo funciona y por qué creo que es una de las mejores puertas de entrada a la programación, sobre todo para enseñar.
Hay una herramienta que uso casi todos los días y que, cuando la enseño por primera vez, suele provocar la misma reacción: «¿esto se podía hacer así?». Son los cuadernos Jupyter. No son un lenguaje de programación ni un programa complicado: son una forma de escribir código y explicarlo en el mismo documento. Y creo que son una de las mejores puertas de entrada a la programación que existen hoy.
Qué es un cuaderno Jupyter
Un cuaderno Jupyter es un documento que junta dos cosas que normalmente viven separadas: el texto que explica y el código que se ejecuta. En un mismo archivo puedes escribir un párrafo con formato —títulos, listas, fórmulas, enlaces— y, justo debajo, un bloque de código en Python que se ejecuta y muestra su resultado ahí mismo: un número, una tabla, un gráfico.
El nombre viene de los tres lenguajes con los que nació —Julia, Python y R—, aunque en la práctica la inmensa mayoría de cuadernos son de Python. Es un proyecto libre y de código abierto, heredero de IPython, y se abre en el navegador: no hace falta instalar un entorno complicado para empezar a probar.
Lo importante no es la tecnología que hay debajo, sino el formato. Un cuaderno se lee de arriba abajo como un artículo, pero es un artículo que además puedes ejecutar.
Cómo funciona
Un cuaderno se organiza en celdas, y cada celda es de uno de dos tipos:
- Celdas de texto (en Markdown): donde escribes la explicación. Aquí va la teoría, los apuntes, las fórmulas, el porqué de lo que viene después.
- Celdas de código: donde escribes Python. Cuando ejecutas la celda, el resultado aparece justo debajo de ella.
Detrás del cuaderno hay un kernel: el proceso que ejecuta el código y recuerda el estado. Si en una celda defines una variable, las celdas siguientes la conocen. Eso permite construir un razonamiento por pasos: cargas unos datos en una celda, los transformas en la siguiente, los dibujas en una tercera —y entre medias, con texto, explicas qué estás haciendo y por qué.
Todo se guarda en un archivo con extensión .ipynb que contiene a la vez el
texto, el código y los resultados. Ese archivo se puede compartir, guardar en un
control de versiones y volver a ejecutar desde cero en otro ordenador.
Por qué creo que es la mejor forma de empezar a programar
Cuando alguien aprende a programar, el obstáculo rara vez es la sintaxis. Es la distancia entre la idea y el código: entender qué quieres hacer antes de pelearte con cómo se escribe. El cuaderno Jupyter acorta esa distancia, y lo hace por tres motivos.
Primero: puedes documentar antes de programar. Antes de escribir una sola línea de código, puedes redactar en Markdown la teoría, el planteamiento del problema o tus propios apuntes. El código deja de ser un texto aislado y pasa a estar rodeado de su explicación. Para quien aprende, eso convierte el cuaderno en un material de estudio que, además, funciona.
Segundo: el código está vivo. Como cada celda se ejecuta por separado, puedes cambiar una línea, volver a ejecutar y ver el efecto al instante, sin montar un programa entero para probar una idea. Ese bucle —escribir, ejecutar, equivocarse, corregir— es exactamente con el que se aprende a programar, y el cuaderno lo hace cómodo. Crear un ejemplo pequeño para entender un concepto cuesta segundos.
Y lo que más me gusta: sirve para enseñar. Un profesor puede preparar un cuaderno base —con la teoría explicada y el código a medio hacer— y entregárselo a sus alumnos. Cada alumno completa lo que necesita: rellena las celdas vacías, prueba variantes, anota sus dudas en una celda de texto. El cuaderno se convierte en un espacio de trabajo compartido donde la explicación y la práctica están en el mismo sitio. Doy clase de informática, y no conozco una forma más limpia de poner a un grupo entero a programar el primer día.
En mi propio trabajo —analizar señales de audio, probar modelos, mirar espectros— el cuaderno es donde ocurre casi todo antes de que nada se convierta en un programa formal. Pero esa es solo mi excusa para usarlos. La razón por la que los recomiendo es más simple: son la forma más honesta que conozco de aprender programando, porque te obligan a explicar lo que haces mientras lo haces.
Bibliografía
Las referencias en las que se apoya este artículo y por dónde seguir leyendo:
- Pérez, F. y Granger, B. E. (2007). «IPython: A System for Interactive Scientific Computing». Computing in Science & Engineering, 9(3), 21–29.
- Kluyver, T. et al. (2016). «Jupyter Notebooks — a publishing format for reproducible computational workflows». En Positioning and Power in Academic Publishing. IOS Press.
- Rule, A. et al. (2019). «Ten simple rules for writing and sharing computational analyses in Jupyter Notebooks». PLOS Computational Biology, 15(7).
- Project Jupyter — jupyter.org.