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?
Antworten:
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.
quelle
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.
quelle
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
Kalkül I (Mathe 2413): unterteilt in
Zuweisungsprobleme
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.
quelle
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 :
quelle
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.
quelle
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
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.
quelle
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.
quelle
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.
quelle
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.)
quelle
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.
quelle
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.
quelle