Existe-t-il un livre canonique sur les mathématiques pour les programmeurs? [fermé]

52

Je suis un programmeur autodidacte. Honnêtement, je ne suis pas bon en maths. Quel conseil donneriez-vous pour améliorer mes compétences en mathématiques afin que je ne sois pas si peu en sécurité avec mes collègues programmeurs? Quelles sont les étapes ou les lignes directrices que vous pouvez recommander pour améliorer mes compétences en mathématiques?

Existe-t-il un livre qui constitue la norme de facto pour décrire les meilleures pratiques, les méthodologies de conception et d'autres informations utiles sur les mathématiques pour les programmeurs? Qu'en est-il de ce livre qui le rend spécial?

adietan63
la source
8
Connaissez-vous la géométrie? algèbre? trigonométrie? algèbre linéaire? calcul? Jusqu'où êtes-vous?
Marcelo
3
@ adietan63: Les suggestions ne seront que spéculation, à moins que vous ne soyez plus précis sur vos connaissances mathématiques actuelles.
David Thornley
1
Je voudrais utiliser Python avec PyGame. Si vous souhaitez vous initier à la 3D sans trop de problèmes, alors Panda3D de Carnegie Mellon avec Disney Studios est très facile à apprendre.
Thorsten Müller
1
@FrustratedWithFormsDesigner | Java est-il adapté au traitement graphique et aux jeux ou à son c ++?
Adietan63
5
Pourriez-vous nous en dire un peu plus sur la manière dont vos collègues programmeurs utilisent les mathématiques? Je dispenserais des conseils assez différents si vous travaillez pour une entreprise financière par rapport à un magasin de programmation. (Si vous vous sentez plus en sécurité lorsque vous lancez des mots tels que "espace de Hilbert" et "hétéroscédasticité" autour du bureau, vous apprendrez certainement de l'algèbre linéaire et des statistiques avancées. Ne vous attendez pas à impressionner les développeurs de Hoi Polloi.)
rajah9

Réponses:

24

Hmm, d'après ce que vous dites, vous semblez vouloir commencer très basique. Rien de grave à ce sujet, j'ai fait la même chose. Mes maths étaient principalement au niveau secondaire et beaucoup ont été oubliés.

Commencez par Khan Academy , allez à la section pratique et voyez jusqu'où vous pouvez aller. Cela vous donnera une bonne idée de ce que vous pouvez faire et du début de l’apprentissage.

Ne prenez pas la peine de regarder les vidéos. Au moins pour moi, les vidéos ne sont qu'un moyen lent d'apprendre et celles de Khan sont extrêmement ennuyeuses. Il existe de nombreuses autres ressources pour apprendre les mathématiques de base. Comme certains des WikiBooks ou ck-12

La question est discutée sur Math.StackExchange assez souvent et la recherche de «ressources gratuites» ou de «livres gratuits» vous apportera beaucoup d'informations et de matériaux. Il en va de même pour les termes de recherche tels que "début" ou "débutant". Ou posez votre propre question ici. Cela fonctionne également dans la sous-section / r / math sur Reddit. Vous y trouverez plus de sous-titres, par exemple pour l’apprentissage des mathématiques.

Pratique beaucoup. Il ne suffit pas de comprendre un concept, puis de passer au suivant. Vous devez être à l'aise pour l'appliquer. Vous ne comprendrez pas les pourcentages si vous n'êtes pas à l'aise avec la division et la multiplication (à titre d'exemple). Cela est vrai aussi pour les concepts supérieurs. C'est pourquoi, pour moi, la section pratique de Khan est beaucoup plus utile que les vidéos.

Comme pour la programmation, rester en contact avec la communauté vous gardera motivé. Il suffit de se connecter à un forum de temps en temps et de lire de quoi les gens parlent.

Thorsten Müller
la source
Merci mec! Tu as raison. Je pense que je dois commencer par les bases pour comprendre le vaste domaine des mathématiques.
Adietan63
+100 KhanAcademy est idéal pour renforcer les bases des mathématiques. Il n'y a rien de mal à partir des bases. L'apprentissage auto-rythmé supprime le "facteur d'humiliation" consistant à ne pas connaître certains principes fondamentaux des mathématiques. Le système d'évaluation identifie les faiblesses et va rapidement au-delà de ces faiblesses.
Evan Plaice
16

Concrete Mathematics: Un socle pour l'informatique (2e édition) serait mon choix pour un bon livre de mathématiques couvrant divers domaines des mathématiques, tout en ayant un peu d'humour qui puisse être utile.

JB King
la source
Moi aussi le lire. Un bon livre.
Ando
2
+1 car c'est un très bon livre. Je ne sais pas si c'est quelque chose pour quelqu'un qui se définit comme "pas bon en maths".
vartec
Ce serait formidable si, plutôt que d'utiliser simplement le mot «évidente», Knuth rendait certaines parties plus évidentes. Mais avec le travail acharné, tout peut être compris, si l’on a de solides connaissances en mathématiques à l’école.
Gruszczy
8
Soyez averti, ce livre n'est certainement pas pour les débutants.
MAK
2
L'astuce consiste à le lire réellement. Je n'arrêtais pas de vouloir le parcourir comme un manuel ou un site Web. Ça ne marche pas. Mot ou concept inexpliqué? Vous le trouverez si vous allez assez loin en arrière. Lentement pour moi (jamais terminé calcul - mais plus pour être un fainéant que mauvais en maths), mais une bonne recommandation OMI. Ils expliquent bien les choses. Soyez patient et prenez votre temps.
Erik Reppen
10

Paul's Online Notes de l'Université Lamar est disponible en format PDF. C'est très bien pour un référencement rapide et il y a des exemples sur chaque page. Si j'ai toujours voulu me rafraîchir sur un sujet ou saisir quelque chose, j'ai tendance à revenir sur ce site.

Voici l'ensemble:

Algèbre (Mathématiques 1314): Notes complètes
Liste du contenu

  • Préliminaires - Propriétés des exposants, Exposants rationnels, Exposants négatifs, Radicaux, Polynômes, Factorisation, Expressions rationnelles, Nombres complexes
  • Résoudre des équations et des inégalités - équations linéaires, équations quadratiques, compléter la formule carrée, formule quadratique, applications des équations linéaires et quadratiques, réductible à la forme quadratique, équations aux radicaux, inégalités linéaires, inégalités polynomiales et rationnelles, équations absolues et équations.
  • Représentation graphique et fonctions - Représentation graphique des lignes, des cercles et des morceaux, définition de fonction, notation de fonction, composition de fonction, fonctions inverses.
  • Graphes courants - Paraboles, Ellipses, Hyperboles, Valeur absolue, Racine carrée, Fonction de constante, Fonctions rationnelles, Décalages, Réflexions, Symétrie.
  • Fonctions polynomiales - Division de polynômes, Zéros / Racines de polynômes, Recherche de zéros de polynômes, Polynômes graphiques, Fractions partielles.
  • Fonctions exponentielles et logarithmiques - Fonctions exponentielles, Fonctions logarithmiques, Résolution de fonctions exponentielles, Résolution de fonctions logarithmiques, Applications.
  • Systèmes d'équations - Méthode de substitution, Méthode d'élimination, Matrice augmentée, Systèmes non linéaires.

Calcul I (Math 2413): séparés en

  1. Liste du contenu
  2. Remarques
  3. Problèmes de pratique
  4. Solutions aux problèmes de pratique
  5. Problèmes d'attribution

    • Révision algèbre / trig - Fonctions et équations de trig, Fonctions et équations exponentielles, Fonctions et équations de logarithme.
    • Limites - Concepts, Définition, Informatique, Limites unilatérales, Continuité, Limites impliquant l'infini, Règle de L'Hospitals
    • Dérivés - Définition, interprétations, formules dérivées, règle de pouvoir, règle de produit, règle de quotient, règle de chaîne, dérivés d'ordre supérieur, différenciation implicite, différenciation logarithmique, dérivés de fonctions de déclenchement, fonctions exponentielles, fonctions de logarithme, fonctions de logarithme, fonctions de déclenchement inverses et fonctions de déclenchement hyperboliques .
    • Applications des dérivés - Taux, points critiques, valeurs minimum et maximum, fonctions d'augmentation / de diminution, points d'inflexion, concavité, optimisation
    • Intégration - Définition, Intégrales indéfinies, Intégrales définies, Règle de substitution, Évaluation des intégrales définies, Théorème fondamental du calcul
    • Applications des intégrales - Valeur de fonction moyenne, Surface entre courbes, Solides de révolution, Travail.

Calcul II (Math 2414) Notes Complètes

Calcul III (Math 2415) Notes Complètes

Algèbre linéaire (Math 2318) Notes complètes

Équations différentielles (Math 3301) Notes complètes

Vous pouvez consulter le site pour le reste des listes de sujets.

phwd
la source
1
Je ne peux pas croire que cela n'a pas plus de votes. Paul est un dieu.
n0pe
8

Je réalise que ce n'est pas un livre, mais je pense que cela pourrait être un bon moyen d'élargir votre réflexion sur les mathématiques. Essayez de résoudre les problèmes liés au projet Euler .

Par exemple, le premier est :

Si nous listons tous les nombres naturels inférieurs à 10 qui sont des multiples de 3 ou 5, nous obtenons 3, 5, 6 et 9. La somme de ces multiples est 23.

Trouve la somme de tous les multiples de 3 ou 5 inférieurs à 1000.

Peter K.
la source
Les questions de Project Euler sont certes basées sur les mathématiques, mais le problème que j’avais avec elles était qu’elles étaient si avancées si rapidement que la seule façon de les résoudre était d’utiliser des algorithmes de force brute (à moins que je ne triche). Ils disent que vous devriez être capable de trouver une solution élégante qui dure moins de 60 secondes pour toutes les questions.
Mike
4
@Mike, je ne pense pas que rechercher des problèmes similaires et essayer de comprendre suffisamment les concepts sous-jacents pour s'attaquer au problème, c'est tricher. Vous en apprenez plus en "trichant" de cette façon, puis en ne faisant pas toute cette recherche.
Doug T.
1
J'en ai fait beaucoup et cela a amélioré mes compétences en programmation. Bien qu'en ce qui concerne les mathématiques, vous apprenez la plupart du temps beaucoup d’astuces mais vous n’ajoutez pas grand chose à des connaissances fondamentales comme le calcul ou l’algèbre. Mais cela vous ajoute de la motivation à faire des mathématiques
Thorsten Müller
1
@thorsten: ma femme (la mathématicienne de la famille) pense que les mathématiques ne sont que des astuces. :-)
Peter K.
1
La façon dont je traite habituellement les problèmes d’Euler est que, d’abord, j’essaie d’utiliser une force brute et de l’optimiser. Cela seul a enseigné beaucoup de faits mathématiques que je n'ai jamais connus. La lecture des forums de solutions par la suite apporte généralement encore plus de connaissances mathématiques.
System Down
8

Je recommande toujours les mathématiques discrètes de Kenneth Rosen et leurs applications . Il couvre un grand nombre de sujets différents (comme le fera tout bon livre de mathématiques discrètes) avec un bon équilibre entre théorie et application. Il comporte également de nombreuses barres latérales intéressantes sur les mathématiciens et les informaticiens à l'origine des concepts abordés.

Bill le lézard
la source
Merci! mais quels sont les préalables avant d'étudier les mathématiques discrètes, etc.
adietan63
1
@ adietan63: L'algèbre est tout ce que je dirais nécessaire . Mon université nous a laissé prendre les mathématiques discrètes avant le calcul ou les statistiques, mais cela ne ferait certainement pas de mal de les prendre en premier.
Bill le lézard
@ adietan63: Vous pouvez également consulter quelques-uns des livres de mathématiques Head First si vous avez besoin d'un rappel ou regarder des conférences vidéo gratuites en ligne.
Bill le lézard
@ Bill Merci! Peut-être que je me sens pressé d'apprendre ce genre de choses parce que je veux apprendre beaucoup de choses en programmation en peu de temps. Peut-être que je vais le prendre un à la fois. Je pense que cela fait partie du processus d'apprentissage. Merci encore!
Adietan63
7
Je vous en prie. De plus, ce sentiment de "Je veux apprendre beaucoup de choses dans la programmation en peu de temps" ne disparaît jamais vraiment. :)
Facturez le lézard le
4

Bien que la lecture d’un livre de mathématiques discrète soit une bonne solution, il n’est peut-être pas le chemin optimal si le temps est une contrainte. Si vous voulez avoir une idée de la quantité de maths que vous devriez avoir sans aller plus loin, jetez un coup d'œil à l' annexe A de l'introduction du livre de l'algorithme (cormen) : http://www.acmsolver.org/books/ Introduction% 20to% 20Algorithms,% 202nd% 20Ed% 20-% 20Thomas% 20H.% 20Cormen.pdf

J'ai lu l'annexe et cela m'a permis de mieux comprendre quels sujets liés aux mathématiques devrais-je passer en revue davantage. Une fois que vous savez à quoi vous attendre, jetez un coup d'œil sur:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 entrez la description de l'image ici

À mon avis, apprendre à prouver (en particulier par induction) est la pierre angulaire de la compréhension des algorithmes d'analyse . Malheureusement, la plupart des algorithmes et même des cours de mathématiques CS ne se concentrent pas sur la preuve. ils supposent déjà que vous êtes compétent en la matière, ils ne vont donc pas au-delà de quelques pages. Le livre Journey into math book est très petit et facile à lire. Il utilise les problèmes CS et leur aspect mathématique également. L' arithmétique matricielle , la probabilité , le comptage et la théorie des graphes sont d' autres sujets intéressants à apprendre .

Les deux autres grands manuels populaires: Discrete Math et son application de EPP (mon préféré) et l’autre 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

Je n’ai pas eu le plaisir de lire le manuel intitulé « Mathématiques concrètes » mais j’ai toujours entendu de bonnes choses à ce sujet.

Armando
la source
1

Franchement, vous pouvez être un programmeur parfaitement adéquat dans de nombreux domaines sans une connaissance fondamentalement très solide en mathématiques. Vous n’êtes peut-être pas très compétent en matière de moteurs de jeu ou d’optimisation du routage réseau, mais, à vrai dire, de nombreuses applications professionnelles sont assez simples. Cependant, je vous encourage à garder espoir et à ne pas abandonner les calculs.

Il y a un monde de différence entre les mathématiques que vous prenez à un niveau inférieur et les mathématiques que vous prenez à un niveau supérieur. C'est très différent de dire que vous êtes mauvais en calcul (j'étais - j'ai échoué dans Calc I la première fois que je l'ai pris) que de dire que vous êtes mauvais en théorie des graphes. Au fur et à mesure que vous avancez en mathématiques, vous ne vous concentrez pas sur une simple résolution de problème qui est franchement assez ennuyeuse et répétitive et qui pourrait tout aussi bien être réalisée à l'aide de votre calculatrice graphique. Au lieu de cela, l'accent est mis sur la capacité de raisonnement logique: la construction de preuves ressemble franchement à l'écriture de logiciels.

Le meilleur cours de mathématiques que j'ai jamais eu est ce que je considérais être mon premier "vrai" cours de mathématiques: en gros, un cours d'introduction aux épreuves couvrant un large éventail de domaines allant de la théorie des graphes à la théorie des nombres. Le texte que nous avons utilisé était excellent ( Pensée mathématique: résolution de problèmes et preuves de D'Angelo et West .) Vous trouverez peut-être utile de parcourir ce livre pour avoir quelques idées sur l'attaque de preuves.

Globalement, avais-je vraiment besoin des mathématiques que j'avais prises au collège? Non, probablement pas. Mais avoir une certaine formation formelle m'a donné de meilleures compétences de pensée critique, une meilleure imagination (il y a généralement plusieurs façons de résoudre un problème, parfois bon, parfois mauvais, mais une idée unique peut être utile) et une confiance en soi dans la résolution de problème.

Edward Thomson
la source
| Merci mec! Je pense que même si Math ne peut pas vous aider tout le temps. Peut-être que sa présence vous aidera dans votre réflexion critique et améliorera vos compétences analytiques?
Adietan63
Franchement, je pense que vous aimez le mot "franchement".
bukzor
1

Ecoute, je suis bon en maths, mais je ne l'utilise vraiment pas du tout pour la programmation, et je programme beaucoup. Mon conseil serait simplement de vous habituer à ne pas en savoir assez et à ce que quelqu'un fasse le calcul à votre place.

Il y a tellement de choses à savoir que vous ne pouvez pas vous attendre à toutes les qualités, mais en mathématiques, ce n'est pas très utile.

Bien sûr, vous en aurez peut-être besoin parce que vos programmes sont scientifiques, sinon utilisez ce temps pour apprendre quelque chose de plus utile.

Ando
la source
2
En désaccord, de bonnes compétences en programmation sont liées à de bonnes compétences en mathématiques.
Marcelo
1
Eh bien, je pense que vous pouvez être en désaccord. Je pense que ce désaccord est un droit, mais si cela vous donne le sentiment d’être autorisé à annuler ma contribution, c’est vraiment risqué.
Ando
Privilèges - vote négatif - requiert 125 points de réputation; vous avez déjà gagné ce privilège.
Marcelo
1
Voté parce que je suis d’accord, il n’est pas nécessaire que les maths deviennent un bon programmeur dans de nombreux domaines. Bien que je ne sois pas du tout d'accord sur le fait que les mathématiques ne sont pas très utiles. Même si vous n’avez pas besoin de mathématiques dans votre travail quotidien, vous gagnerez beaucoup à apprendre certains aspects des mathématiques et si c’est aussi important de comprendre la notation big-O.
Thorsten Müller
1

Il peut être intéressant de consulter les notes de cours de certains des cours (débutants) de la section "Logique et calcul" de ESSLLI (par exemple, le programme à venir de 2011 ou le programme de 2010 , rechercher plus). Cela vous donnera une idée des développements théoriques actuels dans le domaine de la programmation. Vous pourrez ensuite décider d’approfondir les bases d’un sous-domaine concerné par ces cours.

(Sinon, il est difficile de répondre à votre question, il y a tellement de "mathématiques" différentes, dont vous n'avez peut-être pas besoin ou qui ne vous intéressent pas. L'une des raisons pour lesquelles les cours ESSLLI peuvent s'avérer intéressants pour nous est qu'ils reflètent certains la recherche, donc il s’agit de résoudre certaines énigmes, et essayer de résoudre un certain casse-tête est un élément important dans le processus de compréhension réelle d’une théorie, de la compréhension de ce qui est l’intéressant derrière elle.)

imz - Ivan Zakharyaschev
la source
1

Si vous étudiez correctement les mathématiques en CS, vous examinez des éléments tels que la logique mathématique et la théorie des ensembles. Ce sont des maths assez compliquées qui les soutiennent. Par conséquent, si votre niveau élémentaire de mathématiques est un peu bas, vous ferez mieux de commencer par les bases, avant de passer aux domaines plus liés à la CS.

Par conséquent, je vous suggérerais de commencer par les mathématiques de l'ingénierie de KA Stroud . Bien écrit, facile à suivre et couvre les bases ainsi que des outils plus avancés.

CdMnky
la source
1

Commencez par les principes fondamentaux, puis passez à la spécialité: Mathematician's Delight et Comment le résoudre sont deux excellents livres à commencer. Mathematician's Delight aborde des sujets mathématiques fondamentaux (par exemple, la géométrie, l'algèbre, le calcul, etc.) d'une manière conviviale et amusante. Je n'ai pas encore lu Comment résoudre ce problème, mais il se concentre sur la manière d'attaquer les problèmes de maths en raisonnant.

Sakis
la source