Encontré un sitio web que decía que el cálculo y el álgebra lineal son necesarios para la programación del sistema.
La programación del sistema, hasta donde yo sé, se trata de osdev, controladores, utilidades, etc. Simplemente no puedo entender cómo el cálculo y el álgebra lineal pueden ser útiles en eso. Sé que el cálculo tiene varias aplicaciones en la ciencia, pero en este campo particular de programación no puedo imaginar cómo el cálculo puede ser tan importante.
La información estaba en este sitio: http://www.wikihow.com/Become-a-Programmer
Editar: Algunas respuestas aquí explican la complejidad y optimización del algoritmo. Cuando hice esta pregunta, estaba tratando de ser más específico sobre el área de programación del sistema. La complejidad y la optimización del algoritmo se pueden aplicar a cualquier área de programación, no solo a la Programación del sistema. Esa puede ser la razón por la que no pude pensar de esa manera en el momento de la pregunta.
fuente
Respuestas:
Me imagino que no es muy importante si está escribiendo utilidades que no son GUI sobre un sistema operativo moderno sin trabajar en sus componentes internos. Probablemente sea una historia diferente si está trabajando para cambiar un sistema operativo moderno o desarrollar uno nuevo.
Si está trabajando con hardware de video o un sistema de ventanas de metal desnudo, necesitará conocimientos de álgebra lineal para actualizar gráficos de manera eficiente. No me he mirado, pero apuesto a que podrías encontrar ejemplos en el código fuente de X, KDE y Gnome.
Si está trabajando con hardware con respecto al procesamiento de señal digital, entonces el cálculo será muy importante. Me imagino que hay algunos dispositivos que hacen su trabajo pesado con la CPU del sistema en lugar de un microprocesador local y estos a menudo se conectan a sistemas eléctricos analógicos.
Además, el cálculo juega un papel importante en el análisis de rendimiento además del álgebra lineal cuando se intenta ajustar la curva a los datos.
fuente
El comentario de SomeKittens es correcto sobre el dinero: necesitas cálculo y álgebra lineal porque esos cursos cambian la forma en que piensas y la manera en que entiendes el mundo. El álgebra lineal se trata de mapear de un dominio a otro; el cálculo cubre la forma en que se comportan las funciones. Son herramientas poderosas en sí mismas, pero las técnicas que aprendes al estudiar esos campos también se vuelven parte de tu imagen mental del mundo.
También necesita esos cursos porque la gente esperará que pueda pensar en esos términos. A menudo no veo a mis colegas tomando la derivada de un polinomio en sus pizarras blancas, pero a menudo veo bocetos de funciones con la tangente dibujada en algún punto interesante, o el área debajo de la curva sombreada. No nos importan lo suficiente los valores reales para molestarnos en calcularlos, pero comprender cómo cambian los valores es esencial, y es parte de las conversaciones cotidianas.
Cualquier título universitario de informática requerirá cálculo, álgebra lineal, estadística, lógica y otros cursos de matemática no porque los programadores necesiten aplicar las técnicas directamente de manera regular (aunque podrían, dependiendo de lo que hagan), sino porque usted necesita eso conocimiento para comprender el material que viene después.
fuente
Seguiré y diré que no creo que el cálculo o el álgebra lineal sean importantes para la programación de sistemas.
Ciertamente creo que el cálculo y el álgebra lineal valen la pena aprender en general: ¡soy un tipo de matemáticas! Y, como señalan otras respuestas, hay cierta relevancia indirecta, ya que el análisis de rendimiento y el diseño de algoritmos pueden usar matemáticas avanzadas. Sin embargo, no creo que la programación de sistemas dependa más de ese tipo de matemáticas que la mayoría de los otros campos que generalmente no se consideran matemáticos.
fuente
Sospecho que es cierto en los bordes. Los programadores de sistemas deben estar mucho más preocupados por el rendimiento y la confiabilidad, por lo que el análisis de algoritmos puede ser importante, y el cálculo a veces es necesario para las pruebas de análisis Big-Oh. Temas como la teoría de colas y la optimización discreta (es decir, optimización matemática, no optimización de código) también pueden desempeñar un papel. Sin embargo, creo que eso se aplicaría principalmente a las personas que trabajan en la vanguardia de los sistemas operativos y los protocolos de red, no tanto a la persona que trabaja en el controlador USB 3.0.
fuente
Su definición de programación de sistemas se alinea bastante bien con la respuesta en Wikipedia.
Si piensa en lo que está proporcionando, es decir. una interfaz de software en hardware, entonces comienza a tener sentido por qué el cálculo y el álgebra lineal son habilidades útiles para tener.
Resumir esa interfaz de bajo nivel requiere que comprenda cómo funciona el dispositivo. Los dispositivos electrónicos todavía están sujetos a las leyes de la física. El cálculo y el álgebra lineal proporcionan un medio para modelar el comportamiento del dispositivo. Modelar el dispositivo le permite proporcionar un servicio en su funcionalidad.
Dicho esto, esos dos campos no son el final de la programación de sistemas. Conozco algunos EE que no lo hicieron tan bien con el cálculo y el álgebra lineal, pero aún pueden explicar lo que el dispositivo está haciendo de manera bastante sucinta.
fuente
La aplicación web general y / o la programación administrativa no implican mucha aplicación de álgebra lineal o cálculo, pero muchos campos especializados sí. Si trata con geometría, seguramente se encontrará con álgebra lineal. La mayoría de la programación física también se ocupa tanto del álgebra como del cálculo. Además de casi cualquier cosa que tenga que ver con la manipulación de formas de onda, como la programación de sonido y radio. En general, es más importante comprender las matemáticas discretas que, entre otras cosas, se ocupan de la teoría de conjuntos, la teoría de grafos y la lógica formal (booleana) que es útil en muchas aplicaciones, como la gestión de la información, las bases de datos y otros lugares donde se combinan datos y / o lógica. . En el caso de la programación de sistemas, no veo tantas aplicaciones.
fuente
Como otros han mencionado, cualquier curso de matemáticas en la universidad puede agudizar sus habilidades de resolución de problemas y razonamiento deductivo. Estos son importantes para casi cualquier persona.
Pero a veces conocer algo de álgebra lineal puede ser útil, especialmente para algunas ideas de negocios bastante buenas .
fuente
Con el cálculo es bastante fácil, tan pronto como uno mira más de cerca el contenido del curso . Está estrechamente relacionado con la complejidad del algoritmo, la notación Big-O , cosas así, bastante fundamentales en la programación.
Las ecuaciones son lo que obtienes al estimar la complejidad del algoritmo. Los bucles anidados de tres niveles de
0
aN
son N 3 , los bucles anidados de dos niveles son N 2 , uno es N. La evaluación que puede obtener podría ser (N 3 + 2 * N 2 + N): es una ecuación.Ahora, si desea comprender mejor qué tan rápido crecerá el tiempo de ejecución cuando N aumente, esto está estrechamente relacionado con los derivados / diferenciación. Otras partes del cálculo que pueden resultarle útiles son los límites y el análisis asintótico: esto lo llevará a comprender la notación Big-O, a obtener una mejor puntuación en las entrevistas de programación y, posiblemente, a una mejor programación de sistemas.
En cuanto al álgebra lineal , aquí las aplicaciones de programación te disparan desde la primera imagen.
Si alguna vez tendrá que lidiar con gráficos de trama (por ejemplo, en controladores de video), las imágenes como las anteriores le llegarán en sus peores pesadillas.
fuente