Gibt es ein kanonisches Buch über Mathematik für Programmierer? [geschlossen]

52

Ich bin ein Autodidakt Programmierer. Ich bin ehrlich gesagt nicht gut in Mathe. Welchen Rat können Sie geben, um meine mathematischen Fähigkeiten zu verbessern, damit ich mich in Bezug auf meine Programmierkollegen nicht so unsicher fühle? Welche Schritte oder Richtlinien können Sie empfehlen, um meine mathematischen Fähigkeiten zu verbessern?

Gibt es ein Buch, das de facto als Standard für die Beschreibung von Best Practices, Entwurfsmethoden und anderen hilfreichen Informationen zur Mathematik für Programmierer gilt? Was macht dieses Buch so besonders?

adietan63
quelle
8
Kennst du Geometrie? Algebra? Trigonometrie? lineare Algebra? Infinitesimalrechnung? Wie weit bist du?
Marcelo
3
@ adietan63: Vorschläge sind nur Spekulationen, es sei denn, Sie sind genauer über Ihre aktuellen mathematischen Kenntnisse informiert.
David Thornley
1
Ich würde Python mit PyGame verwenden. Wenn Sie ohne großen Aufwand in 3D einsteigen möchten, ist Panda3D von Carnegie Mellon mit Disney Studios sehr einfach zu erlernen.
thorsten müller 20.06.11
1
@FrustratedWithFormsDesigner | Ist Java für Grafikverarbeitung und Gamming oder für C ++ geeignet?
Adietan63
5
Würden Sie uns bitte etwas mehr darüber erzählen, wie Ihre Programmierkollegen Mathematik verwenden? Ich würde auf ganz andere Ratschläge verzichten, wenn Sie für eine Finanzfirma oder einen Programmierbetrieb arbeiten. (Wenn Sie sich dadurch sicherer fühlen, Wörter wie "Hilbert Space" und "Heteroskedastizität" im Büro zu werfen, sollten Sie
unbedingt

Antworten:

24

Hmm, von dem, was du sagst, scheint es, dass du sehr einfach anfangen willst. Nichts Schlimmes, ich habe das Gleiche getan. Meine Mathematik war größtenteils auf Highschool-Niveau und vieles wurde vergessen.

Beginnen Sie mit der Khan Academy , gehen Sie zur Übungssektion und sehen Sie, wie weit Sie kommen können. Auf diese Weise erhalten Sie eine gute Vorstellung davon, was Sie tun können und wo Sie mit dem Lernen beginnen können.

Schau dir keine Videos an. Zumindest für mich sind Videos nur ein langsamer Weg zu lernen und Khans sind besonders langweilig. Es gibt viele andere Ressourcen, um grundlegende Mathematik zu lernen. Wie einige der WikiBooks oder ck-12

Die Frage wird in Math.StackExchange oft genug diskutiert und die Suche nach "freien Ressourcen" oder "freien Büchern" bringt Ihnen eine Menge Informationen und Material. Gleiches gilt für Suchbegriffe wie "Start" oder "Anfänger". Oder stellen Sie dort Ihre eigene Frage. Das funktioniert auch im Unterabschnitt / r / math von reddit. Dort finden Sie weitere Subreddits, zB zum Erlernen von Mathematik.

Übe viel. Es reicht nicht aus, nur ein Konzept zu verstehen und dann mit dem nächsten fortzufahren. Sie müssen sich wohl fühlen, um es anzuwenden. Sie werden Prozentsätze nicht verstehen, wenn Sie mit Division und Multiplikation nicht vertraut sind (als Beispiel). Das gilt auch für höhere Konzepte. Deshalb ist für mich die Übungssektion bei Khan weitaus wertvoller als die Videos.

Wie beim Programmieren werden Sie motiviert, wenn Sie mit der Community in Kontakt bleiben. Logge dich nur ab und zu in ein Forum ein und lies, worüber die Leute reden.

thorsten müller
quelle
Danke, Mann! Dein Recht. Ich denke, ich muss von den Grundkenntnissen ausgehen, um den weiten Bereich der Mathematik zu verstehen.
Adietan63
+100 KhanAcademy eignet sich hervorragend zur Stärkung mathematischer Grundlagen. Es ist nichts Falsches daran, von den Grundlagen auszugehen. Das selbstgesteuerte Lernen beseitigt den „Demütigungsfaktor“, einige der einfachen mathematischen Grundlagen nicht zu kennen. Das Bewertungssystem leistet gute Arbeit, um Schwächen zu erkennen und diese schnell zu überwinden.
Evan Plaice
16

Konkrete Mathematik: Eine Grundlage für Informatik (2. Auflage) wäre meine Wahl für ein gutes Mathematikbuch, das verschiedene Bereiche der Mathematik abdeckt, zusammen mit etwas Humor für das Buch, das nützlich sein könnte.

JB King
quelle
Ich habe es auch gelesen. Ein gutes Buch.
Ando
2
+1 weil es ein sehr gutes Buch ist. Ich bin mir nicht sicher, ob es etwas für jemanden ist, der sich selbst als "nicht gut in Mathe" definiert.
Vartec
Es wäre großartig, wenn Knuth nicht nur das Wort „offensichtlich“ verwenden würde, sondern einige Teile deutlicher machen würde. Aber mit harter Arbeit kann man alles verstehen, wenn man einen soliden mathematischen Hintergrund aus der Schule hat.
Gruszczy
8
Seien Sie gewarnt, dieses Buch ist definitiv nichts für Anfänger.
MAK
2
Der Trick ist, es tatsächlich zu lesen. Ich hatte immer wieder das Bedürfnis, es wie ein Handbuch oder eine Website zu überfliegen. Das geht nicht Wort oder Begriff unerklärt? Sie werden es finden, wenn Sie weit genug zurück gehen. Langsam für mich (Kalkül nie zu Ende - aber eher dafür, dass ich lockerer als schlecht in Mathe bin), aber eine gute Empfehlung, IMO. Sie erklären die Dinge gut. Sei einfach geduldig und nimm dir Zeit.
Erik Reppen
10

Pauls Online-Notizen von der Lamar University liegen im PDF-Format vor. Es ist sehr gut für eine schnelle Referenzierung und es gibt Beispiele auf jeder Seite. Wenn ich mich jemals über ein Thema informieren oder etwas verstehen wollte, kehre ich in der Regel auf diese Website zurück.

Hier ist das Set:

Algebra (Mathe 1314): Vollständige Notizen
Auflistung des Inhalts

  • Vorbemerkungen - Exponenteneigenschaften, rationale Exponenten, negative Exponenten, Radikale, Polynome, Faktorisierung, rationale Ausdrücke, komplexe Zahlen
  • Lösen von Gleichungen und Ungleichungen - Lineare Gleichungen, Quadratische Gleichungen, Vervollständigung des Quadrats, Quadratische Formel, Anwendungen linearer und quadratischer Gleichungen, Reduzierbar auf quadratische Form, Gleichungen mit Radikalen, Lineare Ungleichungen, Polynom- und Rationale Ungleichungen, Absolutwertgleichungen und Ungleichungen.
  • Grafiken und Funktionen - Zeichnen von Linien, Kreisen und stückweisen Funktionen, Funktionsdefinition, Funktionsnotation, Funktionszusammensetzung, inversen Funktionen.
  • Gemeinsame Graphen - Parabeln, Ellipsen, Hyperbeln, Absolutwert, Quadratwurzel, Konstante Funktion, Rationale Funktionen, Verschiebungen, Reflexionen, Symmetrie.
  • Polynomfunktionen - Teilen von Polynomen, Nullen / Wurzeln von Polynomen, Finden von Nullen von Polynomen, Zeichnen von Polynomen, Teilbrüche.
  • Exponential- und Logarithmusfunktionen - Exponentialfunktionen, Logarithmusfunktionen, Lösen von Exponentialfunktionen, Lösen von Logarithmusfunktionen, Anwendungen.
  • Gleichungssysteme - Substitutionsmethode, Eliminationsmethode, Augmented Matrix, Nichtlineare Systeme.

Kalkül I (Mathe 2413): unterteilt in

  1. Auflistung der Inhalte
  2. Anmerkungen
  3. Probleme üben
  4. Lösungen zum Üben von Problemen
  5. Zuweisungsprobleme

    • Algebra / Trig Review - Triggerfunktionen und Gleichungen, Exponentialfunktionen und Gleichungen, Logarithmusfunktionen und Gleichungen.
    • Grenzen - Konzepte, Definition, Computing, einseitige Grenzen, Kontinuität, Grenzen der Unendlichkeit, L'Hospitals Rule
    • Ableitungen - Definition, Interpretationen, Ableitungsformeln, Potenzregel, Produktregel, Quotientenregel, Kettenregel, Ableitungen höherer Ordnung, implizite Differenzierung, logarithmische Differenzierung, Ableitungen von Triggerfunktionen, Exponentialfunktionen, Logarithmusfunktionen, inverse Triggerfunktionen und hyperbolische Triggerfunktionen .
    • Anwendungen von Derivaten - Verwandte Raten, kritische Punkte, Minimal- und Maximalwerte, Erhöhen / Verringern von Funktionen, Wendepunkte, Konkavität, Optimierung
    • Integration - Definition, unbestimmte Integrale, bestimmte Integrale, Substitutionsregel, Bewertung bestimmter Integrale, Fundamentalsatz der Analysis
    • Anwendungen von Integralen - Durchschnittsfunktionswert, Fläche zwischen Kurven, Rotationskörper, Arbeit.

Kalkül II (Mathe 2414) Volle Notizen

Kalkül III (Mathe 2415) Volle Notizen

Lineare Algebra (Math 2318) Vollständige Notizen

Differentialgleichungen (Mathe 3301) Volle Anmerkungen

Sie können die Site nach den restlichen Themenlisten durchsuchen.

phwd
quelle
1
Kann nicht glauben, dass dies nicht mehr Stimmen hat. Paul ist ein Gott.
Nr.
8

Mir ist klar, dass dies kein Buch ist, aber ich denke, es ist eine gute Möglichkeit, Ihr Denken über Mathematik zu erweitern. Versuchen Sie, die Probleme mit Project Euler zu lösen .

Zum Beispiel ist der erste :

Wenn wir alle natürlichen Zahlen unter 10 auflisten, die Vielfache von 3 oder 5 sind, erhalten wir 3, 5, 6 und 9. Die Summe dieser Vielfachen ist 23.

Ermitteln Sie die Summe aller Vielfachen von 3 oder 5 unter 1000.

Peter K.
quelle
Projekt-Euler-Fragen basieren zwar auf Mathematik, aber das Problem, das ich damit hatte, war, dass sie so schnell fortgeschritten waren, dass ich sie nur mit Brute-Force-Algorithmen lösen konnte (sofern ich nicht geschummelt habe). Sie sagen, dass Sie in der Lage sein sollten, eine elegante Lösung zu finden, die für alle Fragen in weniger als 60 Sekunden ausgeführt wird.
Mike
4
@Mike, ich denke nicht, dass es schummelt, ähnliche Probleme zu untersuchen und zu versuchen, die zugrunde liegenden Konzepte gut genug zu verstehen, um das Problem anzugehen. Sie lernen mehr, indem Sie auf diese Weise "schummeln", ohne all diese Nachforschungen anzustellen.
Doug T.
1
Ich habe viele davon gemacht und dadurch meine Programmierkenntnisse verbessert. In Bezug auf die Mathematik selbst lernst du zwar meistens eine Menge guter Tricks, aber fügst dem Grundwissen wie Kalkül oder Algebra nicht viel hinzu. Aber es erhöht die Motivation beim Rechnen.
thorsten müller 20.06.11
1
@thorsten: Meine Frau (die Mathematikerin in der Familie) glaubt, dass Mathematik NUR ein paar nette Tricks ist. :-)
Peter K.
1
Normalerweise gehe ich mit Euler-Problemen um, indem ich zuerst eine rohe Kraft ausprobiere und sie optimiere. Das allein hat eine Menge mathematischer Fakten gelehrt, die ich nie gekannt habe. Durch das anschließende Lesen der Lösungsforen werden in der Regel noch mehr mathematische Erkenntnisse gewonnen.
System Down
8

Ich empfehle immer Kenneth Rosens Diskrete Mathematik und ihre Anwendungen . Wie in jedem guten Buch über Diskrete Mathematik werden viele verschiedene Themen behandelt, wobei Theorie und Anwendung in einem ausgewogenen Verhältnis stehen. Es hat auch viele interessante Seitenleisten zu den Mathematikern und Informatikern, die die behandelten Konzepte entwickelt haben.

Bill the Lizard
quelle
Vielen Dank! aber was sind die Voraussetzungen vor dem Studium der diskreten Mathematik usw.
adietan63
1
@Adietan63: Algebra ist alles, was ich sagen würde, ist erforderlich . Meine Universität hat uns Discrete Math vor Calculus oder Stats nehmen lassen, aber es würde sicherlich nicht schaden, diese zuerst zu nehmen.
Bill the Lizard
@ adietan63: Vielleicht möchten Sie auch einige der Head First- Mathebücher lesen, wenn Sie eine Auffrischung benötigen, oder sich einige kostenlose Online-Videovorlesungen ansehen.
Bill the Lizard
@ Rechnung Danke! Vielleicht fühle ich mich beim Erlernen dieses Stoffes unter Druck gesetzt, weil ich in kurzer Zeit viele Dinge beim Programmieren lernen möchte. Vielleicht nehme ich es nacheinander. Ich denke, dass dies Teil des Lernprozesses ist. Danke noch einmal!
Adietan63
7
Bitte. Auch das Gefühl "Ich möchte in kurzer Zeit viele Dinge im Programmieren lernen" geht nie wirklich verloren. :)
Bill the Lizard
4

Das Lesen eines diskreten 1000-er Mathematikbuchs ist zwar eine gute Lösung, es ist jedoch möglicherweise nicht der optimale Weg, wenn die Zeit knapp ist. Wenn Sie eine Vorstellung davon haben möchten, wie viel Mathematik Sie haben sollten, ohne zu tief zu gehen, lesen Sie Anhang A der Einführung des (cormen) -Algorithmusbuchs : http://www.acmsolver.org/books/. Einführung% 20to% 20Algorithms,% 202nd% 20Ed% 20-% 20Thomas% 20H.% 20Cormen.pdf

Ich habe den Anhang gelesen und konnte besser nachvollziehen, welche mathematischen Themen ich noch einmal durcharbeiten sollte. Wenn Sie wissen, was Sie erwartet, schauen Sie sich Folgendes an:

http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15 Bildbeschreibung hier eingeben

Meiner Meinung nach ist das Erlernen des Beweisens (insbesondere durch Induktion) ein Grundstein für das Verständnis der Analysealgorithmen . Leider konzentrieren sich die meisten Algorithmen und sogar CS-Mathematikkurse nicht zu sehr auf Beweise. Sie gehen bereits davon aus, dass Sie kompetent darin sind, und gehen daher nicht über ein paar Seiten hinaus. Die Reise ins Mathematikbuch ist sehr klein und leicht zu lesen. Es werden auch CS-Probleme und deren mathematische Aspekte verwendet. Weitere gute Themen sind Matrixarithmetik , Wahrscheinlichkeitsrechnung , Zählung und Graphentheorie .

Die anderen beiden beliebten großen Lehrbücher: Diskrete Mathematik und ihre Anwendung von EPP (mein Favorit) und das andere von 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

Ich habe nicht das Vergnügen, das Lehrbuch " Konkrete Mathematik " zu lesen, aber ich habe immer gute Dinge darüber gehört.

Armando
quelle
1

Ehrlich gesagt, können Sie in vielen Bereichen ein vollkommen geeigneter Programmierer sein, ohne über fundierte mathematische Kenntnisse zu verfügen. Möglicherweise sind Sie nicht in der Lage, Spiele-Engines oder die Optimierung des Netzwerkroutings zu optimieren, aber ehrlich gesagt sind viele Geschäftsanwendungen recht einfach. Ich möchte Sie jedoch ermutigen, die Hoffnung am Leben zu erhalten und die Mathematik noch nicht aufzugeben.

Es gibt einen großen Unterschied zwischen der Mathematik, die Sie auf einem niedrigeren Niveau absolvieren, und der Mathematik, die Sie auf einem höheren Niveau absolvieren. Es ist eine ganz andere Sache, zu sagen, dass Sie schlecht in Calculus sind (ich war - ich habe Calc I beim ersten Mal nicht bestanden), als zu sagen, dass Sie schlecht in Graph Theory sind. Wenn Sie in der Mathematik vorankommen, liegt der Schwerpunkt nicht auf der einfachen Problemlösung, die ehrlich gesagt ziemlich langweilig und sich wiederholend ist und möglicherweise auch von Ihrem Grafikrechner ausgeführt wird. Stattdessen liegt der Fokus auf logischen Denkfähigkeiten: Das Erstellen von Beweisen ähnelt offen gesagt dem Schreiben von Software.

Der beste Mathematikunterricht, den ich jemals hatte, war der, den ich als meinen ersten "echten" Mathematikunterricht betrachtete: im Grunde eine Einführung in den Proofunterricht, der eine Reihe von Bereichen von Graphentheorie bis Zahlentheorie abdeckte. Der von uns verwendete Text war großartig ( Mathematisches Denken: Problemlösung und Beweise von D'Angelo und West .) Es kann nützlich sein, dieses Buch nur durchzuarbeiten, um einige Ideen für das Angreifen von Beweisen zu erhalten.

Insgesamt habe ich wirklich brauche eine der Mathematik ich in der Schule nahm? Nein wahrscheinlich nicht. Aber mit einem formalen Hintergrund konnte ich kritischer denken, mir eine bessere Vorstellungskraft (es gibt normalerweise viele Möglichkeiten, ein Problem zu lösen, manchmal gut, manchmal schlecht, aber eine einzigartige Idee kann hilfreich sein) und Vertrauen in die Problemlösung.

Edward Thomson
quelle
| Danke, Mann! Ich denke sogar, wenn dir Mathe nicht die ganze Zeit helfen kann. Vielleicht hilft Ihnen seine Präsenz beim kritischen Denken und verbessert Ihre analytischen Fähigkeiten?
adietan63,
Ehrlich gesagt, ich denke, Sie mögen das Wort "ehrlich gesagt".
Bukzor
1

Schau, ich bin gut in Mathe, aber ich benutze es überhaupt nicht zum Programmieren, und ich programmiere ziemlich viel. Mein Rat wäre einfach, sich daran zu gewöhnen, nicht genug zu wissen und jemanden die Mathe für dich machen zu lassen.

Es gibt so viele Dinge zu wissen, dass man nicht erwarten kann, dass sie überhaupt gut sind, aber Mathematik im Besonderen ist nicht sehr nützlich.

Natürlich können Sie es brauchen, weil Ihre Programme etwas Wissenschaftliches sind, ansonsten nutzen Sie diese Zeit, um etwas Nützlicheres zu lernen.

Ando
quelle
2
Nicht einverstanden, gute Programmierkenntnisse sind mit guten Mathematikkenntnissen verbunden.
Marcelo
1
Nun, ich denke, dass Sie anderer Meinung sein können. Meiner Meinung nach ist Meinungsverschiedenheit ein Recht, aber wenn Sie sich dadurch berechtigt fühlen, meinen Beitrag abzustimmen, ist das wirklich riskant.
Ando
Privilegien - abstimmen - erfordern 125 Ruf; Sie haben dieses Privileg bereits erworben.
Marcelo
1
Positiv bewertet, weil ich damit einverstanden bin, dass man in vielen Bereichen keine Mathematik braucht , um ein guter Programmierer zu werden. Obwohl ich nicht der Meinung bin, dass Mathematik nicht sehr nützlich ist. Auch wenn Sie in Ihrer täglichen Arbeit keine Mathematik benötigen, profitieren Sie vom Erlernen bestimmter Aspekte der Mathematik, und wenn es nur so viel ist, die Big-O-Notation zu verstehen.
thorsten müller 20.06.11
1

Ein Blick auf die Kursnotizen einiger (Anfänger-) Kurse aus dem Bereich "Logik & Berechnung" von ESSLLI (als Beispiel das kommende Programm 2011 oder das Programm 2010 , Suche nach mehr) kann interessant sein. Es gibt Ihnen einen Eindruck über die aktuellen theoretischen Entwicklungen auf dem Gebiet der Programmierung. Dann können Sie entscheiden, die Grundlagen in einem bestimmten Teilbereich, der in diesen Kursen behandelt wird, zu vertiefen.

(Andernfalls ist es schwierig, Ihre Frage zu beantworten, da es so viele verschiedene "Mathematik" gibt, die Sie möglicherweise nicht wirklich brauchen oder an denen Sie interessiert sind. Ein Grund, warum sich die ESSLLI-Kurse als interessant für uns herausstellen können, ist, dass sie einige aktuelle Aspekte widerspiegeln Bei der Forschung geht es darum, bestimmte Rätsel zu lösen, und der Versuch, ein bestimmtes Rätsel zu lösen, ist eine wichtige Komponente im Prozess des tatsächlichen Verständnisses einer Theorie, des Verstehens dessen, was dahintersteckt.)

imz - Ivan Zakharyaschev
quelle
1

Wenn Sie CS-Mathematik richtig studieren, schauen Sie sich Dinge wie mathematische Logik und Mengenlehre an. Diese haben einige ziemlich komplizierte Mathe, die sie unterstützen. Wenn Ihre Grundkenntnisse in Mathematik ein bisschen rau sind, beginnen Sie am besten mit den Grundlagen, bevor Sie sich den Bereichen widmen, die mit CS zu tun haben.

Daher würde ich vorschlagen, dass Sie mit der Technischen Mathematik von KA Stroud beginnen . Gut geschrieben, leicht zu befolgen und behandelt die Grundlagen sowie fortgeschrittenere Sachen.

CdMnky
quelle
1

Beginnen Sie mit den Grundlagen und fahren Sie dann mit den folgenden Themen fort: Die Freude des Mathematikers und seine Lösung - zwei großartige Bücher. Mathematician's Delight nähert sich grundlegenden mathematischen Themen (z. B. Geometrie, Algebra, Analysis usw.) auf menschenfreundliche und amüsante Weise. Ich habe noch nicht gelesen, wie man es löst, aber es konzentriert sich darauf, wie man mathematische Probleme durch Argumentation angreift.

Sakisk
quelle