Hace 3 años | Por blodhemn a xataka.com
Publicado hace 3 años por blodhemn a xataka.com

Basta mirar las asignaturas de la Ingeniería en Informática para darse cuenta de que las matemáticas son la base de estos estudios: álgebra, matemática discreta, lógica, cálculo, probabilidad y estadística… No todos los programadores son ingenieros, pero existe la creencia de que aquellas personas que se dedican a programar suelen tener unos buenos conocimientos y destrezas con los números. ¿Es necesario ser bueno en matemáticas para ser un buen programador? En este artículo diversos programadores explican sus experiencias.

Comentarios

sorrillo

#5 La programación es equiparable a saber un idioma, puedes no tener ni idea de matemáticas y saber hablar.

juvenal

#18 La programación es como el álgebra: variables que toman valores y que se manipulan con diversos operadores.

sorrillo

#21 Dependerá de lo que estés programando, al igual que con el idioma depende de aquello de lo que estés hablando.

Dos más dos suman cuatro y eso es referirse a valores y a operaciones matemáticas desde el lenguaje, lo mismo que puedes hacer desde la programación, pero si te digo que cuando pulsas un botón se muestra una fotografía ahí no hay operaciones matemáticas de ningún tipo. Aunque aquello sobre lo que estés operando (imágenes, acceso al disco, etc.) sí lo requieran en otros niveles de abstracción.

D

#18 No, no puedes, otra cosa es que no sepas que las estás usando. Ejemplo más evidente el álgebra de Boole, pocos programas puedes hacer sin aplicar esa rama del álgebra, por algo George Boole ha dado nombre a un tipo básico en muchísimos lenguajes de programación, el booleano.

sorrillo

#30 Eso es como decir que cada vez que decido entre ir de vacaciones a Nueva York o a Lisboa estoy necesitando álgebra aunque no sepa ni que la estoy usando.

Pues no. Simplemente estoy tomando una decisión, y la forma de estructurarlo en castellano es con la letra "o", que representa dos opciones excluyentes.

En informática hay suficientes capas de abstracción para poder programar sin necesitar hacer uso de álgebra, aunque en otras capas de abstracción sea necesaria para que mis instrucciones se hagan efectivas.

D

#31 Efectivamente, estás tomando una decisión entre dos opciones, pero es que "Nueva York o Lisboa" no es una operación algebraica porque no obtienes un resultado que sea cierto/falso, son dos opciones que puedes escoger, así que ese ejemplo no tiene absolutamente nada que ver con lo que haces en un lenguaje de programación. Este concepto entra más en el tema de los silogismos y la lógica deductiva que está un nivel por encima con lo cual si tienes una capa de abstracción.

Siguiendo tu ejemplo nunca programarás si( Nueva York o Lisboa ) porque es estúpido, sepas o no lo que es el álgebra de Boole la estás aplicando, sabes que eso no tiene sentido formal, en cambio podrias decir si(gano la lotería) Nueva York si no Lisboa, y eso ya tiene sentido porque sabes que el concepto "ganar la lotería" si que evalúa a algo comprobable como cierto o falso.

Y sí, la lógica proposicional, que estudia la filosofía, y que es como el ser humano toma decisiones está íntimamente ligada con la representación formal del álgebra de Boole.

Ahora, cierto que la lógica proposicional tiene esa capa de abstracción, pero es que nuevamente ese ejemplo no sirve para los lenguajes de programación porque el álgebra de Boole la tienes que aplicar explícitamente, no es lo mimos decir A y B o C, que A y (B o C), el resultado es distinto porque las normas del álgebra son las que son y el programador tiene que codificarlo explícitamente sino no hace lo que se supone que tiene que hacer, así que no hay ninguna capa de abstracción, se tienen que conocer las reglas algebraicas para saber el resultado que producirá una expresión lógica.

Que luego sepas que eso se llama álgebra de Boole o no es otro tema, pero la estás aplicando directamente y tienes que conocer sus conceptos y como funciona.

sorrillo

#41 no es lo mimos decir A y B o C, que A y (B o C), el resultado es distinto

Se puede utilizar de forma anidada, si A entonces si B o C entonces, ahí no estás aplicando otras normas que las del lenguaje natural.

Que la álgebra haya formalizado algo que ya se hacía con lenguaje natural no significa que cuando se utiliza se esté utilizando álgebra.

Es como afirmar que necesito conocer física cuántica para poder encender la luz de la habitación con el interruptor, por el mero hecho que resulte que la "bombilla" esté hecha con leds los cuales se diseñaron en base al conocimiento obtenido gracias a la física cuántica.

Hay suficientes capas de abstracción para que yo solo necesite saber que si pulso el interruptor se enciende la luz y con eso me baste.

D

#5 A mí se me atragantó, pero básicamente porque me aburría estudiarla.

Waskachu

Desde cuándo se necesitan las matemáticas para programar? lol

viejaperra

#12 Buscando el hilo de stackoverflow que hable de ello. Forma parte del paso previo de regar las plantas con gatorade.

D

#12 te los hace un compañero.

#19 y puedes ser médico consultando las páginas especializadas también. Igual de fácil : pones los síntomas en el buscador, coges la enfermedad que más se ajuste y le das la medicina que diga. Cuándo se te mueran muchos pacientes, abres una pregunta en el foro.
A mi siempre me habría gustado ser neurocirujano.

CtrlAltSup

#7 #4 Quizás por eso daba clase
(PD: No se entienda como una falta a los educadores, mi argumento es que quizás no valía para programar y su salida fue dar clases)

zenko

#7 si no sabes álgebra lineal difícilmente programaras bien, hace 20 años que todo eran fors vaya, pero ahora que todo tiene que estar vectorizado para usar los núcleos ...

D

#15 Estoy intentando escribir una respuesta respetuosa, pero es que después de leer una y otra vez tu comentario y la burrada que has puesto, honestamente, no se me ocurre cómo hacerlo.

¿Qué tendrá que ver tener varios núcleos con vectorización?

Se puede hacer programación multinúcleo sin necesidad de usar álgebra lineal ni vectorización, y se puede tener vectorización en sistemas mononúcleo (ejemplo: las instrucciones MMX eran vectorizadas, y estaban disponibles en el Pentium MMX, que era de un único núcleo. Lo mismo con 3DNow de AMD, también vectorizadas y disponibles en procesadores Athlon de un único núcleo).

chulonsky

#15 Tú eres un flipao.

T

#7 Desde el mismo momento en el que, para iniciar una pregunta, se utiliza el símbolo ¿.

viejaperra

#7 Según lo que necesites programar. Si es la triste pantalla de formularios para sacar o meter datos evidentemente no necesitas saber ni contar los dedos de tu mano. Si sales de lo habitual y comienzas a necesitar cálculos complejos necesitarás al menos entender fórmulas y aplicarlas. Incluso aunque sea copy&paste. Digo yo.

celyo

#7 Dependerá de lo que quieras hacer.
Para hacer un formulario web, coges a cualquiera qie salga de la eso y con un curso de orogrmación hecho, y te vale.
Si precisas dd programar trayectorias de satélites, te será necesario.

D

Realmente la inmensa mayoría de trabajos de informáticos de España se podrían realizar sin tener ni idea de matemáticas. En las ofertas de empleo piden ingenierías, másters y demás, pero a la hora de la verdad se limitan a usar frameworks, rutinas enlatadas, Word, Trello, GMail y mucha reunión, mucha apariencia de que se está haciendo algo sofisticado y poco más. Las matemáticas se utilizan en trabajos más avanzados, como en el diseño de sistemas de IA, algoritmos tipo buscador de Google, desarrollo de motores gráficos para videojuegos, diseño de componentes electrónicos, creación de nuevos protocolos de comunicaciones, desarrollo de nuevos lenguajes de programación, inventar nuevas tecnologías, etc.

En España el 99% de los trabajos de informático consisten en la creación de formularios web y guardar y mostrar la información de una base de datos, o en el mantenimiento de servidores (configurarlos, iniciar e instalar aplicaciones, etc). Eso lo pueden hacer perfectamente chavales que hayan hecho un módulo de FP de grado medio y que tengan experiencia o hayan hecho cursos para las tecnologías necesarias. Lo que sucede es que la titulitis que tenemos es bestial, y como hay mucho paro pues se pueden permitir coger a los que tengan mayor titulación. Es decir, la mayoría de los informáticos están sobrecualificados, y por eso les da la sensación de que lo que han hecho en la carrera no se usa en la vida real, pero en realidad sí que se utiliza ese tipo de conocimientos, pero en otros ámbitos, donde sí que es necesario llevar al límite las matemáticas y la física para crear nuevas tecnologías.

D

#26 En España el mundo el 99% de los trabajos de informático consisten en la creación de formularios web y guardar y mostrar la información de una base de datos

HimiTsü

Algùn golpe ( https://www.meneame.net/go?id=3308543 ) últimamente, quizás .?

E

De los creadores de soy disléxico pero escribí El Quijote, llega no se sumar pero no me puedes discriminar

D

#1 No sabía que en la universidad enseñasen a sumar .

E

#2 a algunos les haría falta. Era por hacer la rima con discriminar jeje

blodhemn

#1 Pues yo tenía un profesor que nos daba C y luego C++, que de vez en cuando en clase no soltaba preguntas del tipo cuanto son 6 x 8.

juvenal

#4 Realmente saber multiplicar no es lo importante, lo importante es saber cuando hay que hacerlo.

D

#1 Conozco matemáticos que son muy malos programando y programadores muy buenos que no les gustan las matemáticas. Para la mayoría de los programas no se necesita mucho más allá de saber sumar, restar, multiplicar y dividir. Cualquier otra fórmula generalmente le viene dada por el área donde está programando, no la tiene que inventar.

También conozco a quienes son muy buenos tanto en matemáticas como en programación, y eso es una enorme ventaja, especialmente si son matemáticos universitarios (que entienden cómo funciona la matemática por dentro, no como ingenieros que solo saben usarla). Un ingeniero en computación conoce algunas matemáticas universitarias, como por ejemplo cálculo, además de matemáticas discretas. Las matemáticas discretas son útiles, el cálculo rara vez lo usará en las aplicaciones tradicionales de las empresas, web, servidores, o para aplicaciones de teléfonos inteligentes. En caso de necesitar alguna matemática diferente vendrá del área donde necesita la aplicación.

E

#29 cuando haces informática no solo lo haces para ser programador. Si no cualquier disciplina relacionada con la informática, de ahí que se exija

D

#33 Muy pocos informáticos usarán el cálculo en sus aplicaciones. Mira todas las aplicaciones que tengas en el computador o el teléfono inteligente o páginas de Internet y dime qué porcentaje usa cálculo.

Enseñar cálculo (que lo considero importante), lo veo más como un filtro y como un entrenamiento y como formación general (que no viene nada mal).

celyo

#29 a nivel de programación web es inútil.
Conozco un caso de un compañero matemático qimue elaboro un cálculo estadístico para demostrar que un error que parecía imposible era viable bajo ciertas circunstancias.
Teniendo en cuenta su capacidad, era algo muy básico para él, pero para muchos otros casi era magia lo que determinó.
Al cliente le gustó.

Y más allá de eso, su talento infravalorado en tareas tontas o infrautilizado en la empresa por no usar el framwork de turno para hacer los formularios web o lo que se tercie.

Realmente ahora mismo es usar un coche de carreras para arar campos.

cron

Que sepas programar y programes no significa necesariamente que seas buen programador, solo que sabes hacerlo. Yo he visto cosas en el código que no creeríais.

blodhemn

#6 A mi una vez me contaron que a un programador se le ocurrió limpiar su PC por dentro con una Vaporetto lol

cron

#9 Ese tenía tb un master en electrónica por la misma universidad que le dió el master a Cifuentes y a Casado

c

Hace falta destreza deductiva y razonamiento lógico.
Eso está muy relacionado con las matemáticas.

Lo que no necesitas es dominar el cálculo diferencial

jtdoc

#40 me extrañaría mucho que dejaran esos cálculos a manos de un informático/programador/analista. En un programa que tenga ese objetivo, habrá un equipo funcional que definirá esos cálculos a realizar, como expertos de su campo. Un informático debe saber cual es la mejor forma de crear el programa para que cumpla esos objetivos, pero no tiene por qué ser un experto en la función del programa en sí. Si fuera ese el caso, no podríamos crear programa para un sistema experto en medicina, por ejemplo.

celyo

#43 depende del nivel.
Seguramente para arreglar un instalación eléctrica, tengas que llamar a un electricista.
Para arreglar un problema en un satélite dudo que te sirva un electricista, y precises de un ingeniero electrónico u otro perfil.
Y raro sería que llamaras a un ingeniero eléctrico para un problema del tendido eléctrico de una casa, dado que incluso a lo mejor no lo sabría resolver.
Y en ambos casos, no dudo que ambos sean grandes profesionales, pero el nivel de especialización es muy distinto y el grado de complejidad también.

Pues lo mismo pasa con la programación, para hacer páginas web no requieres mucho, pero para hacer cosas muy específicas quizás requieras de gente especializada, por más que se haya convertido el desarrollo de software en casi una planta de montaje.

domadordeboquerones

Pues imaginate si las mates se te hubieran dao bien pichorra!!

D

Con tal de que sepas programar el resto de conocimientos es un plus, lo que no se lo pregunto o que me suministren la información, también dependerá del nivel donde estés situado, si eres un pica código o un analista.

Hace años desarrollé un programa para la instalación de calefacción en un piso / casa, de los cálculos ni idea, me los suministró el cliente conforme a la normativa y, yo los llevé a código.

celyo

#14 depende de en que trabajes.
Si es para hacer programación web, no te hace falta, si es para progrmar trayectorias de satélites o simular u fluido, pues si.
Y eso si no han sacado la herramienta de turno que te simplifica el conocer lo que estás haciendo.

D

-- borrado --

D

Los mejores programadores de mi empresa son matemáticos y físicos

p

Ni para escribir un articulo en condiciones hace falta ser periodista. Una cosa es lo que uno piensa, y otra es lo que los demas ven.

Si algun dia, esta persona hace una chapuza y con ello se lleva por medio vidas humanas, pues a buscar responsabilidades...