Como programador, ¿para qué necesitaré álgebra lineal?

Diferentes tipos de programadores:

  • Investigador (menos del 1%): Sí, hay una cantidad significativa de investigadores que codifican. Un investigador de sistemas con frecuencia requiere resolver problemas de programación lineal. Un investigador en el área de gráficos por computadora tiene que lidiar con matrices 2D y 3D y sus diversas propiedades. Un investigador de aprendizaje automático aplicado requiere conocer la optimización lineal y un investigador teórico requiere conocer incluso las matemáticas avanzadas del operador. En general, saber álgebra lineal básica nunca está de más si eres un investigador.
  • Desarrolladores de software (asociados con un equipo de investigación, menos del 5%): Requiere conocer algo de álgebra lineal básica, suficiente para poder utilizar las diversas bibliotecas e implementar prototipos o software a gran escala basado en trabajos de investigación. Si un trabajo de investigación [1] le permite crear un programador eficiente para electrodomésticos que pueda ahorrar costos de electricidad, puede implementarlo y verlo.
  • Desarrolladores de software (desarrolladores regulares, más del 90%): el desarrollo web apenas requiere ningún conocimiento de álgebra lineal. La construcción de backends sólidos para los front-end web no requiere conocimiento de álgebra lineal (en la mayoría de los casos, la aleatorización puede lograr un buen equilibrio de carga si está construyendo granjas de back-end). La creación de software empresarial (a menos que su producto tenga algún álgebra lineal asociada, lo cual es un mercado muy específico, algo como Photoshop puede tener un complemento que requiere conocimiento de álgebra lineal para su implementación) no requiere conocimiento de álgebra lineal.

Así es como se ve la escena actual del mercado laboral para los programadores. Las cosas pueden cambiar en el futuro, pero es impredecible. Sin embargo, para terminar, permítanme señalar dos aspectos importantes que un buen programador debería tener:

  1. Sabiendo que programar es fácil y que hay millones de programadores con los que está compitiendo.
  2. Si desea trabajar en problemas interesantes o ascender en la escala del éxito, diferenciarse es muy importante. Algunas personas se diferencian adquiriendo perspicacia comercial (haciendo un MBA después de Engg., Pero incluso esto se está saturando), algunas personas se diferencian adquiriendo sofisticación en un solo idioma (se dedican a ese idioma, conocen los detalles, el no lo hacen y construyen su propio vocabulario para la forma “correcta” de programar en ese idioma), algunas personas se diferencian al aprender muchos idiomas y son prácticos con todo, algunas personas se diferencian adquiriendo habilidades matemáticas como álgebra lineal, etc. .

Entonces, en lugar de preguntar “¿para qué necesitaré álgebra lineal?”, Comience a preguntar “¿qué puede hacer el álgebra lineal por mí?”. Avanzarás mucho cambiando esta mentalidad.

[1] Programación de electrodomésticos inteligentes mediante programación lineal entera mixta
Elija un artículo al azar de la búsqueda en Internet.

* Los porcentajes son conjeturas / corazonadas y no tengo estadísticas para respaldarlos

Muchos programadores no necesitarán saber ningún álgebra lineal. Ciertos programas involucrarán álgebra lineal, pero incluso para ellos, un programador puede no necesitar saberlo ya que solo algunas de las funciones / métodos de nivel inferior realmente involucrarán álgebra lineal.

Algunas cosas que usarán álgebra lineal son la visión por computadora, la geometría de la computadora, la realidad virtual, las estadísticas, la programación lineal, los métodos numéricos y la computación científica. Existen algoritmos en reconocimiento de patrones, aprendizaje automático, compresión de datos, reducción de dimensiones, agrupamiento de datos y procesamiento de señales que dependen del álgebra lineal.

Si eres un estudiante universitario y puedes incluir un curso de álgebra lineal en tu horario, puede ser una buena idea tomar uno incluso si no es necesario para tu especialización.

Si está escribiendo un juego (especialmente 3d), tendrá que realizar muchos cálculos matriciales.