¿Hay muchas matemáticas en Python?

Desde una perspectiva teórica, se podría decir que un lenguaje de programación es “matemática constructiva”, es decir, todo es matemática. O podría decirse que el cálculo es un campo completamente separado de las matemáticas, pero puede usarlo para abordar problemas matemáticos, y muchas de sus propiedades (como la rapidez con la que se ejecuta un programa bajo qué circunstancias) son matemáticas. Pero para nuestros propósitos, esta perspectiva teórica es irrelevante.

Creo que lo que quieres saber es: ¿Necesito entender las matemáticas para aprender Python y tal vez ser bueno en eso? ¡Y tengo buenas noticias para ti! No necesitas saber nada de matemáticas. Algunas personas incluso necesitan desaprender lo que aprendieron en matemáticas primero. Pero es probable que las matemáticas le resulten mucho más fáciles después de ser bueno en programación.

En mi opinión, las matemáticas y la programación se parecen mucho a la música. La música es muy fácil de hacer y muy fácil de entender. Casi todos los niños pueden hacerlo, y es divertido. Pero no hay límite en lo bueno que puedes obtener una vez que lo sigas haciendo, y aquellos que comienzan temprano, tienen talento y pasan décadas en él, alcanzarán un nivel que dejará a los mortales asombrados. Aún así, ¡no hay razón para no inventar una nueva canción con mis hijos!

Lamentablemente, las matemáticas se enseñan mal en la escuela, es decir, no como el maravilloso juego de rompecabezas abierto que es, sino como el espantoso revoltijo de montones de garabatos inútiles. La mayoría de los buenos matemáticos parecen haberse vuelto buenos en matemáticas a pesar de la escuela, no por eso. Entonces, por favor, olvida lo que piensas sobre las matemáticas en este momento. Y no tiene nada que ver con la programación.

Este es un error común porque hay muchas personas de matemáticas que también programan. En realidad, la programación es el proceso de decirle a una computadora que haga algo, como decirle a tu amigo que haga algo. Si le dice a su amigo que haga algo relacionado con las matemáticas, es posible que tenga que explicar las matemáticas involucradas, pero no tendrá que calcularlo usted mismo. Su amigo lo calculará cuando esté haciendo lo que usted le indicó que hiciera.

Imagine que le dice a su amigo que observe un automóvil que pasa y calcule qué tan rápido podría detenerse en función de la velocidad actual, la potencia de frenado, la fricción de la superficie de la carretera y la masa del automóvil. Probablemente tendrá que explicarle muchas matemáticas, a menos que alguien más ya le haya explicado cómo hacerlo. Ahí es donde entran las funciones y las bibliotecas.

El noventa y nueve por ciento de las matemáticas que podrías estar haciendo en programación probablemente ya se hayan hecho antes, por lo que puedes usar una solución que ya está disponible. Si necesita saber qué tan rápido se detendrá un automóvil pero no sabe cómo calcularlo, pregúntele a un amigo que sí lo haga. En la programación, esto se hace buscando una biblioteca para calcular la desaceleración y utilizando las funciones que proporciona.

Si te encuentras haciendo matemáticas durante la programación y no te gusta y no lo encuentras sencillo, solo verifica si alguien ya ha resuelto tu problema.

PD

Odiaba las matemáticas antes de comenzar a programar, pero mi punto de vista ha cambiado porque cada problema que resuelvo mientras programo es un problema real que se relaciona con mis objetivos y necesidades reales en lugar de una fórmula en un libro de texto o un problema verbal ridículo.

Al Sweigart (@AlSweigart) | Twitter, el escritor de Automate the Boring Stuff with Python responde su pregunta en el primer capítulo de su libro. Aquí está el extracto del libro específico para su pregunta y le animo a que haga clic más tarde en el enlace de arriba y lea al menos esa primera página y decida por sí mismo si quiere darle una oportunidad o no. Te sugiero que lo hagas.

Los programadores no necesitan saber mucho de matemáticas

La ansiedad más común que escucho sobre aprender a programar es que la gente piensa que requiere muchas matemáticas. En realidad, la mayoría de la programación no requiere matemática más allá de la aritmética básica. De hecho, ser bueno en la programación no es tan diferente de ser bueno para resolver acertijos de Sudoku.

Para resolver un rompecabezas de Sudoku, se deben completar los números del 1 al 9 para cada fila, cada columna y cada cuadrado interior de 3 × 3 del tablero completo de 9 × 9. Encuentra una solución aplicando deducción y lógica a partir de los números iniciales. Por ejemplo, dado que 5 aparece en la parte superior izquierda del rompecabezas de Sudoku que se muestra en la Figura 1, no puede aparecer en ningún otro lugar de la fila superior, en la columna más a la izquierda o en el cuadrado 3 × 3 superior izquierdo. Resolver una fila, columna o cuadrado a la vez proporcionará más pistas numéricas para el resto del rompecabezas.

Figura 1. Un nuevo rompecabezas de Sudoku (izquierda) y su solución (derecha). A pesar de usar números, Sudoku no involucra muchas matemáticas. (Imágenes © Wikimedia Commons)

Solo porque Sudoku involucra números no significa que tengas que ser bueno en matemáticas para encontrar la solución. Lo mismo es cierto de la programación. Al igual que resolver un rompecabezas de Sudoku, escribir programas implica dividir un problema en pasos individuales y detallados. Del mismo modo, al depurar programas (es decir, encontrar y corregir errores), observará pacientemente lo que está haciendo el programa y encontrará la causa de los errores. Y como todas las habilidades, cuanto más programes, mejor serás.

La programación es una actividad creativa

La programación es una tarea creativa, algo así como construir un castillo con ladrillos LEGO. Comienzas con una idea básica de cómo quieres que se vea tu castillo e inventarias tus bloques disponibles. Entonces comienzas a construir. Una vez que haya terminado de construir su programa, puede modificar su código tal como lo haría con su castillo.

La diferencia entre la programación y otras actividades creativas es que al programar, tiene todas las materias primas que necesita en su computadora; no necesita comprar lienzo, pintura, película, hilo, ladrillos LEGO o componentes electrónicos adicionales. Cuando se escribe su programa, se puede compartir fácilmente en línea con todo el mundo. Y aunque cometerás errores al programar, la actividad sigue siendo muy divertida.

Confieso al principio, no sé nada sobre programación en general o Python en particular. Sin embargo, me gustaría corregir su suposición de que es malo en matemáticas. No eres malo en matemáticas. Has tenido malos profesores de matemáticas.

Dejame explicar. Cuando eras demasiado joven para recordar haberlo hecho, aprendiste a reconocer los garabatos aleatorios que llamamos letras. Asociaste la forma con el sonido, entrenaste tus pequeños dedos para guiar un crayón, un lápiz o una tiza para hacer letras reconocibles. Aprendiste a agrupar esas formas en grupos llamados palabras que ya sabías decir. Creaste oraciones y párrafos. Ahora, como adulto, puedes transmitir tus pensamientos, ideas, miedos y esperanzas sin esfuerzo, todo porque aprendiste a leer y escribir en este idioma increíblemente difícil: el inglés.

Las matemáticas son solo otra forma de expresar el pensamiento y la lógica usando símbolos. Nos permite describir posibilidades y probarlas sin tener que construir objetos físicos. Las matemáticas nos permiten experimentar en nuestra imaginación y experimentar en colaboración con otros.

Las matemáticas son un aspecto natural de nuestra cognición, tan natural como el lenguaje escrito y hablado. Todos somos buenos en matemáticas, de la misma manera que todos somos buenos para comunicarnos en nuestra lengua materna, porque así es como funciona nuestro cerebro.

Entonces, vaya y aprenda Python si lo desea, y si hay matemáticas involucradas, obtenga un gran maestro que le enseñe lo que necesita saber.

La programación puede ser matemática, pero principalmente es la resolución de problemas. Desglosando los grandes problemas en problemas más pequeños, y luego poniendo esos problemas en un lenguaje increíblemente simple. Requiere atención a los detalles, un proceso de pensamiento lógico y ordenado, ambos rasgos que también son útiles en matemáticas, pero hay muy pocas matemáticas reales (a menos que use sus programas para resolver problemas matemáticos). Ser bueno en matemáticas puede ayudar porque hay muchos conceptos en matemáticas que pueden hacer que la programación sea más fácil de entender, pero ciertamente no es un requisito.

Si tienes curiosidad, te recomiendo probar un curso en línea de Python para ver cómo te gusta. Me gusta el de Codecademy: es gratis, solo lleva unas pocas horas y puedes dejarlo en cualquier momento. En el peor de los casos, pierdes una o dos horas de tu tiempo. En el mejor de los casos, desarrollas una nueva habilidad increíblemente poderosa y comercializable.

Hmmm, entonces las matemáticas involucradas directamente no son mucho, solo tus operadores matemáticos básicos, pero cualquier programación en ese nivel requiere un sentido de razonamiento espacial que generalmente viene con la capacidad de realizar matemáticas avanzadas.

Incluso algo tan similar como un bucle si / luego / y / lo que sea es similar en estructura a una suma doble / triple / lo que sea. También necesitará visualizar espacios dimensionales superiores y grandes matrices sin pestañear para poder encontrar el uso de algo como Python (de lo contrario, Excel generalmente será igual de efectivo)

Entonces, ¿para qué necesitas Python? Tal vez pueda ayudar desde allí.

La codificación en su conjunto contiene muchas matemáticas, pero es simple. Haría ecuaciones que ayudarán con la codificación, muy fácil, diría que todo lo que se necesitaría es que una persona conozca álgebra básica, tal vez geometría. Buena suerte. PD: no solo aprendas un código, aprende tantos como puedas porque no todos usan el mismo código, por lo que debes ajustarte a tantos como sea posible.

Puede haberlo si lo usa para analizar o resolver problemas matemáticos.

No usará mucho a menos que el proyecto en el que desea trabajar con Python o lo que desea crear implique matemáticas.

Hay muchas matemáticas en Python:

  1. NumPy
  2. Ciencia
  3. statsmodels
  4. imagen-scikit
  5. scikit-learn
  6. OpenCV

y muchos más