Volumen 022 · Frogmación Podcast

7 ramas de las matemáticas que necesitas dominar para dedicarte a la programación

Por Juan Gabriel Gomila • • 27 min de audio

0:00 / 0:00
Episodio 022: 7 ramas de las matemáticas que necesitas dominar para dedicarte a la programación

Ver el episodio

Momentos clave

Sí, necesitas matemáticas para dedicarte al desarrollo; no, no necesitas una carrera entera. Este capítulo recorta siete ramas concretas, explica para qué sirve cada una en programación, análisis de datos, inteligencia artificial o videojuegos, y pone una cifra realista al tiempo que cuesta dominarlas.

La pregunta que llega cada semana

El capítulo nace de una duda recurrente entre estudiantes y futuros estudiantes: si de verdad hacen falta matemáticas para dedicarse a los videojuegos, al análisis de datos, a la inteligencia artificial, al blockchain o al desarrollo de apps. La respuesta es doble: sí hacen falta, pero no hace falta una carrera entera.

«hay gente que quiere dedicarse a crear videojuegos, con Unity o con Unreal, hay gente que se quiere dedicar a la análisis de datos o a la inteligencia artificial programando en Python o en R»

La cinta del aeropuerto

La metáfora que sostiene todo el episodio. Las matemáticas no hacen que el programa salga solo, sino que se suman a tu velocidad de aprendizaje como la cinta de un aeropuerto se suma a tu paso. El error es subirse y quedarse quieto: la cinta acelera a quien sigue caminando.

«es que tú camines y a tu velocidad normal de andar se le sume la velocidad de la cinta para ir, pues casi casi el doble de rápido»

Álgebra lineal, la estructura de trabajo

La primera rama y el cimiento de casi todas las demás. Organiza los números en vectores, matrices y tensores, que son las estructuras con las que se guardan los datos, se alimenta una red neuronal o se calculan los movimientos geométricos de un videojuego o de una interfaz.

«muchas de las otras ramas que luego comentaré se fundamentan encima del algebra lineal»

Estadística descriptiva y los servidores

La rama que describe y resume los datos con medias, varianzas, desviaciones y gráficos. Es obligatoria en análisis de datos, pero el ejemplo que da viene de los videojuegos: saber cómo se distribuyen tus datos permite anticipar una avalancha de usuarios o, al contrario, apagar instancias que nadie está usando.

«en la estadística descriptiva aprendemos a calcular medias a calcular varianzas desviaciones típicas modas»

Cálculo: funciones, máximos y mínimos

El estudio del continuo y de las funciones. Sirve para identificar extremos, dominios, áreas y tendencias, y sobre todo para entender las transformaciones que hay detrás de las funciones de activación de una red neuronal o de las propiedades de una función que se usa para cifrar. Es la rama que conviene tener en la cabeza más que en el ordenador.

«gracias al cálculo podemos describir esas funciones identificar máximos mínimos puntos de inflexión»

Programación y matemática discreta

Programar es escribir en forma de recetas los algoritmos y las operaciones matemáticas, y por eso cuenta como rama. El aviso alcanza a perfiles no técnicos, porque automatizar informes también es escribir código. Su reverso matemático es la matemática discreta, que trabaja con conjuntos discretos donde el cálculo trabaja con continuos.

«así que aquí nadie está salvo todos deberíamos controlar al menos un lenguaje de programación»

Métodos numéricos: cuando no hay solución exacta

La mayoría de ecuaciones interesantes no se pueden despejar. Los métodos numéricos aportan algoritmos que se acercan a la respuesta iterando, sin garantizar el óptimo pero llegando a algo suficientemente bueno. El descenso del gradiente de una red neuronal, el método de Newton, el trazado de rayos o los shaders del agua y la hierba salen de ahí.

«nos permite probar algoritmos que paso a paso vayan convergiendo que sin llegar a ser la mejor solución la óptima si que sea una buena solución»

Probabilidad antes, estadística después

Las dos últimas ramas, que él prefiere separar con una definición muy clara. La probabilidad modela lo que va a pasar y verifica que los datos cumplan las hipótesis que un algoritmo necesita; la estadística analiza lo que ya pasó con contrastes, intervalos de confianza, regresión o reducción de la dimensión. Juntas son lo que hoy se vende como ciencia de datos.

«para mí la probabilidad es el estudio de antes de que ocurra algo la estadística es el estudio después de que ocurra algo cuando tenemos acceso esos datos»

El episodio, en profundidad

Hay una pregunta que aterriza en la bandeja de entrada de Juan Gabriel Gomila casi cada semana, y viene tanto de estudiantes como de gente que todavía se lo está pensando: para dedicarme a esto, ¿necesito saber matemáticas? El capítulo 22 de Frogmación está dedicado entero a responderla, y la respuesta tiene dos mitades que conviene leer juntas.

La primera es que sí. La segunda es que no hace falta tanto como te imaginas.

la respuesta es sí necesitas saber matemáticas y la respuesta también es sí tranquilo, no necesitas ser un matemático o haber hecho toda una carrera matemáticas para poder dedicar a estos temas

El contexto son las rutas de aprendizaje de Frogames Formación y la gente que llega a ellas con objetivos muy distintos: «hay gente que quiere dedicarse a crear videojuegos, con Unity o con Unreal, hay gente que se quiere dedicar a la análisis de datos o a la inteligencia artificial programando en Python o en R». También quien viene a la visualización de datos con herramientas de arrastrar y soltar, quien va al blockchain o quien quiere hacer apps de Android, de iOS o web. En todos esos caminos las matemáticas aparecen, pero no aparecen todas.

La cinta del aeropuerto

La imagen que usa para explicarlo es buena porque no promete magia. En los pasillos kilométricos de un aeropuerto hay cintas transportadoras, y siempre está el que se sube y se queda quieto mirando el paisaje. Ese no es el uso correcto: «es que tú camines y a tu velocidad normal de andar se le sume la velocidad de la cinta para ir, pues casi casi el doble de rápido».

Saber matemáticas es ir encima de la cinta. No hace que un programa te salga solo ni que una red neuronal aprenda mejor por arte de birlibirloque; hace que llegues antes al planteamiento correcto. Es una formación anexa que acelera un proceso al que también llegarías por tu cuenta, solo que tardando bastante más.

Los tres cimientos

De todo el mapa de las matemáticas, el episodio recorta siete piezas y las ordena. Las tres primeras son la base sobre la que se levanta el resto: «muchas de las otras ramas que luego comentaré se fundamentan encima del algebra lineal».

Álgebra lineal. Es la parte que organiza los números en vectores, matrices y tensores, y que define las estructuras con las que vas a trabajar: los datos que entran en una red neuronal, las matrices de covarianzas del análisis, las traslaciones y movimientos geométricos de un videojuego o de una interfaz. Álgebra y geometría van de la mano en cuanto hay algo visual de por medio. En el catálogo esto es el curso de álgebra lineal, que se hace a mano pero también con código en R, en Python y en Octave.

Estadística descriptiva. La rama que se dedica a describir y mostrar los datos: «en la estadística descriptiva aprendemos a calcular medias a calcular varianzas desviaciones típicas modas», además de diagramas de caja, histogramas, nubes de puntos y líneas de tendencia. Es obligatoria en análisis de datos, pero el ejemplo más ilustrativo del episodio viene de los videojuegos: saber qué forma tienen tus datos te permite anticiparte «a una avalancha masiva de usuarios que podría saturar un servidor y provocar su caída», o al caso contrario, servidores vacíos y facturas de Amazon que podrías estar ahorrando. Su curso es el de estadística descriptiva con R y Python.

Cálculo. El estudio del continuo, de las funciones y de sus transformaciones: «gracias al cálculo podemos describir esas funciones identificar máximos mínimos puntos de inflexión», el dominio, el área bajo la curva o la tendencia. Aquí es donde dejan de sonar a chino las funciones de activación de una red neuronal, la sigmoide o la entropía cruzada, y donde entiendes qué propiedades tiene la función con la que estás cifrando algo. Es el curso de cálculo en una variable, y es la rama que más conviene tener en la cabeza y no en el ordenador.

Las cuatro que se apoyan encima

Programación. Parece la intrusa de la lista y es justo lo contrario: «la programación no es más que plasmar en forma de instrucciones en forma de recetas en forma de líneas de código algoritmos». Automatizar cálculos, transformar datos, iterar hacia un resultado que muchas veces no es el óptimo sino simplemente uno lo bastante bueno. Y el aviso va más allá del perfil técnico, porque quien hace marketing acaba automatizando informes: «así que aquí nadie está salvo todos deberíamos controlar al menos un lenguaje de programación». Controlar no significa ser experto: en tres meses se manipulan datos, se cargan, se transforman y se representan. La recomendación para empezar es Python de la A a la Z por su curva de aprendizaje, y desde ahí ya se abre el camino a R, a Kotlin, a Java o a lo que pida tu campo.

Matemática discreta. El reverso del cálculo: donde uno trabaja con conjuntos continuos, la otra trabaja con conjuntos discretos, esos 0, 1, 2, 3 dispersos que luego son variables y transformaciones dentro de tu código. Es, dice el episodio, lo que la programación acaba plasmando sin que le pongamos el nombre. Está en el curso de matemática discreta con Python.

Métodos numéricos. La rama con la mejor justificación práctica de todo el capítulo. Muchísimos problemas no tienen solución explícita: si mezclas senos, cosenos y exponenciales en una ecuación igualada a cero, no vas a despejar la x por mucho álgebra que sepas. Ahí entran los algoritmos que se acercan a la respuesta paso a paso, porque el método «nos permite probar algoritmos que paso a paso vayan convergiendo que sin llegar a ser la mejor solución la óptima si que sea una buena solución». El ejemplo canónico es el descenso del gradiente de una red neuronal, bajando el error poco a poco; el clásico de toda la vida, el método de Newton. Y también está en el trazado de rayos de un videojuego o en los shaders que mueven la hierba y las olas para que parezcan de verdad.

Probabilidad y estadística. Van juntas en el conteo pero él prefiere separarlas, y la distinción es la frase más útil del episodio: «para mí la probabilidad es el estudio de antes de que ocurra algo la estadística es el estudio después de que ocurra algo cuando tenemos acceso esos datos». La probabilidad fue lo que le permitió modelar a priori, en una empresa de videojuegos en la que trabajó, cómo se iban a comportar los usuarios, quién iba a pagar y quién iba a abandonar. Y es la que te dice si tus datos cumplen las hipótesis que un algoritmo necesita. La estadística llega después: contrastes de hipótesis, intervalos de confianza, análisis de la varianza, regresión, clasificación, reducción de la dimensión. Para la primera mitad está el curso de probabilidad.

Cuánto tiempo cuesta esto de verdad

El cierre es una cuenta honesta. Los cursos de estas ramas rondan las 40 o 50 horas cada uno, lo que con constancia sale a un mes por curso: medio año para tener una base de matemáticas y programación con la que subir al siguiente nivel. Y si suena a mucho, la comparación va al otro lado de la balanza: «cada piedra que te encuentres en Machine Learning a inteligencia artificial te arretrasar un día más y un día más y un día más en aprender esa temática».

El consuelo final es que estas siete ramas son una porción diminuta de una carrera de matemáticas, la parte que de verdad sirve para el desarrollo. O dicho con la metáfora que abre y cierra el capítulo: «estas bases son la cinta transportadora de la aeropuerto os van a ayudar a acelerar todo lo demás».

Lo que te llevas

  • Sí hacen falta matemáticas para el desarrollo, pero basta con siete ramas concretas: no hay que hacerse la carrera entera.
  • Las matemáticas funcionan como la cinta de un aeropuerto: no caminan por ti, se suman a tu velocidad y te hacen llegar antes al planteamiento correcto.
  • Los tres cimientos son álgebra lineal, estadística descriptiva y cálculo; el resto se construye encima de ellos.
  • Programar cuenta como rama matemática: un algoritmo es una operación matemática escrita en forma de receta, y hasta los perfiles de marketing acaban necesitando un lenguaje.
  • Los métodos numéricos existen porque la mayoría de ecuaciones no tienen solución explícita: iteran hasta una solución buena, no óptima, y de ahí sale el descenso del gradiente.
  • La probabilidad estudia lo que va a ocurrir y la estadística lo que ya ocurrió; la ciencia de datos es aplicar ambas, automatizadas con programación, a un dominio concreto.
  • Con cursos de 40 a 50 horas y ritmo de uno al mes, medio año da una base sólida de matemáticas y programación para saltar al siguiente nivel.

Enlaces del episodio

¿Quieres aprender esto en serio?

El curso del que se habla en este episodio: Curso completo de álgebra lineal - RStudio, Python y Octave.