Pure vs Applied Math Für Programmierer


13

Mathe war schon immer mein Ding, da ich das Thema immer leicht gefunden habe. Informatik ist jedoch meine zweite Liebe. Wenn ich die Wahl hätte, würde ich es vorziehen, Mathematik als Hauptfach zu belegen. Da die einzigen Karrieren, die man normalerweise mit einem Bachelor-Abschluss in Mathematik anstrebt, überhaupt nicht attraktiv sind, würde ich meine Tage als Softwareentwickler sehr zufrieden verbringen.

Meine Frage lautet: Von welcher mathematischen Disziplin würde ein zukünftiger Programmierer mehr profitieren? Angewandte Mathematik oder reine Mathematik?

Ich unterrichte mich gerne selbst und bin zuversichtlich, dass ich mir selbst beibringen kann, wie man ein großartiger Programmierer ist, aber ich plane immer noch, ein Nebenfach in CS zu bekommen!


16
Wenn Sie Mathe schon immer als "einfach" empfunden haben, sind Sie vermutlich noch nicht weit genug gekommen.
Mark C

Einfach im Vergleich zu anderen Leuten, sollte ich sagen.
Joose

Antworten:


12

Alles hängt davon ab, was Sie als Softwareentwickler tun möchten.

Wenn Sie sich mit Grafiken befassen möchten, benötigen Sie einen starken Hintergrund in Geometrie, linearem Algerbra, Matrixtransformationen (Physik wäre auch nicht schrecklich gewesen) usw.

Wenn Sie sich mit SQL oder anderen Arten der Datenbankprogrammierung beschäftigen möchten, sind Logik (Beweise, Schlußfolgerungsgesetze usw.) und Diskrete Mathematik (möglicherweise sogar Lambda-Kalkül) erforderlich.

Aber im Allgemeinen, je mehr angewandte Mathematik Sie kennen, desto besser.

Reine Mathematik wäre in Dingen wie der Algorithmusentwicklung und der theoretischen Programmierung besser. Vielleicht sogar Kartenreduxprogrammierung oder ähnliches.

Grundsätzlich kann man so oder so nichts falsch machen.


Spieleentwicklung würde meinen Gefühlen nicht schaden, aber ich höre, dass es ein schwieriges Feld ist, in das ich einsteigen muss. Und ich kann mir nicht vorstellen, dass ein fehlender CS-Abschluss meine Chancen erhöhen würde.
Joose

Die Spieleentwicklung ist sehr wettbewerbsfähig. Du wärest überrascht. Besonders mit allen iOS-, Android- und WP7-Apps, die immer beliebter werden. Es war viel schwieriger, sich darauf einzulassen (genau wie auf professionellen 3D-Animatoren. Das war mein Traum vor CS), aber die mobile Arena hat neue Türen geöffnet. In beiden Fällen ist es bei der Softwareentwicklung kein Problem, wenn Sie über die erforderlichen Fähigkeiten verfügen, um einen Job zu finden. Ich mache meinen Abschluss in 2 Monaten und mein Berater sagte mir, dass unsere CS-Abteilung. hat 100% Arbeitsvermittlung für seine Absolventen. Diese Zahl ist typisch für große Universitäten und CS
joe_coolish

4

Ich kann auf einen Finger zählen, wie oft ich in einem Projekt, an dem ich gearbeitet habe, eine Mathematik verwenden musste, die komplizierter ist als die grundlegende Algebra.

Es kommt wirklich auf das Feld an, in das Sie gehen.


Sehr richtig. Aber fortgeschrittene Mathematik hat sich dieses Mal als nützlich erwiesen, und es wird sich wahrscheinlich zumindest noch einmal als nützlich erweisen, bevor Sie in Rente gehen. Wo sich mein Unterwasserkorbwebkurs meiner Erfahrung nach noch als nützlich erweisen muss. Grundsätzlich gilt: Je mehr Mathematik, desto mehr Werkzeuge müssen Sie zur Lösung von Problemen einsetzen. Es ist nie eine schlechte Idee, mehr Mathe zu nehmen
joe_coolish

Und es gibt ein gewisses Maß an Lernmöglichkeiten, das Sie benötigen, wenn Sie es benötigen - insbesondere, wenn Sie bereits über einen soliden mathematischen Hintergrund verfügen. Ich habe CompSci studiert, aber als ich in meinem ersten Job die sphärische Geometrie kennen lernen wollte, habe ich ein bisschen Zeit in der Bibliothek meines alten Colleges verbracht, um mich darüber zu informieren.
Peter Taylor

@joe_coolish Wussten Sie nicht? Sie suchen Experten auf dem Gebiet, die beim Underwater Basketweaving Simulator 2011 helfen.
Maxpm

3

Die Programmierung erfolgt mathematisch. Das heißt, ich glaube nicht, dass es viel Unterschied macht. Die angewandte Mathematik, die ich für mein Studium (in Mathematik) gewählt habe, war in erster Linie auf die Physik ausgerichtet, was für die Logik, die für die Programmierung erforderlich ist, nicht viel bedeutet, aber für die Bestimmung der Algorithmen hervorragend geeignet ist.


2

Ich denke, ich würde eine Art Balance empfehlen.

Es ist sicherlich nützlich, grundlegende Theorie der Automaten, formale Sprachen, Informationstheorie und grundlegende diskrete Mathematik zu kennen.

Es ist auch sehr nützlich für die vielen mathematisch anspruchsvollen Anwendungsbereiche, Analysis, lineare Algebra, Wahrscheinlichkeit und Statistik zu kennen.

Es ist auch sehr wichtig, dass Sie sich mit No-Nonsense-Software-Engineering vertraut machen, damit Sie wissen, wie Sie einen Problembereich analysieren und eine Reihe von Vorgehensweisen mit Vor- und Nachteilen vorschlagen können. Dann können Sie sie mit einem Team durchziehen. Verstehen Sie die Bedeutung der Quellcodeverwaltung, Wartbarkeit, ordnungsgemäßen Tests und Qualitätskontrolle sowie des Software-Lebenszyklus-Managements.

Ich habe sehr kluge Leute gesehen, die in einem oder mehreren dieser Bereiche schüchtern waren, und es hält sie definitiv zurück. Und wenn sie Lehrer sind, hält es ihre Schüler zurück.


2

Ich beende zurzeit ein Studium in reiner Mathematik, habe aber auch viel Zeit in angewandten Mathematikforschungsprojekten verbracht. Obwohl jede Disziplin ihre eigenen kulturellen Grenzen zieht, ist die Unterscheidung zwischen reiner und angewandter Mathematik oft schwerer zu treffen, als wir zugeben möchten. Bis vor relativ kurzer Zeit in der Geschichte der Mathematik war fast die gesamte Mathematik das, was wir jetzt als "angewandte Mathematik" bezeichnen würden. (Gewähren Sie eine Ausnahme für die Zahlentheorie, wenn Sie möchten.) Manchmal verschieben sich auch die Grenzen. Eines meiner Forschungsinteressen war durch ein extrem "angewandtes" Problem motiviert, das einem tatsächlichen physikalischen System entsprach, das jedoch zentrale Techniken aus der Halbgruppentheorie und der formalen Sprachtheorie umfasste, relativ "reine" Themen. Denken Sie daran, dass sogar Gauß, der Prinz der Reinen, Stunden damit verbracht hat, die Umlaufbahn von Ceres von Hand zu berechnen.

Es ist sehr schwierig, viel mehr über Ihre Situation zu sagen, ohne spezifische Details zu Studienleistungen und Forschungsmöglichkeiten, aber es wäre fair zu sagen, dass angewandte Mathematik Ihnen viel mehr Erfahrung im Programmieren geben wird. Das soll nicht heißen, dass es in "reiner Mathematik" keine Rechenprobleme gibt (es gibt sie!), Aber diese werden nicht hervorgehoben, und Sie müssen selbst danach graben. Auf der anderen Seite scheint es den meisten Leuten leichter zu fallen, von rein auf angewendet und umgekehrt zu wechseln. Hier gibt es viele Möglichkeiten, Variablen zu verwechseln, aber das kann zu einer Pause führen.

Letztendlich ist eine der nützlichsten Fähigkeiten, die Sie als Student entwickeln können, die Fähigkeit, Antworten auf die folgenden Fragen zu finden: "Was brauche ich eine Waffe am Kopf, um zu lernen?" Wenn Sie Interessen haben, die sich über mehrere Bereiche erstrecken und Sie daran hindern, das jeweilige Kursangebot zu erschöpfen, sollte diese Frage viele Kursarbeiten motivieren. Zum Beispiel liebe ich die Automatentheorie sehr, aber ich habe nie einen Kurs in der Theorie der Berechnung belegt, weil ich das Lehrbuch nur zum Vergnügen lesen konnte. (Hinweis: Dies funktioniert nur, wenn Sie das Lehrbuch tatsächlich gelesen haben .) In Bezug auf die Differentialgeometrie wusste ich jedoch, dass ich eigentlich nie gezwungen sein würde, mich mit Christoffel-Symbolen und dergleichen zu befassen, wenn ich nicht eine Waffe in Form eines wöchentlichen Quiz am Kopf hätte.

Sie sollten lernen, Ihre eigenen Neigungen und Abneigungen zu erkennen und diese umzuleiten.


1

Auf jeden Fall reine Mathematik. Insbesondere diskrete Mathematik und mathematische Logik.

Die mathematische Fakultät der Universität von Illinois hat ein interessantes MS-Programm namens Angewandte Mathematik (Theory of Computation). Es ist ein gemeinsames Programm zwischen der mathematischen Abteilung und der CS-Abteilung. So etwas möchten Sie vielleicht, aber es ist ein Abschlussprogramm.


Als Hauptfach Angewandte Mathematik (zumindest an der Universität, die ich besuchen werde) muss ich Diskrete Mathematik belegen. Mir ist aufgefallen, dass es viele Kurse gibt, die sowohl als reine als auch als angewandte Kurse aufgeführt sind.
Joose

Diskrete Mathematik ist wichtig!
Morgan Herlocker

1

Ich habe einen sehr guten Abschluss in Software Engineering mit einem Abschluss in Computational Math gemacht. Ich hatte Glück, meine Schule hatte ein spezielles Programm dafür und es war eine Mischung aus CS und Mathematik mit einem Schwerpunkt auf Mathematik, die CS (Diskrete, Abstrakte Algebra, Graphentheorie und Netzwerke) und Mathematik, die etwas Computerhilfe erfordert (numerisch), unterstützte Analyse, lineare Algebra).

Ich denke, das ist "reine" Mathematik, aber ich habe es nie so gesehen - es war so auf Computer ausgerichtet, dass rechnerische Mathematik eine wirklich gute Beschreibung war.


1

Wenn Sie an eine Finanzkarriere denken: Statistik, Analyse, PDEs, Monte-Carlo-Simulationen (und verschiedene "Mathematiken der (Pseudo-) Zufälligkeit"), Algebra.


Ich habe nicht die Absicht, in der Finanzbranche zu arbeiten. :)
Joose

Gut für dich :)
quant_dev

++ Diese sind viel mehr wert als nur finanziell.
Mike Dunlavey

1

Ich denke, es hängt davon ab, was Sie tun möchten. Ich habe mich schon immer mit dem Rechnen befasst, wie es in den Naturwissenschaften und im Ingenieurwesen der Fall ist. Deshalb macht angewandte Mathematik den größten Teil der Fähigkeiten aus. Eine Menge comp sci, scheint mir eher reine Mathematik zu sein, die Sorge, ob ein Algorithmus existiert, der NP-vollständig ist und all das Zeug, hat mich nie als sehr interessant oder praktisch empfunden. Aber funktionale Approximation, PDEs, lineare Algebra usw. waren immer ziemlich grundlegend. Aber wenn Sie eine Karriere im allgemeinen Programmieren planen, wird dieses Zeug vermutlich nicht viel für Sie tun, es sei denn, Sie sind entwicklungsorientiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.