¿Se necesitan matemáticas para programar?

Mejor requisito es tener lógica. Luego si se te dan bien las mates, lo que sucederá es que tomarás atajos que a otros les costará ver. Pero no, no es requisito ser ningún crack ni nada deso.
Yo llevo programando 5 años (trabajando de ello), que tampoco es que sean muchos, pero bueno, ¿se necesitan matemáticas?
Técnicamente, sí, se necesitan. Siempre se necesita hacer algún cálculo, y ya no calcularlo tú y ponerlo, sino saber cómo hacerlo para programar al ordenador para que haga ese cálculo, y raro es el día que no tengo que hacer alguna regla de 3, o un error por división por 0, o cosas así.

Dicho esto, un colega mío me dijo una vez que ahora que trabaja de programador, el 90% de las matemáticas que estudió en la carrera no le han servido para nada, y el 90% de las matemáticas que usa ahora las ha tenido que aprender después.

Dicho esto alcaro una cosa: No me he leído el artículo, ya que es un poco largo, en inglés, y me daba algo de pereza, pero quería dar mi opinión al respecto.
Yo he llevado durante el bachillerato las matemáticas siempre colgando y cuando me tocó programar en los CF, se me daba y da, aunque no haya tenido la oportunidad de demostrarlo, bastante bien, porque como dice el compañero de arriba, lo más importante en mi opinión es la lógica para resolver los distintos problemas. Hay que tener unos conocimientos mínimos, obviamente, pero no de matemáticas avanzadas.
Para muchas cosas hace falta más lógica que matemáticas pero en otros campos sí que vas a necesitar saber bastante, como en motores de juegos o para ciertas cosas de criptografía.

Aunque bueno, imagino que en realidad en prácticamente cualquier trabajo cualificado, las matemáticas están presentes en alguna de las ramas.
Ashdown está baneado por "faltas de respeto"
Depende. Para programar una e-tienda de cucuruchos de papel no hace falta demasiado. Para desarrollar el mathematica te va a hacer falta saber bastante. Por eso la tienda la hace cualquier robaperas con un poco de tiempo y google y el desarrollo del mathematica necesita de grandes profesionales.
Cómo voy a programar un filtro Kalman, un cálculo del volumen lleno de una tolva, o una predicción de consumo eléctrico sin saber matemáticas?
jorcoval escribió:Cómo voy a programar un filtro Kalman, un cálculo del volumen lleno de una tolva, o una predicción de consumo eléctrico sin saber matemáticas?

Porque si vas a programar un filtro de Kalman necesitas saber lo que es, pero no todos los programas sirven para resolver cálculos matemáticos complejos.

Este mismo foro lo programaron uno, o varios programadores, ¿y emplearon las matemáticas para algo?
Pues sí, cosas tan simples como media de mensajes/día de cada usuario, la paginación, etc-

Por lo tanto, ¿se necesitan conocimientos matemáticos? Sí, pero excepto para cosas complejas (como por ejemplo, un videojuego 3D), bastan con las matemáticas de la ESO, o como mucho de Bachiller.
sexto escribió:
jorcoval escribió:Cómo voy a programar un filtro Kalman, un cálculo del volumen lleno de una tolva, o una predicción de consumo eléctrico sin saber matemáticas?

Porque si vas a programar un filtro de Kalman necesitas saber lo que es, pero no todos los programas sirven para resolver cálculos matemáticos complejos.

Este mismo foro lo programaron uno, o varios programadores, ¿y emplearon las matemáticas para algo?
Pues sí, cosas tan simples como media de mensajes/día de cada usuario, la paginación, etc-

Por lo tanto, ¿se necesitan conocimientos matemáticos? Sí, pero excepto para cosas complejas (como por ejemplo, un videojuego 3D), bastan con las matemáticas de la ESO, o como mucho de Bachiller.

Precisamente.
Mucha gente dice " no hace falta!!" Y es cierto dependiendo de lo que programes.
Porque en un ámbito de ingeniería, te hacen falta sí o sí.
Ashdown está baneado por "faltas de respeto"
jorcoval escribió:Precisamente.
Mucha gente dice " no hace falta!!" Y es cierto dependiendo de lo que programes.
Porque en un ámbito de ingeniería, te hacen falta sí o sí.

Que no haga falta no significa que el programador no deba conocerlas, imho. Para mí son un must have para cualquier profesional de corte técnico. Recordemos que Platón tenía en su academia la leyenda "Prohibido entrar sin saber matemáticas" tan sólo para aprender a pensar.
sexto escribió:Este mismo foro lo programaron uno, o varios programadores, ¿y emplearon las matemáticas para algo?
Pues sí, cosas tan simples como media de mensajes/día de cada usuario, la paginación, etc-

¿Y el diseño de la base de datos?
7 años como programador, lo maximo que he realizado ha sido sumas y sacar alguuna grafica con estadisticas simples.
amchacon escribió:
sexto escribió:Este mismo foro lo programaron uno, o varios programadores, ¿y emplearon las matemáticas para algo?
Pues sí, cosas tan simples como media de mensajes/día de cada usuario, la paginación, etc-

¿Y el diseño de la base de datos?

No entiendo lo que me quieres decir xD
sexto escribió:
amchacon escribió:
sexto escribió:Este mismo foro lo programaron uno, o varios programadores, ¿y emplearon las matemáticas para algo?
Pues sí, cosas tan simples como media de mensajes/día de cada usuario, la paginación, etc-

¿Y el diseño de la base de datos?

No entiendo lo que me quieres decir xD

El esquema relacional de la base de datos del foro.

Que tablas crear, que relaciones, normalizar para ganar espacio, etc...
@amchacon
Ya, pero si empiezo a ponerlo todo no termino, por eso he puesto un etc...
sexto escribió:@amchacon
Ya, pero si empiezo a ponerlo todo no termino, por eso he puesto un etc...

Hombre, a mí me parece un nivel de matemáticas mucho más alto que el de: "media de mensajes por día".
Yo diría que las matemátcas han sido fundamentales, más que en programación, en el análisis y la algoritmia.

@sexto Hablando de foros, para poder determinar algo tan simple como el orden de complejidad en búsquedas si no tienes repajolera de mates, vas apañao... Aunque com nos hemos acostumbrado a "reciclar" el trabajo de otros, es cierto que el auténtico trabajo creativo en programación es casi cero de un tiempo a esta parte. Mejor pillarlo de alguien que ya haya hecho algo parecido y retocarlo.
@amchacon @Deschamps
Pues eso es lo que estaba diciendo, que incluso para cosas tan simples como eso, se necesitan un nivel mínimo de matemáticas
Supongo que será como en cualquier rama de las ciencias, tienes que tener un nivel de "selectividad".

Si no sabes interpretar una campana de Gauss, calcular el "area bajo la curva" o saber la diferencias entre progresiones aritméticas, geométricas o logarítmicas no vas a poder sentar las bases de nada. Y esas cosas ya implican muchas mates.
Suscribo la última opinión
siempre he oido que si hacen falta y por eso entre lo demás que haya que estudiar es tan dificil programar porque hay que usar el coco no es solo memorizar datos.
Depende de que programes, que lenguaje utilices, etc
Depende lo que quieras hacer, la programación es un mundo donde cada lenguaje es como los idiomas: diferente del resto, algunos más similares y otros menos, pero cada uno único.

Para la mayoría de webs que he programado te sobra con tener suficiente lógica y matemáticas básicas (sumar, restar, multiplicar y dividir). Ahora que me estoy metiendo en el mundo de la programación de aplicaciones, pues sinceramente parece que aquí me harán falta matemáticas más avanzadas, y en otros entornos imagino que hará falta un nivel mucho más alto en matemáticas(videojuegos quizás, no he programado ninguno aún, pero parecen requerir de muchos cálculos)
La respuesta es depende. Depende del programa y del lenguaje, pero en concreto no te hace falta demasiado las mates.

Durante años he conocido a mucha gente que era muy top programando, pero la verdad que las mates... menos mal que no eran profesores o similar xD.

De todas formas como mucho necesitarás dividir o hacer ecuaciones.
Yo que conozco algo de Matemáticas siempre digo que están en todo lugar. Ya me ha coincidido toparme con programas que podían optimizarse bastante con conocimientos un poco más avanzados de matemáticas, como motores de búsqueda (como el de Google sin ir más lejos) hacen uso de técnicas de diagonalización de matrices, como se usa el Álgebra en los sistemas de criptografía actuales (y en los que vienen en el futuro), etc.

Es decir, se podrá programar sin un uso muy avanzado de las matemáticas, pero creo que el uso de métodos avanzados de Matemáticas te puede convertir en un mejor programador.
rafaelkiz escribió:De todas formas como mucho necesitarás dividir o hacer ecuaciones.


¿Y este "pìntoresco" comentario lo afirmas en base a qué, exactamente?
Las mates que necesites dependen, basicamente del proyecto o aplicacion en la questes trabajando.

Todos los lenguajes (o casi) permiten (Que no es lo mismo que necesitas) realizar casi cualquier calculo matematico que necesites.

En lineas generales, la mayoria de aplicaciones que se desarrollan son a nivel de empresas (Gestion y cosas asi), por lo que tienen pocos calculos, no mas de los que necesitas en una empresa para llevar los costos y tal.

Si realizas una aplicacion para calculo de estadisticas pues neceitas algo mas, si realizas una para analizar moleculas pues si necesitaras mas matematicas, etc, etc.

Vamos, que no hay una respuesta especifica, puede que se necesiten, pero mi experiencia me dice que para programar en si, no se necesitan.
Delian escribió:En lineas generales, la mayoria de aplicaciones que se desarrollan son a nivel de empresas (Gestion y cosas asi), por lo que tienen pocos calculos, no mas de los que necesitas en una empresa para llevar los costos y tal.


¿Y por qué reducís las "Matemáticas" a realizar simples cálculos? ¿No existen áreas como la geometría, el álgebra, la topología, las matemáticas discretas, la combinatoria, ...?

Una empresa de gestión que necesite realizar un algoritmo para minimizar sus gastos en los repartos de mensajería, por ejemplo, ¿qué calculos tiene que hacer? ¿No será más bien cosa de definir grafos ponderados, de diseñar recorridos mínimos, etc? ¿Y eso no son mates?
Deschamps escribió:
rafaelkiz escribió:De todas formas como mucho necesitarás dividir o hacer ecuaciones.


¿Y este "pìntoresco" comentario lo afirmas en base a qué, exactamente?

¿Puedes hablarme sin aires de sabiduría? gracias majo, es que te veo muy agradable. [ginyo]

De pintoresco nada, hablo en base a mí experiencia, cada uno tendrá la suya.

pd: me da mucho coraje la gente que cita trozos de un comentario, sobretodo cuando he dicho que depende del lenguaje de programación, de la aplicación, etcétera...
@rafaelkiz A mí me da coraje la gente que generaliza y sienta cátedra por su mera experiencia personal... qué le vamos a hacer. Salud.
HongKi está baneado por "Game over"
es que tienes que generalizar.
Deschamps escribió:@rafaelkiz A mí me da coraje la gente que generaliza y sienta cátedra por su mera experiencia personal... qué le vamos a hacer. Salud.

Es que no estoy generalizando, que lo he dicho en mí mensaje claramente, no he dicho que sea algo general si no que depende de varios factores.

Pero bueno, se veía desde el primer mensaje que lo que quieres es discutir (porque esto no es debatir), así que no sé que hago ni respondiendote.

Si quieres ve a forosdelweb y preguntas a gente que lleva años programando, te van a decir algo similar: mayormente dividir y mucho es, pero depende del lenguaje y demás, por tanto si quieres crear un motor de físicas pues tendrás que saber de física obviamente.

Edito: de acuerdo, ahí se queda. [beer]
@rafaelkiz Bueno, dejémoslo en un malentendido, y aquí paz y después gloria.
Para programar per se, no. Lógica.

La cosa es que se puede programar para todo tipo de ámbitos.
Y para una web puede que no necesites nada y para un software de una empresa de arquitectura tendrás que conocer más matemáticas, además de otro tipo de conocimientos relacionados con ese sector para que no te vengan a decir que un edificio se ha venido abajo por culpa de un fallo estúpido en el software con el que se diseñó.

Es como decir si un programador necesita saber química avanzada. Pues te dirán "no". Pero si tienes que hacer un simulador para un laboratorio químico, pues necesitas saber programar y además conocer bien ese sector, sino qué mierdas vas a programar?
Ashdown está baneado por "faltas de respeto"
exitfor escribió:Para programar per se, no. Lógica.

La cosa es que se puede programar para todo tipo de ámbitos.
Y para una web puede que no necesites nada y para un software de una empresa de arquitectura tendrás que conocer más matemáticas, además de otro tipo de conocimientos relacionados con ese sector para que no te vengan a decir que un edificio se ha venido abajo por culpa de un fallo estúpido en el software con el que se diseñó.

Es como decir si un programador necesita saber química avanzada. Pues te dirán "no". Pero si tienes que hacer un simulador para un laboratorio químico, pues necesitas saber programar y además conocer bien ese sector, sino qué mierdas vas a programar?

Fácil, le pides el programador hexperto en 107 idiomas de programancia con experiencia en el quimicefa a una cárnica y ya te sorprenderá que un nene de 21 años sea la hostia en todo lo que le pidas al gestor del proyecto. Y además de todo será licenciado en Bellas Artes para que las pantallas sean bonitas.
Para picar código generalmente no, pero como tengas que trabajar en programas de plegamiento de proteínas necesitas mates y fisico-química, para programas de investigación, estadística por un tubo...
A ver a ver que aquí la peña se va por las ramas y te ponen como ejemplo las excepciones.

Para la mayoría de trabajos no te hará falta más que unas mates esenciales.

El altísimo grueso de programadores currando en consultoría y web.

Después hay 4 gatos que curran en temas de ciencia y demás y normalmente no es el informático el que hace las mates chungas, si no el físico o matemático que sabe algorítmica/programación.

Donde si hay que controlar más es en videojuegos.
10 años programando en un montón de entornos diferentes, desde micro empresas a multinacionales, de personalizar tiendas virtuales a desarrollar erp's y frameworks. Lo único que he requerido han sido conocimientos BAJOS de estadística - varianzas, alguna regresión lineal para encontrar patrones y poquísimo más. En cualquier ingeniería (técnica informática en mi caso) el nivel era mucho más alto haciendo cosas con R / matlab /octave

Ahora con la expansión de ML empieza a ser más habitual requerir más conocimientos matemáticos relacionados con el álgebra lineal. En mi opinión esta parte no es excesivamente complicada. Personalmente siempre le he tenido más respeto al cálculo y los métodos numéricos.

El año pasado fui al web summit y hacían muchas bromas que con ML los developers se auto denominaban data scientists en lugar de developers. Decían que así se sentían más pro y pedían más dinero a la hora de negociar :D
Depende de lo que programes, pero en general no va mal dominar lógica y discreta.

Luego ya si eso hablamos del Álgebra de Hoare, que es otro asunto...
Las matemáticas ayudan porque se usan mucho, pero necesidad pura y dura, prerrequisito? Pues no tanto la verdad. No desde luego un nivel universitario cuando luego se enseña a programar en módulos.

jorcoval escribió:Cómo voy a programar un filtro Kalman, un cálculo del volumen lleno de una tolva, o una predicción de consumo eléctrico sin saber matemáticas?

Ya que nos ponemos, y física, y electrónica, y arquitectura, y medicina... para esas cosas necesitas un experto en la materia que te diga cómo se hacen esos cálculos y tú programarlos.
11 años de programador en banca. Si eres programador, con tener nociones básicas del matracas vas mas que sobrado y paso a dar los motivos de mi argumento.

En la mayoría de los casos y como en todos los puestos, hay estratos. El programador es el estrato más bajo, por lo que serán los estratos superiores Analistas de negocio, analistas funcionales e incluso el jefe de proyecto los que se deben encargar de facilitarte los cálculos que debas realizar para operaciones complejas.

Un programador está para codificar, los que se pegaron la paliza sacándose la carrera de ingeniería informática no están destinados a tirar líneas de código, si no que están a nivel superior (si, todos comienzan desde abajo picando, pero no, un tio que estudia 5 años no está para tirar líneas de código).

Dicho lo cual, me considero buen programador y tengo unos conocimientos de matemáticas de bachillerato.
Todo depende de la aplicacion, no es lo mismo programar un TPV o una pagina web que el driver para un controlador grafico,un juego o tener que programar una aplicación para controlar un brazo robotico.
Dependerá lo que se quiera programar

Para programar videojuegos por ejemplo las Matemáticas son fundamentales

Funciones Trigonométricas, Exponenciales, Logarítmicas, etc
aperitivo escribió:11 años de programador en banca. Si eres programador, con tener nociones básicas del matracas vas mas que sobrado y paso a dar los motivos de mi argumento.

En la mayoría de los casos y como en todos los puestos, hay estratos. El programador es el estrato más bajo, por lo que serán los estratos superiores Analistas de negocio, analistas funcionales e incluso el jefe de proyecto los que se deben encargar de facilitarte los cálculos que debas realizar para operaciones complejas.

Un programador está para codificar, los que se pegaron la paliza sacándose la carrera de ingeniería informática no están destinados a tirar líneas de código, si no que están a nivel superior (si, todos comienzan desde abajo picando, pero no, un tio que estudia 5 años no está para tirar líneas de código).

Dicho lo cual, me considero buen programador y tengo unos conocimientos de matemáticas de bachillerato.



Tan cierto como el día.

Yo mismamente llevo 4 años como "picacódigos" y paso sinceramente de todo lo que se salga de una frase como esta:

"Quiero que me hagas X en el lenguaje Y. ¿Se puede hacer?"

Lo que no voy a hacer es el trabajo del ingeniero de turno, porque entonces no lo necesito para nada. Muchos de los que empezamos con esta especialización no queremos "pensar" (se que suena mal decirlo), lo que nos gusta es rebuscar en el código, estrellarnos 40 veces contra problemas mal planteados y la satisfacción que te da cuando te sale todo bien.

He conocido a un par de ingenieros y matemáticos (telita con estos) que tenían unos conocimientos teóricos ENORMES, pero que luego eran auténticos desastres cuando los ponían a picar. No digo que no sirvan para nada, de hecho son imprescindibles, pero tanto vale el pensar un problema como el saber escribirlo.

Luego pasa que te encuentras en producción cosas como las variables nombradas X, Y, Z, etc y no sabe ni dios lo que hacen las funciones. O pocos o ningún comentario. O zurullos inmensos de código que es funcional pero desde hace 10 años hay herramientas que lo hacen mejor.

Así que no, para programar NO hacen falta matemáticas (aunque ayudan, jamás he tenido que requerir nada más complejo que alguna función trigonométrica, ni siquiera matrices ni nada por el estilo), pero sí hacen falta para plantear el programa.
Yo llevo 6 años de programador y las matemáticas que he necesitado son de bachillerato.
Ahora bien, si estás programando algo que se necesitan matemáticas (algún programa que se base en las matemáticas), entonces obviamente necesitarás matemáticas... Pero lo que es para programar en si (en un ámbito general), no se necesitan matemáticas más allá de las básicas.
Deschamps escribió:
Delian escribió:En lineas generales, la mayoria de aplicaciones que se desarrollan son a nivel de empresas (Gestion y cosas asi), por lo que tienen pocos calculos, no mas de los que necesitas en una empresa para llevar los costos y tal.


¿Y por qué reducís las "Matemáticas" a realizar simples cálculos? ¿No existen áreas como la geometría, el álgebra, la topología, las matemáticas discretas, la combinatoria, ...?

Una empresa de gestión que necesite realizar un algoritmo para minimizar sus gastos en los repartos de mensajería, por ejemplo, ¿qué calculos tiene que hacer? ¿No será más bien cosa de definir grafos ponderados, de diseñar recorridos mínimos, etc? ¿Y eso no son mates?


No he reducido las matemáticas a simples cálculos, he dicho que la mayoría de aplicaciones necesitan simples cálculos. Aplicaciones mas especificas obviamente si los necesitaran.
Soy programador de videojuegos, y en este sector utilizamos muchísimo las matemáticas: operaciones con vectores y matrices, sistemas de coordenadas, geometría, curvas de Bezier... además, y esto ya para cualquier sector, nunca viene mal saber calcular el tipo de complejidad de un algoritmo, operar con números en diferentes bases , entender como se guarda un número en coma flotante o saber como funcionan los algoritmos de generación de números aleatorios, por ejemplo.
kbks escribió:Soy programador de videojuegos, y en este sector utilizamos muchísimo las matemáticas: operaciones con vectores y matrices, sistemas de coordenadas, geometría, curvas de Bezier... además, y esto ya para cualquier sector, nunca viene mal saber calcular el tipo de complejidad de un algoritmo, operar con números en diferentes bases , entender como se guarda un número en coma flotante o saber como funcionan los algoritmos de generación de números aleatorios, por ejemplo.


Exacto, "nunca viene mal saber..." pero el hilo es "se necesitan...?" El saber no ocupa lugar, pero no es imprescindible.

En la mayoría de los casos no se necesitan y como decía antes, 11 años de programador en banca y como te puedes imaginar, en un banco se hacen bastantes cálculos, pero al programador, en un AF ya le llegan bien marcados como se hacen las operaciones, por lo que, únicamente se limita a codificarlo.
aperitivo escribió:
kbks escribió:Soy programador de videojuegos, y en este sector utilizamos muchísimo las matemáticas: operaciones con vectores y matrices, sistemas de coordenadas, geometría, curvas de Bezier... además, y esto ya para cualquier sector, nunca viene mal saber calcular el tipo de complejidad de un algoritmo, operar con números en diferentes bases , entender como se guarda un número en coma flotante o saber como funcionan los algoritmos de generación de números aleatorios, por ejemplo.


Exacto, "nunca viene mal saber..." pero el hilo es "se necesitan...?" El saber no ocupa lugar, pero no es imprescindible.

En la mayoría de los casos no se necesitan y como decía antes, 11 años de programador en banca y como te puedes imaginar, en un banco se hacen bastantes cálculos, pero al programador, en un AF ya le llegan bien marcados como se hacen las operaciones, por lo que, únicamente se limita a codificarlo.


Y es que es lo que estoy diciendo yo. No es necesario, pero viene bien saber ese tipo de cosas. Simplemente te hacen ser mejor programador que si no las supieras, aunque puedes trabajar como tal (aunque no en videojuegos u otros sectores específicos) sin saber ni siquiera que existen.
Generalmente no se necesitan matemáticas para programar. Y me refiero a necesidad, no a que no venga mal y no pueda ayudarte a ser mejor programador.

Si eres programador de videojuegos, ahí sí que vas a necesitar saber bastante de matemáticas.

Por otro lado los ejemplos que ponéis son malísimos. Si vas a hacer un programa para el sector salud, no necesito saber de medicina para hacerlo, se supone que habrá un experto asesorándome. Lo mismo para los ejemplos que habéis puesto. Por dios. xD Si no un programador debería saber absolutamente de todo "por si" [sonrisa]

Pero insisto, para videojuegos es necesario saber de matemáticas (y no sencillas).
90 respuestas
1, 2