Estoy interesado en la robótica. ¿Debo aprender matemáticas si quiero ser programador?

Absolutamente.

Gran parte de la informática gira en torno a la comprensión e implementación de las matemáticas, así como al uso y la invención de algoritmos.

¡Y puede ser divertido!

Sugeriría aprender algo de lógica booleana básica (AND, OR, NOT, etc.). Y una forma divertida de hacer esto es enigmas. Sugiero este libro: ¿La dama o el tigre? Comienzas con algunos acertijos muy simples que puedes razonar fácilmente con lógica, y lentamente él aumenta la complejidad, cada vez que te da un pequeño ‘¡Ah, ja!’ momento. Luego gira las tablas y le da un rompecabezas que no puede trabajar para obtener una sola respuesta, por lo que debe concluir que es una solución u otra, probarlas y refutar la que no puede ser. Mucha diversión y no reconoce que en realidad está aprendiendo a pensar y razonar a partir de fragmentos de información y sacar conclusiones. (Algo que un robot podría tener que hacer mientras experimenta un nuevo entorno).

A continuación, sugiero explorar el campo de las Matemáticas Discretas. Para mí, este es uno de los mejores patios de juego mentales, porque no parece matemática en absoluto. Aprende a manipular conjuntos de cosas, formas de ordenar cosas, calcular la probabilidad de cosas, hacer gráficos y mapas de cosas, propiedades extrañas de números, geometría inteligente y trucos de topología, toma de decisiones, optimización y descomplexificación. (Esto ayudará a un robot a navegar por los laberintos y también a comportarse como AI).

Finalmente, exploraría un poco de trigonometría. Aprenderá funciones muy básicas basadas en la relación entre los lados de un triángulo dentro de un círculo; una vez que lo obtienes, de repente tienes las herramientas para calcular ángulos, dirección y distancia. (Muy útil para un robot que quiere moverse o alcanzar).

Solo incursionar en cualquiera de estos campos será una experiencia esclarecedora y factible que abrirá todo tipo de puertas (incluso más allá de la robótica).

Esto me parece una pregunta equivocada. Las mejores preguntas serían: ¿Cuáles serían los campos específicos de las matemáticas que debería aprender para ser un programador exitoso en el campo de la robótica?

Como otros han dicho, el campo de las matemáticas discretas, con varias de sus especialidades, es más directamente aplicable a la programación. En particular, hay lógica, especialmente lógica booleana, combinatoria, teoría de conjuntos (y grupos), teoría de grafos, probabilidad y estadística, teoría de la información y, especialmente para robótica y programación de juegos, geometría.

Para un enfoque académico, puede consultar MIT: Open CourseWare: Cursos de introducción a la programación y, en particular: MIT: OCW: Matemáticas para la informática. Para un enfoque más correctivo y altamente interactivo, puede mirar: Khan Academy

Podrías evitar todos estos consejos y concentrarte solo en aprender a codificar en algún lenguaje de programación … y probablemente llegar a ser lo suficientemente competente para realizar cualquier trabajo que puedas conseguir en el campo. (Irónicamente, el proceso de entrevista es a menudo más difícil que gran parte del trabajo en nuestro campo).

Gran parte de las matemáticas que realmente * necesitas * están implícitas en las habilidades de codificación que aprenderás sin importar cómo aprendas.

Sin embargo, el valor real de estudiar matemáticas en nuestra profesión se debe a que la competencia en matemáticas distingue al ingeniero de software del programador.

Una cosa es poder hackear código que cumpla algunos requisitos dentro de un conjunto específico de casos de uso; Otra es poder modelar un sistema complejo y diseñar software que pueda manejar de manera sólida estos requisitos en una escala más amplia.

Para la robótica, como mínimo, querrás álgebra básica (para que seas cómodo manipulando variables).
También querrás una buena conexión a tierra básica en:
Disparo, pero solo en la medida en que es un círculo unitario, de dónde proviene pi, qué son los radianes y qué hacen el pecado, el bronceado y el cos. Aquellos con una tabla de identidades lo llevarán muy lejos, y en su mayoría serán suplantados por …
Álgebra lineal (matemática 3D, productos de puntos, productos cruzados, multiplicaciones matriciales, transformaciones 3D, inversión y transposición de matrices, eliminación gaussiana, eliminación gauss-jordania, jacobianos)
Cálculo vectorial (análisis vectorial, flujos), aunque esto se centra principalmente en la visión por computadora
Mecánica Clásica (Física / Ingeniería Mecánica)
Teoría de control óptima (control PID, filtrado de Kalman, vectores de estado, optimización y minimización global)
Cinemática inversa, y posiblemente hamiltonianos y lagrangianos.
AI (redes neuronales, árboles de decisión, ada-boost)
Posiblemente algo de ingeniería electrónica por si acaso.

Dicho esto, no necesitas todo esto. Solo depende de qué tan lejos quieres llegar en el tema y qué subáreas quieres abordar. Comience con poco, aprenda las piezas que necesita y avance a otras materias a medida que hace cosas más complejas. Por ejemplo, si desea diseñar y construir los robots, querrá tener más ingeniería electrónica e ingeniería mecánica. Si solo desea controlarlos, solo necesita suficiente EE y ME para poder determinar cuáles son los parámetros para controlar los servos y los sensores, no para hacerlos desde cero.

Trig es menos útil de lo que la gente piensa, porque eventualmente se le enseñará el producto de punto, que elimina la mayoría de sus usos en sus cálculos.

Pero es un área de gran tema.

Enfocaría esto de manera diferente al enfoque de “sí estudiar matemáticas” de las otras respuestas. Recomiendo un enfoque práctico, específicamente consígase un Arduino. Comience usándolo para hacer que un led parpadee. Encuentra otros proyectos fáciles de Arduino en línea y hazlos. En realidad, puedes construir algunos robots bastante sofisticados con un Arduino.

En algún momento, es posible que desee comenzar a dar a sus robots su propia inteligencia artificial. En ese punto, deberás comenzar a estudiar matemáticas y muchas otras cosas. Pero primero puedes divertirte y asegurarte de tu interés antes de profundizar en las cosas difíciles.

En general, cuantas más matemáticas aprendas, más práctica tendrás con el pensamiento abstracto y el razonamiento lógico. Ambas son habilidades críticas para la informática también.

Específicamente, el álgebra, la geometría, la probabilidad y la combinatoria, el álgebra lineal y el cálculo de secuencia / serie podrían ser aplicables a diversas situaciones de programación. ¡No puedo pensar en ejemplos para ningún otro campo, pero estoy seguro de que alguien podría probar que estoy equivocado!

Por lo tanto, no necesita doble especialización en matemáticas, y algo de esto puede aprender por su cuenta cuando surja, ¡pero los temas estándar de matemáticas de la escuela secundaria son un sí definitivo! ¡Aprende matemáticas!

Las matemáticas no son en absoluto un prerrequisito directo para convertirse en programador.
Pero si quieres ser un gran programador, definitivamente tendrás que aprovecharlo. Enumeré algunas razones para respaldar mi reclamo:

  • La programación es un subconjunto de Matemática Aplicada. Sin una base matemática, la programación significa arañar la superficie de la comprensión.
  • La programación se desarrolla en base a los conceptos matemáticos de la lógica. Sin Matemáticas, su comprensión del conocimiento de programación siempre será superficial.
  • La matemática es una necesidad absoluta si desea hacerse capaz de enfrentar la mayoría de los desafíos de procesamiento que se le presentan en la programación.
  • Las matemáticas le permitirán saber cómo calcular la eficiencia de un algoritmo y compararlo con la eficiencia de otros algoritmos del mismo problema. Eso lo llevará a decidir cuál aplicar.
  • Brindar una solución de programación a grandes problemas requiere una gran cantidad de conocimiento abstracto. Las matemáticas son la mejor manera de aprenderlas.

También eche un vistazo al siguiente artículo, donde el escritor discutió algunos de los puntos de manera más detallada: La programación no es matemática

La matemática es una de las cosas más valiosas que haya pasado para la informática, como saben, las computadoras están trabajando en ello. Supongo que conoce todos los 0 y 1 de los que las computadoras son responsables. Como desarrollador, esta es mi opinión básica para darle: si planea ser un buen desarrollador con las habilidades del pensamiento creativo y poder ver desde diferentes puntos de vista, necesita comprender las matemáticas y también la física ( debes decir whoa a esto, pero esto es para los juegos y cosas por las que puedes mover tus objetos de acuerdo con los estándares del mundo real, para que puedas tocar a más personas.) Ahora, debo decir que puedes aprende cualquier cosita de todo lo que te rodea, como desarrollador. Y finalmente puedes tocar los corazones de más personas.


Así que no dudes en aprender algo de informática, especialmente matemática.

No se necesitan matemáticas para hacer un cobertizo, una mesa o una silla tosca. Pero se necesitan matemáticas (y física y mecánica) para crear un hermoso edificio (o puente), mesa o silla.

Si su interés es la robótica, su interés incluye acciones y manipulaciones del mundo físico. Necesitará conocer física y mecánica básicas: fuerzas, energía, calor, etc. Necesitará saber cómo representarlas con una computadora, y dónde es mejor una respuesta aproximada oportuna que una respuesta precisa tardía. Tendrá que aprender a tomar un modelo de física (conociendo el cálculo) y cómo representarlo como computación digital.

También deberá aprender algo sobre electricidad y electrónica, así como sobre mecánica.

Por no hablar de los tipos de matemáticas avanzadas que implican aritmética finita, teoría de conjuntos, lógica booleana, etc., deberá ser un buen programador.

Entonces, sí, necesitas aprender matemáticas, a menos que quieras que tus robots sean el equivalente de cobertizos simples y toscos.

Respuesta corta: si!
Respuesta más larga: Fu … ¡sí!
Específicamente si estás interesado en la robótica. En robótica, tienes IA que depende en gran medida de las estadísticas. Tiene sistemas de control que requieren cálculos matemáticos pesados ​​de múltiples dominios. Tiene procesamiento de señal, que nuevamente es matemático pesado, y muchos más de este tipo. La informática como campo es relativamente nueva, los científicos informáticos más destacados eran en realidad matemáticos. Esto no es una coincidencia. La informática evolucionó desde las matemáticas. En resumen: cuanto más orientado a las matemáticas te vuelvas, mejor serás un científico de la computación. Chico, cómo desearía que alguien me lo hubiera explicado cuando estaba dando mis pequeños pasos en el campo.

Sin duda deberías aprender matemáticas si quieres ser un programador. EW Dijkstra, uno de los grandes científicos informáticos de su generación, dijo que una cierta inclinación matemática y un dominio de su propio idioma nativo (que generalmente era inglés en ese momento) eran los dos requisitos previos más importantes para convertirse en un gran programador.

Ahora, eso no significa que aplicará las matemáticas que aprendió directamente en la programación: son principalmente las matemáticas discretas (árboles, gráficos, combinatorias) las que tienen aplicaciones directas, pero el pensamiento abstracto aprendido en cálculo y álgebra homológica sigue siendo muy valioso.

Cuando dices matemáticas, ¿realmente te refieres a la aritmética? Si es así, la respuesta es no. pero incluso wikipedia llama a la aritmética “la rama más elemental de las matemáticas”, lo cual no es exactamente correcto. En mi opinión, la teoría de conjuntos y la teoría de categorías son candidatos de Dios para las ramas elementales.

Hay un libro que enseña ramas de matemáticas necesarias para la programación. El camino de Haskell a la lógica, las matemáticas y la programación, y en los primeros capítulos te enseña lo que más necesitas, es decir, la lógica.

No es absolutamente esencial, pero se recomienda tanto que no haya una diferencia útil.

Diría que la lógica de conjunto, las transformaciones, la lógica booleana, el álgebra lineal y el álgebra matricial son las claves, pero no llegarás lejos en robótica sin trigonometría y geometría.

Necesita conocerlos lo suficientemente bien, no necesita un doctorado en cada uno. Basado en lo que he visto en los cursos universitarios, una semana y media de estudio por tema cubrirá tanto como un título universitario de primer año en estos temas y una buena parte del segundo año también.

(Para ser justos con las universidades, cubren una gran cantidad de terreno adicional, proporcionan un contexto útil, proporcionan ejercicios de laboratorio marcados, proporcionan tiempo libre, etc.) El abarrotamiento es excelente si quieres saber algo con fluidez, las universidades son excelentes si quieres entienden la disposición de la tierra. No son mutuamente excluyentes y pueden funcionar muy bien juntos).

Deberías aprender algo sobre matemáticas si quieres ser un programador.

Deberías aprender aún más sobre matemáticas si quieres trabajar en robótica. Específicamente, debe aprender acerca de los sistemas de control, para lo cual necesitará una base sólida en cálculo, matemáticas lineales, métodos numéricos y procesamiento de señales.

Déjame ponerlo de esta manera:
Si eres bueno en programación, podrías ser muy bueno en matemáticas. Solo necesita redescubrirse. Tendemos a desarrollar aversión hacia las matemáticas porque muchos de nosotros fuimos “forzados a alimentar” el tema en nuestros primeros años escolares. Si puede pensar de manera lógica, funcional o relacional, ya está pensando matemáticamente. Regrese a Matemáticas mientras desarrolla sus habilidades de programación.

Las matemáticas son parte de ser un programador / w.

Todos los programadores deben tener una buena comprensión del álgebra, especialmente el álgebra booleana, y algunos campos requieren mucho más.

La criptografía y la compresión de datos requieren cálculo, teoría de números y muchas matemáticas de alto nivel. La comprensión profunda de los lenguajes de programación, los compiladores y algunos de los conceptos de programación de gama alta requieren Set Theory y Lambda Calculus.

Entonces sí, aprende matemáticas.

Hola, he estado programando diariamente profesionalmente durante más de un año y lo más importante que me he dado cuenta es que, de hecho, soy matemático en una forma de hablar. La programación es, de hecho, una forma de matemática solo una con niveles de abstracción quizás más altos que el cálculo de Lamba o las matemáticas discretas. Se aplican los mismos principios de diseño de algoritmos y muchas formas de matemáticas, especialmente Cálculo, ya emplean declaraciones de flujo de control similares y otros principios comunes de matemáticas. Recomiendo aprender las matemáticas que te gustan. Comprender los estáticos ayudará con el aprendizaje profundo, comprender el cálculo o el álgebra lineal ayudará con la programación funcional. La matemática y la programación son esencialmente las mismas, no me sorprendería si futuros algoritmos abandonan la notación de cálculo o álgebra lineal para la expresión de python o haskell. En otras palabras, podría ser posible que los futuros trabajos de física se presenten para __ en ___ etc. La notación matemática siempre ha estado en la programación de alguna forma, podría ser el caso de que las convenciones de programación pudieran dar el salto a las matemáticas.

Sí, debería, debería ser parte de su curso de ingeniería de robótica, también es importante comprender el robot físico. El movimiento robótico requiere ecuaciones diferenciales para funcionar sin problemas.

Por ejemplo, la geometría diferencial se puede usar para modelar el movimiento del robot.

Por supuesto, es posible obtener un trabajo relacionado con CS, ¡pero habrá grandes agujeros en su conocimiento! Que necesitarás aprender por tu cuenta. En este caso, las Matemáticas Aplicadas probablemente sean suficientes a menos que esté haciendo algo realmente avanzado y complicado.

No. Debes aprender áreas muy específicas de las matemáticas si quieres ser un programador. Matemáticas discretas, lógica, teoría de conjuntos, teoría de grafos. La familiaridad con el álgebra y la geometría es útil a veces. El álgebra lineal y el cálculo varían en su utilidad dependiendo de lo que esté haciendo exactamente.

Para robótica, absolutamente. Por ejemplo, si desea que un robot pueda mover un apéndice a un objeto, tendrá que hacer muchos cálculos matemáticos para que múltiples articulaciones puedan mover ángulos específicos, a fin de alcanzar ciertas distancias. Eso es álgebra, geometría y trigonometría como mínimo. Sin embargo, es posible que pueda omitir el cálculo si las velocidades y aceleraciones no son importantes para usted.

Si está interesado en la robótica, necesita aprender física. Para llevar la física más allá del nivel secundario, debes saber matemáticas, más allá del nivel secundario.
A menos que espere limitar sus actividades de programación para hacer lo que otros crean, no poder evaluar esos requisitos desde un punto de vista profundo. Eso sería lo mismo que programar la facturación o un informe contable.

More Interesting

¿Cómo se usan las matemáticas en informática?

Cómo usar el pecado y dónde usar cos en vectores

¿Cuáles son las cuatro aplicaciones prácticas de la teoría de conjuntos en informática?

Estoy tomando SL Maths para el Diploma IB, ¿sería esto suficiente para universidades como UCB, UCLA, GaTech for Computer Science?

Para los montones máximos, ¿por qué el orden de build_maxheap () [math] n \ log (n), [/ math] cuando solo tiene que recorrer n / 2 elementos?

Cómo resolver este problema matemático discreto

¿Cuál es el mejor recurso para aprender sobre las pruebas de corrección para algoritmos?

¿Por qué todos los ceros (0000 0000) en el campo de exponente representan el exponente -126 y no -127 en coma flotante IEEE de precisión simple?

Si un ciclo se ejecuta infinitas veces, ¿por qué recibimos un error de tiempo de ejecución en lugar de un error de límite de tiempo excedido? Además, ¿cuál es el valor de infinito para los compiladores en línea?

Dados n objetos y p posiciones divididas equitativamente alrededor de una tabla, n <= p, ¿cuántas combinaciones de ubicación existen?

¿Qué tan lejos están las computadoras cuánticas de resolver al menos un problema de NP completo en un tiempo polinómico?

¿Cuáles son algunos algoritmos y estructuras de datos relevantes para la robótica?

¿Qué conceptos matemáticos son cruciales para un informático?

¿Cuál es el significado y el beneficio de las variables compartidas en Theano?

¿Cuál es el significado de bucket = Math.abs (x.hashCode () * p)% tablesize en Java?