¿Qué piensan los ingenieros de software de las matemáticas de cualquier complejidad con respecto a su trabajo?

A menos que esté trabajando en un problema comercial particularmente matemáticamente intenso o esté empujando los límites de lo que es computacionalmente posible, en su mayoría solo usará las matemáticas básicas. Y cuando te encuentres usando matemáticas un poco más complejas, con la suficiente frecuencia solo usarás funciones de biblioteca para reescribir ecuaciones proporcionadas por otros de una manera que haga que las ecuaciones sean ejecutables. Si desea trabajar en un área de software matemática, apunte a una empresa y equipo que trabaje en sistemas de bases de datos, sistemas operativos, sistemas distribuidos principales, o en convertir la teoría de la informática en herramientas de software utilizables.

Hay muchas personas en software que se dan aires e insisten en que todos los que quieran ser alguien en software deberían haber dominado toda la pila desde el silicio hasta la interfaz de usuario, o al menos todas las partes de esa pila que la persona de software elitista considera importante (a menudo no la interfaz de usuario, y a veces no las instrucciones de la máquina). Es tonto y pretencioso, pero no indica un desarrollador de baja calidad a menos que insistan en reescribir todo donde quiera que vayan. Si bien hay lugares en el software que requieren el rigor de la ingeniería, la mayoría del software está más cerca de trabajar en los oficios calificados donde dominar las habilidades básicas y las herramientas con las que trabaja son más importantes que la ciencia y la ingeniería que se utilizaron para crear esas herramientas.

Un pequeño porcentaje de ingenieros de software está utilizando matemática real: teoría de números, estadísticas, cálculo, etc. La mayoría de las veces son suficientes cuatro operaciones y módulos.

Gran parte de las cosas de alto nivel se destinaron al desarrollo de sistemas operativos, compiladores y bibliotecas que SWE está utilizando a diario.

La gran mayoría del código que produzco usa matemática simple. Suma, resta, mutiplicación y división. En la mayoría de los días donde hago “fantasía” es algo así como un módulo, un techo o un piso, tal vez un poco trigonométrico. Pero, de vez en cuando, hago algo que es matemática. He trabajado con varios doctores haciendo cosas como calcular caballos de fuerza, torque y otras características de motores de combustión interna y motores eléctricos. He hecho análisis del transporte de varios compuestos a través del flujo de corriente. Estos son los momentos en que realmente puedo poner mi matemática menor a trabajar. Me encanta, disfruto trabajar con matemáticas complejas.

La aritmética, como parece sugerir el Sr. Hopper, está lejos de ser la totalidad de las matemáticas. La mayoría de las matemáticas que rigen el software son matemáticas discretas. Principalmente álgebra abstracta y teoría de grafos.

Comprender esta matemática, al menos sus conceptos básicos, beneficiaría enormemente a los desarrolladores de software. Además, debería ser obvio (pero, lamentablemente, no lo es) la teoría de tipos es primordial en la programación.

Lamentablemente, la mayoría de los desarrolladores de software prefieren la intuición a las matemáticas para guiar su trabajo.

Quizás cuando tengamos suficientes contrapartes para salvar o colapsar edificios, tomaremos en serio las matemáticas que subyacen a nuestras tecnologías. … Quizás.