1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Ist (höhere) Mathematik wirklich SO wichtig fürs Programmieren?

Dieses Thema im Forum "Geplauder, Fun und Chillzone" wurde erstellt von SierraX, 21 Dezember 2016.

  1. Azazyel

    Azazyel Active Member

    Registriert seit:
    2 Juni 2005
    Beiträge:
    694
    Deiner Aussage kann ich nur zustimmen. Meist scheitert es eher am Handwerkszeug denn höherer Mathematik.

    Ich würde zusätzlich noch etwas diskrete Mathematik mitnehmen. Ein sehr überschaubarer und auch für Normalsterbliche verständlicher Bereich, der einen als Entwickler noch einmal ein großes Stück weiterbringt und gefühlt 99% aller geschriebenen Codezeilen verständlich macht (auch im Bereich funktionaler Programmierung). :)
     
  2. SierraX

    SierraX Active Member

    Registriert seit:
    18 Juli 2003
    Beiträge:
    2.347
    Ort:
    München
    Bin gerade auf den Wikipedia Link... o_0
    Nach dem ersten überfliegen... Ich bin wohl kein Normalsterblicher
     
  3. goblin

    goblin Dämonenbeschwörer

    Registriert seit:
    3 März 2010
    Beiträge:
    392
    Ort:
    Karlsruhe
    Um es mal mathematisch zu formulieren: ich halte ein mathematisches Verständnis ist eine hinreichende, aber keine notwendige Bedingung für gutes Programmieren. Einige der Gründe hat @pintman in meinen Augen schon ganz gut dargelegt. Für mich ist der essenzielle Punkt das Verständnis. Wenn ich das Problem nicht verstanden habe, dann kann ich es nicht optimal lösen. Unter anderem fallen die bereits genannten Laufzeit- und Speicherkomplexitäten darunter, etwas das in meiner bescheidenen Erfahrung nach gerade bei Enterprise-Java-Programmierern komplett ignoriert wird…
    Sehr viele Konzepte in Computern sind grundlegend mathematisch. Operationen auf Vektoren und Matrizen findet man in sehr vielen Teilbereichen. Taylorreihen allerdings sind mir nur im Bereich der wissenschaftlichen Simulationen begegnet. Und dort gab es programmierende Mathematiker, die sich darum gekümmert haben ;)
     
  4. Th0min4tor

    Th0min4tor OS-Wechselwähler

    Registriert seit:
    19 Januar 2005
    Beiträge:
    106
    Nein, so einfach ist es dann auch wieder nicht. Die Mathematiker können weder automatisch programmieren, wenn sie von der Uni kommen, noch schreiben sie generell besonders guten Code, wenn sie programmieren. Es stimmt schon, dass Mathematiker ein gewisses Abstraktionsvermögen aufweisen, dass ihnen den Einstieg auch in tiefergehende Programmierkonzepte enorm erleichtert. Aber auf der anderen Seite haben sie auch oft keine Lust, sich mit Design Patterns jeglicher Art zu beschäftigen. Viele sind heilfroh, dass ihr geliebtes Matlab nicht objektorientiert ist. Code-Dokumentation und -Strukturierung (in Paketen, Modulen, Bibliotheken usw.) ist dann oft ganz besonders arg. Trotz allem: Natürlich gibt es auch Mathematiker, die sehr guten Code schreiben.

    Übrigens gibt es auch Anwendungen für Taylorreihen außerhalb wissenschaftlicher Simulationen. Eigentlich bei jeder Art von Optimierungsproblem, dem ein kontinuierliches Modell zu Grunde liegt, etwa unzählige Probleme im Bereich Computer Vision bzw. Bildverarbeitung. Nichtlineare Operatoren werden da gerne durch Taylorentwicklungen approximiert und so weiter.
     
  5. Azazyel

    Azazyel Active Member

    Registriert seit:
    2 Juni 2005
    Beiträge:
    694
    Wikipedia ist auch eine Enzyklopädie und keine Lernplattform. :)

    Du kannst ja mal einen Blick riskieren: deutsch / englisch
     
    pintman gefällt das.
  6. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.779
    Auch ich habe nur einen "Hauptschulabschluß". Der war im übrigen zu meiner Zeit wesentlich mehr wert wie heutzutage. Und aus allen Mitschülern sind gestandende Menschen geworden, die Ihr Leben gut gemeistert haben. Im übrigen auch ohne höhere Mathematik. Ich beherrsche sie bis heute nicht, aber um mehrere Hoch- und Scriptsprachen zu lernen und auch praktisch anzuwenden, hat es jedenfalls gereicht. Ich denke, das das Verständnis für logische Vorgänge und der inneren Logik einer Programmiersprache ausreicht, um einen bestimmten Bereich abzudecken. Wer kein Schachspieler ist, sollte natürlich tunlichst kein Schachspiel programmieren. Die digitale Welt bildet ja für eine bestimmte Aufgabe und Zweck die Wirklichkeit ab. Also kommt es beim Programmieren nicht nur auf Mathematik an, sondern auch auf praktische Erfahrungen und Erkenntnisse. Wer zusätzlich über analytisches und strategisches Denken verfügt, der ist natürlich klar im Vorteil. Was mathematische Formeln und Funktionen angeht, so bringt sie ja jede Hochsprache in Bibliotheken mit, die dann zum Gebrauch nur entsprechend eingebunden werden müssen und benutzt werden können.
     
  7. SierraX

    SierraX Active Member

    Registriert seit:
    18 Juli 2003
    Beiträge:
    2.347
    Ort:
    München
    @ralli ... darf ich fragen wann deine Zeit war (nicht das sie es jetzt nicht mehr ist... aber du weisst schon was ich meine)
     
  8. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.779
    Aber gerne, ich bin Jahrgang 1950, also 66 Jahre alt. Ergo bin ich im wohlverdienten Ruhestand, also Rentner. Der Ruhestand steht natürlich nur auf dem Papier ..... ich schreibe viel, nicht nur in Foren und sitze immer noch ca. 8 Stunden am PC.;)
     
  9. CrimsonKing

    CrimsonKing Systemzerstörer

    Registriert seit:
    9 März 2012
    Beiträge:
    1.525
    Also eigentlich die gleiche Arbeit für weniger Geld?
     
  10. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.779
    Ähnliche Arbeit für kein Geld. Der Unterschied ist halt der zu meinem früheren Berufsleben, das ich mir die Zeit einteilen kann und auch nur noch Sachen mache, die mir Spaß machen und die ich gerne mache.
     
    CrimsonKing gefällt das.
  11. goblin

    goblin Dämonenbeschwörer

    Registriert seit:
    3 März 2010
    Beiträge:
    392
    Ort:
    Karlsruhe
    Das meinte ich doch genau damit: Man ist nicht automatisch ein guter Programmierer, nur weil man ein Mathe-Ass ist. Aber ohne mathematisches Verständnis sehe ich eben auch Schwierigkeiten. Die Hauptsache für mich ist, man sollte es mal gehört haben und sich im Zweifel einarbeiten können. Das geht halt am besten, wenn man es tatsächlich mal gelernt hat, auch wenn man es erstmal viele Jahre nicht mehr braucht. Ich finde schon, dass es auf den Lehrplan gehört, über die Tiefe kann man natürlich streiten und das handhabt ja auch jede Uni und jeder Professor unterschiedlich.

    Objektorientierung ist nicht das Maß der Dinge. Genausowenig wie rein funktionale Programmierung. Oder rein prozedurale… “There is no silver bullet”

    Im übrigen stellt Programmieren für mich eine interdisziplinare Tätigkeit dar: Es hat starke theoretische Anteile, wie bei einer Wissenschaft. Andererseits sind die von dir erwähnten Elemente „Handwerkszeug“. Unis und Hochschulen legen in meinen Augen zu viel Wert auf ersteres, die Ausbildung auf letzteres. Die Wahrheit liegt für mich letztendlich irgendwo dazwischen.
     
  12. SierraX

    SierraX Active Member

    Registriert seit:
    18 Juli 2003
    Beiträge:
    2.347
    Ort:
    München
    @ralli leider ist es nicht nur so das der Hauptschulabschluss heut zu tage an wert verloren hatte... schon in der 2ten hälfte der 80er (meine Zeit) war er bei weiten nicht soviel wert wie in den 60ern. Die Akademiker Blase hatte da meiner Meinung nach schon begonnen was dafür sorgt, dass das Handwerk zur Nische gestutzt ist und immer mehr auf die Gymies drängen die es von der Intelligenz her nicht verdient hätten.
     
  13. SierraX

    SierraX Active Member

    Registriert seit:
    18 Juli 2003
    Beiträge:
    2.347
    Ort:
    München
    Danke für die links...
    Man wird allerdings (zumindest bei der ersten Folge der deutschen Videoreihe) als Hauptschüler gleich mal abgeschreckt ...
    ... Aufleitung , Ableitung, Sinus, Cosinus, Integral sehe ich als gegeben an...
    Sinus, Cosinus hat man zwar wie auch Ableitung schon mal gehört, aber nie wirklich gelernt. Von einer Aufleitung und Integral ganz zu schweigen...
     
  14. zuglufttier

    zuglufttier Well-Known Member

    Registriert seit:
    2 November 2004
    Beiträge:
    1.653
    Ort:
    Ostfriesland
    Höhere Mathematik bedarf sicherlich einer Definition :D Für einige fängt es an, wenn man nicht mehr nur "rechnet", sondern auch Formeln und Buchstaben mit ins Spiel kommen, der andere denkt vielleicht an mathematische Beweise, die man selber führt.
     
  15. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.779
    Das stimmt absolut. Heute sind viele Hauptschulabgänger leider zukünftige Hartz IV Empfänger oder werden im Nidriglohnsektor beschäftigt. Das will ich nicht verallgemeinern, ich erinnere mich das es zu meiner Zeit nur ca. 2% Abiturienten gab. das dürfte sich heutzutage vervielfacht haben. Bei mir hätten die überdurchschnitlichen Noten durchaus auch fürs Gymnasium gereicht, was von den zuständigen Lehrern auch empfohlen wurde. Aber ich bekam halt vom Elternhaus nicht die notwendige Unterstützung. Aber trotzdem bin ich meinen Weg gegangen.
     
  16. goblin

    goblin Dämonenbeschwörer

    Registriert seit:
    3 März 2010
    Beiträge:
    392
    Ort:
    Karlsruhe
    Was aber noch keine höhere Mathematik (wie lineare Algebra etc. ist). Auf dem Gymnasium in Baden-Würrtemberg ist das Stoff der Mittelstufe. Das sagt bei unserem Bildungssystem leider nur gar nichts aus.
     
  17. Athaba

    Athaba Libellenliebhaber Mitarbeiter

    Registriert seit:
    10 März 2005
    Beiträge:
    3.311
    Ich mach's gern umgekehrt. Also ich lern' nicht irgendwie Mathe in der Hoffnung, dass ich brauchen kann, sondern hab ein Projekt und eigne mir dann das entsprechende Wissen dazu an.

    Da sehe ich Mathe nicht anders als andere Dinge. Wenn du sagst du willst ein Webservice bauen, dann schaust du dir auch an wie HTTP funktioniert, SQL wenn du was mit Datenbanken machst. Wenn du ein Jail-Management-Tool machst siehst du dir Jails wahrscheinlich auch viel detaillierter an, als viele User. Wenn du dann irgendwelche Visualisierung machst siehst du dir eben das Mathe dazu an. Ich hatte lange nicht viel mit Geometrie am Hut, habe zuletzt aber ein paar Projekte in die Richtung gemacht, deshalb das Mathe dazu gelernt.

    Das geht übrigens auch ins Extreme. Wenn du fünf Jahre an was sitzt, egal was es ist, wirst du sicherlich auch den Anteil an Mathe den du brauchst Inne haben. Schule oder Uni sehe ich eher als Weg dafür zu sorgen, dass man weiß wonach man suchen muss. Und wenn's wirklich so Basic ist, wie du's an der Uni machst (also die Dinge abseits von deiner Bachelor-/Master-Doktorarbeit), dann ist das häufig ohnehin nicht in dem Rahmen, den du dann brauchst.

    Und dann kommt's noch an was du machst. Kann ja sein, dass du Natural Language Processing machst und da ist es mitunter so, dass du Deutsch, Englisch, generell wie Sprachen funktionieren viel nötiger hast, als Mathe. Niemand sagt dir du brauchst Grammatik für's Programmieren.

    Es gibt allerdings viele Punkte wo du Mathe inhärent in fast allen Bereichen brauchst. Wenn du was schneller machen willst, einen Algorithmus optimieren willst brauchst du Mathe. Generell brauchst du (binäre) Logik, als Teil der Mathematik. Nur ist da ja ohnehin was was du dann täglich machst, genauso wie die restliche Mathematik, die du brauchst. Das heißt man lernt vieles teilweise recht unbewusst und vor allem wenn man wirklich in einem Projekt ist wo man das Problem gut versteht auch extrem schnell.

    Ich kenne einige Leute, die in der Schule oder auch an der Uni miese Mathematiker waren, aber dann als sie einfach vor ihrem Projekt standen, für das sie Passion haben genau die selbe Mathematik angewandt haben ohne es wirklich mitzubekommen.

    Zuguterletzt: Du brauchst allem voran das was du mit sechs oder sieben gelernt an Mathe und womöglich Teile, die du an der Uni gelernt hast (meist vollkommen anders, als alles was davor kam). Beides kannst und wirst du dir aber auch im Zuge des Programmierens aneignen, wenn du ein Problem wirklich lösen willst. Und ja, davon gehört zu haben ist wie mit allem gut. Ist dann ungefähr, wie wenn du weißt in welcher man page du nachsehen musst und so, aber auch wenn du was an der Uni oder in der Schule durchgenommen hast ist es so, dass die Chancen groß sind, dass, wenn das nicht gerade deine Masterarbeit war du das ohnehin auffrischen bzw. neu lernen musst, Gerade die Dinge, die man womöglich nur sehr theoretisch durchgenommen hat stellt man sich dann vollkommen anders vor.

    Kenne viele ITler, auch PhDs, die Mathe in der Schule gehasst haben und auch durchgefallen sind und jetzt was wirklich Mathe-intensives treiben. Oft haben die dann nur auf dem Teilgebiet wirklich viel Ahnung, aber das ist dann genau das Mathe, das du brauchst.

    Im Endeffekt halte ich so Sätze wie "Wie willst du ohne Mathematik programmieren?" kontraproduktiv. Ich weiß, oft sind sie gut und motivierend gemeint, aber sie können Panik verursachend sein und dann lernt es sich noch schlechter. Und es ist einfach Humbug zu denken, dass man jemanden ein Mathebuch in die Hand drückt, dann liest man das drei mal quer und kann das. Das funktioniert nicht um Rad fahren zu lernen, das funktioniert nicht um programmieren zu lernen und bei Mathe auch nicht.

    Das ist das schöne am Programmieren. Du kannst dir ein Problem suchen, dich reinbeißen bis du es löst und es mag mal länger und mal kürzer dauern aber für gewöhnlich hat man dann eine Lösung und auch wenn sie schlecht ist hat man meist so viel daran und am Rundherum gelernt, das das nächste Mal was viel besseres entsteht.

    Für alle, die nicht an der Uni waren: Meist fokussiert man sich da viel mehr drauf Probleme zu lösen, sich Dinge als X vorzustellen, etc. Das ist sehr anders, als das Mathe das man davor hatte. Was mitunter auch passiert ist die Sprache zu verstehen. Stellt euch vor, ihr redet mit jemanden über BSD und neben euch steht jemand ohne Ahnung von Computern. So kann es einem natürlich auch mit Mathe gehen. Das kann mitunter eines der größten Herausforderungen sein, das Basiswissen dafür aufzubauen, aber dann geht das schon.

    Kurzum: Wenn Mathe das Einzige ist, was einem vom Programmieren oder IT (auch als Admin brauchst du Mathe!) fern hält, dann macht man sicher eine prima Karriere!

    Und noch eines. Es ist witzig, aber es gibt doch einige Leute, die einfach nur Spiele machen wollten und dann irgendwann ihre eigene 3D-Game-Engine bauen, so ohne mathematischen oder IT Hintergrund. Das ist auch sowas, wo man extrem Mathematik brauchen kann (Grafik, Physik, ...), mehr als die meisten anderen Programmierer. Ich erzähle das, weil das klassische "Ich habe von Mathe und Programmieren eigentlich keine Ahnung"-Leute sind.
     
    SierraX und ralli gefällt das.
  18. ralli

    ralli Well-Known Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    1.779
    Sehr gut @Athaba, genau so habe ich es auch gemacht. Deshalb habe ich dem nichts hinzuzufügen.
     
  19. SierraX

    SierraX Active Member

    Registriert seit:
    18 Juli 2003
    Beiträge:
    2.347
    Ort:
    München
    @goblin deshalb steht höhere auch in Klammern...
    Es stand in diesem Threat schon mal, das man Mathematik auch als eine Art Sprache sehen kann. Ich fand die Aussage sehr interessant und wann man es jetzt auf Programmiersprachen umlegt sind Hoch bzw höhere Sprachen ja diejenigen, die eine bestimmte oder unbestimmte Entfernung zu einer Basis haben.
    Bezugnehmend auf meiner Aussage das wir "nicht weit über Grundrechenarten und 3 Satz hinaus gekommen" sind wäre das was ich hatte, ein Basis wissen (wohlgemerkt, das was rein von der Schule kam. Statistik und ein paar andere Sachen hab ich mir angeeignet weil es für meinen momentanen Job hilfreich ist um die Hintergründe zu verstehen. Vor 3 Jahren hatte ich z.B. noch keine Ahnung was ein "Median" sein soll. "Modulo", was hier auch schon mal gefallen ist, kenne ich erst seit 10 Jahren und erst einige Jahre drauf, mit dem Basteln an und mit Arduinos die teilweise kein float kennen, hab ich das auch häufiger mal im Einsatz). Da bin ich beim @zuglufttier es bedarf einer Definition... dachte aber das hätte ich mit dieser Basis aussage im Opener gegeben.
    Von einer vorhandenen Basis nach oben geschaut ist eigentlich das meiste "höher"... ich meine aber eher das was in den früheren (also meine Schulzeit bis 1987) und ich glaube auch aktuell eher den Gymnasiasten an mathematischen Grundlagen schulisch vorbehalten war/ist.
     
  20. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Wer meint er braucht zum Programmieren kein Mathe, fasst einfach den Begriff zu eng. Die gesamte Algorithmik ist ein Zweig der Mathematik. Die Mengenlehre, Grammatiken alles was man so in der theoretischen Informatik macht. Die O-Notation wurde schon im 18. Jahrhundert von Mathematikern verwendet.

    Was man nicht so viel braucht ist analytische Mathematik. Die meisten realen Probleme da draußen sind analytisch nicht lösbar und erfordern einen numerischen Ansatz. Das kommt in der Mathematik in der Schule leider viel zu kurz. Auch in der Physik. All die Rechenprobleme die man da vorgesetzt bekommt sind selektiert um analytisch lösbar zu sein, was doch die Wahrnehmung verzerrt.

    Natürlich gibt es viele Dinge die in O(n) oder O(1) gemacht werden und entsprechend wenig komplex sind.

    Aber für alle interessanten Problemstellungen braucht man Mathematik.
     
  21. kith

    kith unfuck me! Mitarbeiter

    Registriert seit:
    3 Dezember 2002
    Beiträge:
    1.371
    Ort:
    Deutschland

    +1

    Meine Erfahrung ist, dass Mathe von Mathematikern erledigt wird und die fertige Formeln an Entwickler übergeben, die es dann in Algorithmen giessen. Was Entwickler machen hat mMn. mehr mit logischem Denkvermögen und ein paar Mathebasics zu tun, was nicht zwingend das gleiche wie hardcore Mathe ist.
     
  22. CrimsonKing

    CrimsonKing Systemzerstörer

    Registriert seit:
    9 März 2012
    Beiträge:
    1.525
    Verwechsle bitte nicht Programmieren mit Informatik. Den Fehler machen viele. Als Informatiker brauchst du exakt 0 Programmierkenntnisse.
     
  23. Kamikaze

    Kamikaze Bottom Poster Mitarbeiter

    Registriert seit:
    26 Mai 2005
    Beiträge:
    10.861
    Ort:
    /Earth/Europe/Germany/Karlsruhe
    Und um zu programmieren, brauchst Du keine Informatikkenntnisse?
     
  24. CrimsonKing

    CrimsonKing Systemzerstörer

    Registriert seit:
    9 März 2012
    Beiträge:
    1.525
    Korrekt. Die (z.B.) Inder, die billig Dinge runterprogrammieren, müssen weder von Algorithmik noch von Automatentheorie besonders viel Ahnung haben - das unterscheidet eben Entwickler von Programmierern.
     
  25. rubricanis

    rubricanis Homo ludens

    Registriert seit:
    22 August 2011
    Beiträge:
    687
    Ort:
    Ottendorf, Niederösterreich
    Ihr amüsiert mich! :) Da führt man eine neue Unterscheidung ein wie die zwischen Programmieren und Entwickeln und schon streite man sich um des Kaisers Bart. :rolleyes:

    Also: Programmieren ist die Anfertigung von Daten verarbeitenden Maschinen. Dazu braucht man keine Theorie, nur einiges an Wissen und Erfahrung. Und wenn sich jemand hinsetzt und eine solche Maschinerie neu entwickelt, dann ist er eben ein Entwickler. Ob die Idee und ihre Ausfertigung dann gut ist, ist eine ganz andere Frage. Vermutlich werden da Informatik oder vertiefte Mathematik hilfreich sein, aber doch keine Bedingung.

    Informatik ist eine rein abstrakte Theorie, vergleichbar der Mathematik und mit ihr auch eng verbunden. Das sind m.W. neben Teilbereichen der Theologie und der Philosophie die einzigen rein abstrakten Disziplinen. Solche Theorien bauen auf bestimmten Kalkülen und Axiomen auf und brauchen keinerlei praktischen Anwendungsbereich, - sie sind sich selbst genug.

    Sowohl praktische Erfahrungen wie Programmieren als auch die Vertiefung in abstrakte Theorien führen zu einem Bildungsprozess der uns selbst und unser Denken verändert. Man tickt eben in der Birne ganz anders, sieht andere Dinge, auch andere Möglichkeiten und Probleme. Diese Unterschiede werden meist/oft überhaupt nicht wahrgenommen und das eigene Tick-Tack als der Weisheit letzter oder vorletzter Schluss verstanden. Und die jeweils anderen sind immer die Dummen...

    Das alles sollte man allerdings von beruflichen Bildung unterscheiden denn da sind eine Menge an Gesichtspunkten zu berücksichtigen die nicht mit ein paar Worten abzutun sind. Und da jede Tätigkeit die von individuellen Personen ist, ist die individuelle Bildung (und zwar nicht nur die der Birne!) für jede berufliche Tätigkeit ebenfalls von Bedeutung. Sicherlich ist es von Vorzug da recht breit aufgestellt zu sein und kein Fachidiot, welcher Art auch immer, zu sein.
     
    SierraX gefällt das.