¿Existe un libro canónico sobre matemáticas para programadores? [cerrado]

52

Soy un programador autodidacta. Sinceramente, no soy bueno en matemáticas. ¿Qué consejo puede dar para mejorar mis habilidades matemáticas para que no sea tan inseguro con mis compañeros programadores? ¿Cuáles son los pasos o pautas que puede recomendar para mejorar mis habilidades matemáticas?

¿Existe un libro que sea el estándar de facto para describir las mejores prácticas, metodologías de diseño y otra información útil sobre matemáticas para programadores? ¿Qué hay de ese libro que lo hace especial?

adietan63
fuente
8
¿Conoces geometría? ¿álgebra? ¿trigonometría? álgebra lineal? ¿cálculo? ¿Qué tan lejos estás?
Marcelo
3
@ adietan63: Las sugerencias serán especulativas solo a menos que sea más específico sobre su conocimiento matemático actual.
David Thornley
1
Usaría Python con PyGame. Si quieres entrar en 3D sin demasiados problemas, entonces Panda3D de Carnegie Mellon con Disney Studios es muy fácil de aprender.
thorsten müller
1
@FrustratedWithFormsDesigner | ¿Java es adecuado para el procesamiento de gráficos y juegos o su c ++?
adietan63
55
¿Podría contarnos algo más sobre cómo sus compañeros programadores usan las matemáticas? Daría un consejo bastante diferente si trabaja para una empresa financiera frente a una tienda de programación. (Si te hace sentir más seguro lanzar palabras como "espacio de Hilbert" y "heteroscedasticidad" en la oficina, aprende un poco de álgebra lineal y estadísticas avanzadas. Simplemente no esperes impresionar a los desarrolladores de hoi polloi).
rajah9

Respuestas:

24

Hmm, por lo que dices parece que quieres comenzar muy básico. No hay nada malo en eso, hice lo mismo. Mis matemáticas eran principalmente de secundaria y muchas de ellas olvidadas.

Comience con Khan Academy , vaya a la sección de práctica y vea hasta dónde puede llegar. Esto le dará una buena idea de lo que puede hacer y dónde comenzar a aprender.

No te molestes en ver los videos. Al menos para mí, los videos son solo una forma lenta de aprender y los de Khan son muy aburridos. Hay muchos otros recursos para aprender matemáticas básicas. Al igual que algunos de los WikiBooks o ck-12

La pregunta se discute en Math.StackExchange con la frecuencia suficiente y la búsqueda de 'recursos gratuitos' o 'libros gratuitos' le brindará mucha información y material. Lo mismo ocurre con los términos de búsqueda como 'inicio' o 'principiante'. O haga su propia pregunta allí. Eso también funciona en la subsección / r / math en reddit. Allí encontrará más subreddits, por ejemplo, para aprender matemáticas.

Practica mucho. No es suficiente simplemente entender un concepto y luego pasar al siguiente. Debes sentirte cómodo para aplicarlo. No comprenderá los porcentajes si no se siente cómodo con la división y la multiplicación (como ejemplo). Eso también es cierto para los conceptos superiores. Es por eso que para mí la sección de práctica en Khan es mucho más valiosa que los videos.

Al igual que con la programación, mantenerse en contacto con la comunidad lo mantendrá motivado. Simplemente inicie sesión en algún foro de vez en cuando y lea de qué están hablando las personas.

Thorsten Müller
fuente
¡Gracias hombre! Tu derecho Creo que necesito comenzar desde lo más básico para comprender el área amplia de las matemáticas.
adietan63
+100 KhanAcademy es ideal para fortalecer las bases matemáticas. No hay nada de malo en comenzar desde lo básico. El aprendizaje a su propio ritmo elimina el "factor de humillación" de no conocer algunos de los fundamentos matemáticos simples. El sistema de evaluación hace un buen trabajo identificando debilidades y avanzando rápidamente más allá de las debilidades.
Evan Plaice
16

Matemáticas concretas: una base para la informática (2ª edición) sería mi elección para un buen libro de matemáticas que cubra diversas áreas de las matemáticas, además de tener algo de humor en el libro que pueda ser útil.

JB King
fuente
Yo también lo leí. Un buen libro.
Ando
2
+1 porque es muy buen libro. Sin embargo, no estoy seguro si es algo para alguien que se define a sí mismo como "no bueno en matemáticas".
vartec
Sería genial si, en lugar de simplemente usar la palabra "obvio", Knuth hiciera algunas partes más obvias. Pero con trabajo duro se pueden entender todas las cosas, si uno tiene una sólida formación en matemáticas de la escuela.
gruszczy
8
Tenga cuidado, este libro definitivamente no es para principiantes.
MAK
2
El truco es leerlo realmente. Seguí deseando hojearlo como un manual o un sitio web. Eso no funciona ¿Palabra o concepto inexplicable? Lo encontrará si retrocede lo suficiente. Lento para mí (nunca terminé el cálculo, pero más por ser un vago que malo en matemáticas), pero una buena recomendación de la OMI. Explican bien las cosas. Solo sé paciente y tómate tu tiempo.
Erik Reppen
10

Las notas en línea de Paul de la Universidad de Lamar vienen en formato PDF. Es muy bueno para una referencia rápida y hay ejemplos en cada página. Si alguna vez quise actualizarme sobre un tema o captar algo, tiendo a volver a este sitio.

Aquí está el conjunto:

Álgebra (Matemáticas 1314): Notas completas
Listado de contenidos

  • Preliminares: propiedades de exponente, exponentes racionales, exponentes negativos, radicales, polinomios, factorización, expresiones racionales, números complejos
  • Resolver ecuaciones y desigualdades: ecuaciones lineales, ecuaciones cuadráticas, completar el cuadrado, fórmula cuadrática, aplicaciones de ecuaciones lineales y cuadráticas, de forma reducible a cuadrática, ecuaciones con radicales, desigualdades lineales, desigualdades polinómicas y racionales, ecuaciones de valor absoluto y desigualdades.
  • Representación gráfica y funciones: representación gráfica de líneas, círculos y funciones por partes, definición de funciones, notación de funciones, composición de funciones, funciones inversas.
  • Gráficos comunes: parábolas, elipses, hipérbolas, valor absoluto, raíz cuadrada, función constante, funciones racionales, cambios, reflexiones, simetría.
  • Funciones polinomiales: dividir polinomios, ceros / raíces de polinomios, encontrar ceros de polinomios, graficar polinomios, fracciones parciales.
  • Funciones exponenciales y de logaritmo: funciones exponenciales, funciones de logaritmo, resolución de funciones exponenciales, resolución de funciones de logaritmo, aplicaciones.
  • Sistemas de ecuaciones: método de sustitución, método de eliminación, matriz aumentada, sistemas no lineales.

Cálculo I (Matemáticas 2413): separado en

  1. Listado de contenidos
  2. Notas
  3. Problemas de práctica
  4. Soluciones para practicar problemas
  5. Problemas de asignación

    • Álgebra / Trig Review - Funciones y ecuaciones trigonométricas, Funciones y ecuaciones exponenciales, Funciones y ecuaciones de logaritmos.
    • Límites: conceptos, definición, computación, límites unilaterales, continuidad, límites que involucran el infinito, regla de L'Hospitals
    • Derivados: definición, interpretaciones, fórmulas derivadas, regla de potencia, regla de producto, regla de cociente, regla de cadena, derivadas de orden superior, diferenciación implícita, diferenciación logarítmica, derivadas de funciones trigonométricas, funciones exponenciales, funciones logarítmicas, funciones trigonométricas inversas y funciones trigonométricas hiperbólicas .
    • Aplicaciones de derivados: tasas relacionadas, puntos críticos, valores mínimos y máximos, funciones crecientes / decrecientes, puntos de inflexión, concavidad, optimización
    • Integración: definición, integrales indefinidas, integrales definidas, regla de sustitución, evaluación de integrales definidas, teorema fundamental del cálculo
    • Aplicaciones de integrales: valor de función promedio, área entre curvas, sólidos de revolución, trabajo.

Cálculo II (Matemáticas 2414) Notas completas

Cálculo III (Matemáticas 2415) Notas completas

Álgebra lineal (Matemáticas 2318) Notas completas

Ecuaciones diferenciales (Math 3301) Notas completas

Puede consultar el sitio para ver el resto de los listados de temas.

phwd
fuente
1
No puedo creer que esto no tenga más votos. Pablo es un dios.
n0pe
8

Me doy cuenta de que este no es un libro, pero creo que podría ser una buena manera de ampliar su pensamiento sobre las matemáticas. Intenta resolver los problemas del Proyecto Euler .

Por ejemplo, el primero es :

Si enumeramos todos los números naturales por debajo de 10 que son múltiplos de 3 o 5, obtenemos 3, 5, 6 y 9. La suma de estos múltiplos es 23.

Encuentra la suma de todos los múltiplos de 3 o 5 por debajo de 1000.

Peter K.
fuente
Las preguntas del Proyecto Euler están basadas en matemáticas, pero el problema que tuve con ellas fue que avanzaron tan rápido que la única forma en que pude resolverlas fue con algoritmos de fuerza bruta (a menos que hiciera trampa). Dicen que debería poder encontrar una solución elegante que se ejecute en menos de 60 segundos para todas las preguntas.
Mike
44
@ Mike, no creo que investigar problemas similares e intentar comprender los conceptos subyacentes lo suficientemente bien como para atacar el problema sea hacer trampa. Estás aprendiendo más "haciendo trampa" de esta manera y no haciendo toda esa investigación.
Doug T.
1
Hice muchos de ellos y mejoró mis habilidades de programación. Aunque con respecto a las matemáticas en sí, en su mayoría aprendes muchos trucos geniales, pero no agregas mucho a los conocimientos fundamentales como Cálculo o Álgebra. Pero le agrega motivación para hacer matemáticas.
thorsten müller
1
@ thorsten: mi esposa (el matemático de la familia) piensa que las matemáticas son SOLO un montón de trucos geniales. :-)
Peter K.
1
La forma en que generalmente enfrento los problemas de Euler es que primero pruebo una fuerza bruta y la optimizo. Eso solo ha enseñado muchos hechos matemáticos que nunca supe. Después, leer los foros de soluciones generalmente genera aún más conocimientos matemáticos.
Sistema
8

Siempre recomiendo las Matemáticas discretas de Kenneth Rosen y sus aplicaciones . Cubre muchos temas diferentes (como cualquier buen libro de Discrete Math) con un buen equilibrio de teoría y aplicación. También tiene muchas barras laterales interesantes sobre matemáticos e informáticos que originaron los conceptos cubiertos.

Bill el lagarto
fuente
¡Gracias! pero ¿cuáles son los requisitos previos antes de estudiar Matemáticas discretas, etc.
adietan63
1
@ adietan63: Álgebra es todo lo que diría que se requiere . Mi universidad nos permitió tomar Matemáticas Discretas antes de Cálculo o Estadísticas, pero ciertamente no estaría de más tomarlas primero.
Bill the Lizard
@ adietan63: También puede consultar algunos de los libros de matemáticas de Head First si necesita un repaso, o ver algunas conferencias en video gratuitas en línea.
Bill the Lizard
@Bill ¡Gracias! Tal vez me siento presionado para aprender esto porque quiero aprender muchas cosas en programación en un corto período de tiempo. Tal vez lo tome uno a la vez. Creo que esto es parte del proceso de aprendizaje. ¡gracias de nuevo!
adietan63
77
De nada. Además, esa sensación de "Quiero aprender muchas cosas en la programación en un corto período de tiempo" nunca desaparece. :)
Bill the Lizard
4

Si bien leer un libro de matemática discreta 1000 es una buena solución, puede que no sea la ruta óptima si el tiempo es una limitación. Si desea tener una idea de la cantidad de matemática que debe tener sin profundizar, eche un vistazo al apéndice A de la introducción del libro (Algoritmo) de cormen : http://www.acmsolver.org/books/ Introducción% 20to% 20Algoritmos,% 202nd% 20Ed% 20-% 20Thomas% 20H.% 20Cormen.pdf

Leí el apéndice y me dio una mejor idea de qué temas matemáticos debería revisar más. Una vez que sepa qué esperar, eche un vistazo a:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 ingrese la descripción de la imagen aquí

En mi opinión, aprender a probar (especialmente por inducción) es una piedra angular en la comprensión de los algoritmos de análisis . Desafortunadamente, la mayoría de los algoritmos e incluso los cursos de matemáticas CS no se centran demasiado en la prueba. ya suponen que usted es competente en esto, por lo que no van más allá de unas pocas páginas. El libro Viaje a las matemáticas es muy pequeño y fácil de leer. Utiliza problemas CS y su aspecto matemático también. Otros buenos temas para aprender son la aritmética matricial , la probabilidad , el conteo y la teoría de grafos también.

Los otros dos grandes libros de texto populares: Matemática discreta y su aplicación de EPP (mi favorito) y el otro de Rosen.

http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0534359450/ref=sr_1_4?ie=UTF8&qid=1308591784&sr=8-4

http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0073229725/ref=sr_1_1?ie=UTF8&qid=1308591784&sr=8-1

No tuve el placer de leer el libro de texto titulado " Matemáticas concretas ", pero siempre escuché cosas buenas al respecto.

Armando
fuente
1

Francamente, puedes ser un programador perfectamente adecuado en muchos campos sin un conocimiento fundamentalmente muy fuerte de las matemáticas. Es posible que no sea muy capaz cuando se trata de motores de juegos u optimización de enrutamiento de red, pero a decir verdad, muchas aplicaciones comerciales son bastante simples. Sin embargo, te animo a mantener viva la esperanza y no renunciar a las matemáticas.

Hay un mundo de diferencia entre las matemáticas que tomas en un nivel inferior y las matemáticas que tomas en un nivel superior. Es una cosa muy diferente decir que eres malo en Cálculo (yo era, le fallé a Calc I la primera vez que lo tomé) que decir que eres malo en Graph Theory. A medida que avanza a través de las matemáticas, el enfoque no está en la simple resolución de problemas que es francamente bastante aburrida y repetitiva y que bien podría hacer su calculadora gráfica. En cambio, el enfoque está en las habilidades de pensamiento lógico: construir pruebas es francamente muy parecido a escribir software.

La mejor clase de matemática que tuve fue la que consideré mi primera clase de matemática "real": básicamente, una clase de introducción a las pruebas que cubría un rango de áreas desde la teoría de gráficos hasta la teoría de números. El texto que utilizamos fue excelente ( Pensamiento matemático: resolución de problemas y pruebas de D'Angelo y West ). Puede que le resulte útil trabajar en ese libro para obtener algunas ideas para atacar las pruebas.

En general, ¿realmente necesitaba algo de las matemáticas que tomé en la universidad? No, probablemente no. Pero tener algunos antecedentes formales me dio mejores habilidades de pensamiento crítico, una mejor imaginación (generalmente hay muchas formas de resolver un problema, a veces bueno, a veces malo, pero una idea única puede ser útil) y confianza en la resolución de problemas.

Edward Thomson
fuente
El | ¡Gracias hombre! Creo que aunque Math no pueda ayudarte todo el tiempo. ¿Quizás su presencia te ayudará en el pensamiento crítico y mejorará tus habilidades analíticas?
adietan63
Francamente, creo que te gusta la palabra "francamente".
bukzor
1

Mire, soy bueno en matemáticas, pero realmente no lo uso para programar, y programo bastante. Mi consejo sería simplemente acostumbrarse a no saber lo suficiente y que alguien haga los cálculos por usted.

Hay tantas cosas que debes saber que no puedes esperar ser bueno en todas ellas, pero las matemáticas en particular no son muy útiles.

Por supuesto, es posible que lo necesite porque sus programas son algo científico, de lo contrario, use ese tiempo para aprender algo más útil.

Ando
fuente
2
En desacuerdo, las buenas habilidades de programación están relacionadas con buenas habilidades matemáticas.
Marcelo
1
Bueno, creo que puedes estar en desacuerdo. Creo que el desacuerdo es un derecho, pero si eso te hace sentir autorizado para rechazar mi contribución, es realmente arriesgado.
Ando
Privilegios - voto negativo - requiere 125 reputación; ya te has ganado este privilegio.
Marcelo
1
Elegido porque estoy de acuerdo, que no necesitas las matemáticas para convertirte en un buen programador en muchas áreas. Aunque estoy totalmente en desacuerdo con que las matemáticas no son muy útiles. Incluso si no necesita matemática en su trabajo diario, gana mucho aprendiendo ciertos aspectos de la matemática y si es mucho para entender la notación big-O.
thorsten müller
1

Mirar las notas del curso de algunos de los cursos (para principiantes) de la sección "Lógica y Computación" de ESSLLI (como ejemplo, el próximo programa 2011 o el programa 2010 , busque más) puede ser interesante. Le dará una impresión sobre los desarrollos teóricos actuales en el campo relacionado con la programación. Entonces puede decidir estudiar más profundamente los fundamentos en un determinado subcampo tocado en esos cursos.

(De lo contrario, es difícil responder a su pregunta, hay muchas "matemáticas" diferentes, que tal vez no necesite o no le interesen. Una razón por la cual los cursos de ESSLLI pueden resultar interesantes para nosotros es porque reflejan algo actual investigación, por lo que tratan de resolver ciertos acertijos; y tratar de resolver cierto acertijo es un componente importante en el proceso de una comprensión real de una teoría, de comprender qué es lo interesante detrás de ella).

imz - Ivan Zakharyaschev
fuente
1

Si estás estudiando matemáticas CS correctamente, entonces estás mirando cosas como la lógica matemática y la teoría de conjuntos. Estos tienen algunas matemáticas bastante complicadas que los apoyan. Por lo tanto, si su nivel básico de matemáticas es un poco complicado, entonces es mejor comenzar con los fundamentos, antes de pasar a las áreas más relacionadas con CS.

Por lo tanto, sugeriría que comience con las Matemáticas de Ingeniería de KA Stroud . Bien escrito, fácil de seguir y cubre los conceptos básicos, así como cosas más avanzadas.

CdMnky
fuente
1

Comience con los fundamentos y luego continúe con los especializados: Deleite matemático y Cómo resolverlo son dos grandes libros para comenzar. Mathematician's Delight aborda temas matemáticos fundamentales (por ejemplo, geometría, álgebra, cálculo, etc.) de una manera divertida y amigable para los humanos. Todavía no he leído Cómo resolverlo, pero se centra en cómo atacar los problemas matemáticos mediante el razonamiento.

sakisk
fuente