Programmieren =/= Mathematik

Dieser Beitrag wurde unter A programmer's life abgelegt am von .

„Als Programmierer muss man sicher gut in Mathe sein und dauernd Kopfrechnungen machen!“ -> stimmt nicht ganz! Auch an diesem Punkt bestehen Klischees zu meinem Beruf, bei welchen ich gerne etwas aufräumen will:

Logisch, für ungeübte Personen sieht so ein Programmcode natürlich aus, als wären es sehr viele mathematische Berechnungen. Und viele Personen werden sich bei einem Programmcode wahrscheinlich auch ein solches Bild machen: [10011010 110100100 10110101 00011011 011100011]. Ein richtiger Programmcode sieht aber ganz anders aus.

Man muss sich das so vorstellen: Ein Computer kann zwar grundsätzlich wirklich nur mathematische Berechnungen durchführen, beispielsweise Zahlen addieren, subtrahieren etc. (man spricht ja auch von einem Rechner). Irgendwann hat sich dann jedoch jemand an die Arbeit gemacht, diese Berechnungen zu erweitern. Es ist ein Speicher hinzugekommen, in dem Berechnungen abgespeichert werden können, jemand brachte dem PC bei, wie er Dinge auf einem Bildschirm anzeigt, wie er Mausklicks richtig verarbeitet, wie der PC mit anderen PCs kommuniziert, wie er Tastaturbefehle richtig liest… Und man kam auf die Idee, diese Dinge, die bis anhin nur in sehr komplizierten Berechnungen lesbar waren, für den Menschen lesbarer zu machen. Die erste Programmiersprache war geboren.

Aber was ist denn nun eine Programmiersprache?

Grundsätzlich werden in einer Programmiersprache verschiedene Befehle geführt, welche dann in diese komplizierte „Computersprache“ übersetzt werden. Beispielsweise gibt es einen Befehl, mit dem der Computer etwas am Bildschirm anzeigen soll. Er nennt sich „print()“. Wenn man diesen Befehl ausführt, werden im Hintergrund sehr viele verschiedene Berechnungen ausgeführt (-> 1001011 11011110 1010001 11001011). Diese Berechnungen im Hintergrund interessieren den Programmierer jedoch gar nicht, er muss nur wissen, dass es den Befehl „print()“ gibt und dass er damit Dinge ausgeben kann.

Das Programmieren an sich ist so gesehen eigentlich nur ein Zusammenhängen von mehreren Befehlen, die man dem PC gibt.

Zusätzlich zu diesen einfachen Befehlen kommt aber auch etwas Logik. Man kann einem PC sagen: „Tu dies, wenn eine Taste auf der Tastatur gedrückt wird“. Oder man kann ihm sagen, dass er etwas wiederholen soll, bis etwas passiert.

Durch diese Logik wird das Ganze natürlich um einiges komplizierter. Man muss überlegen, wie lange ein Computer etwas tun soll, welchen Befehl man genau verwendet, um eine Wiederholung auszudrücken etc.

Jedoch hat auch dies nichts mit der Mathematik an sich zu tun. Zwar ist im Code viel Logik enthalten – aber wir haben dennoch nirgends eine Zahl, die wir addieren oder subtrahieren.

Ich würde das Programmieren eher als ein Lehren bezeichnen. Man lehrt den Computer, dass er dies oder das tun sollte. Ich vergleiche dies einmal damit, wie ich unserem Familienhund Kunststückchen beibringe:

Ich muss dem Hund genau sagen, was er tun soll. Beispielsweise, dass er sich auf den Boden legen soll, jedoch nur, wenn ich meine Hand auf den Boden lege. Oder dass er zu mir kommen soll, wenn ich nach ihm rufe.

Beim PC ist dies einfach viel komplizierter, da man dem PC viel mehr Dinge beibringen muss. Ausserdem gibt man dem PC auch kein Leckerli, wenn er ein Programm richtig ausgeführt hat (dieses gibt man eher dem Programmierer, in Form von Lohnauszahlungen). 😉

Eine Ausnahme besteht bei komplizierteren Programmen. Beispielsweise werden in der Entwicklung von KIs (künstlichen Intelligenzen) sehr häufig mathematische Algorithmen verwendet, also wiederkehrende Verhaltensmuster, die wiederum extrem mathematisch sind. Oder man verwendet Suchalgorithmen, um bestimmte Dinge viel einfacher zu finden.

Aber diese Dinge sind eher teil eines Fachgebiets in der Programmierung. Häufig werden solche Stellen von Mathematikstudenten besetzt. Als „regulärer“ Programmierer kommt man nicht zwingend mit diesen Algorithmen in Kontakt.

Ich hoffe, ich konnte hiermit erneut ein Klischee aus der Welt schaffen, und euch aufzeigen, dass man auch mit schlechten Mathe-Noten Programmierer werden kann. :)

Interview mit Frederik: Muss man ein Mathegenie sein, um informatik zu studieren?

9 Gedanken zu „Programmieren =/= Mathematik

  1. Regina

    Toller Artikel!! Ich war eigentlich auch nie besonders gut in Mathe und habe jetzt auch Spaß am Programmieren. Mit persönlich gefällt auch der Vergleich mit zwischen Computer und Hund ziemlich gut.

  2. liliho

    Hallo, interessante Webseiten!!
    Ich bin schon eine „alte Tante“ und habe in der IT-Steinzeit das Programmieren gelernt, als es noch Lochkarten gab.
    Bis heute bin ich ein grosser Programmier-Fan.
    Das ist doch klar ein sehr intelligentes Spiel, wo für Probleme Lösungen gefunden werden sollen.
    Etwa so wie ein Sudoku lösen, nur etwas umfangreicher natürlich.
    Mit Mathematik hat das eher wenig zu tun. Aber es macht einfach Spass!

  3. Urs

    Artikel ist schlecht geschrieben – würde gerne miserabel hinschreiben aber dann würde dieser Kommentar wahrscheinlich nicht veröffentlicht. Grundaussage ist aber korrekt;

    Programmieren hat nichts aber überhaupt nichts mit Mathematik zu tun. Denn rechnen tut der Computer selber. Um beim Programmieren gut zu sein, muss man sprachliche Fähigkeiten haben. Es ist beim Programmieren ganz einfach so, dass man sich GANZ GENAU an die Grammatik der Sprache halten muss. Wer die Grammatik einer Sprache genau einhalten kann, wird ein guter Programmierer oder eine gute Programmiererin sein.

    1. Raphael

      Der Kommentar wäre auch veröffentlicht worden wenn du „miserabel“ geschrieben hättest, da ich gegen eine Zensur von Meinungsaussagen bin und auch schlechte Kritik konstruktiv aufnehme und umzusetzen versuche. Was ist denn deiner Meinung nach so schlecht an diesem Artikel?

    2. Mirko Stocker

      Ich muss dir widersprechen, lieber Urs. Ich glaube das Problem ist, dass der Begriff Mathematik oft viel zu eng gefasst wird. Mathematik ist nicht nur Arithmetik („rechnen“), Logik und Abstraktion sind sehr wichtig als Programmierer, und genau damit befasst sich die Mathematik. Der Artikel ist also schon in Ordnung, nur dass man nicht von Mathematik sprechen sollte.

  4. Hansi

    Der Kommentar ist leider deshalb schlecht, weil er bereits Fehler in den einfachsten Begriffen enthält.
    Es müsste z.B. Algorithmen statt Algorhytmen heißen. Der Fehler findet sich mehrmals im Artikel, woraus sich folgern
    lässt, das dieser Grundbrgriff dem Autor scheinbar völlig unbekannt ist. In Anbetracht dessen enthält der Artikel einen
    Satz, in dem der Fehler nicht begangen wurde. Dieser Satz ist auch sonst nicht im Stil des Verfassers geschrieben und
    passt schlecht in den Kontext des Artikels (gemeint ist hier die Erwähnung der KI). Offensichtlich wurde hier zusammen kopiert, ohne
    wirklich etwas von der angesprochenen Materie zu verstehen. Ich finde es schade, dass die Rolle der Mathematik in der Informatik leider volkommen falsch bewertet wird. Viele Programmierer betrachten die Mathematik als unnötiges Beiwerk, was sich schnell als großer Fehler erweisen kann. Jedes Programm, kann durch mathematische Methoden erheblich verbessert werden. Man beachte hier die Notwendigkeit von Typsystemen zur Typisierung von Programmcode. Gerade in der Praxis können häufig vorkommende Fehler so vermieden werden.

    1. Raphael

      Vielen Dank für das Erwähnen des Fehlers, interessant dass dies durch die mehrinstanzliche Blogeintragüberprüfung durchgesickert ist. Wie du bereits vermutet hast ist der Begriff nicht allzu tief in meinem Wortschatz verankert, weshalb ich ihn auch unterschiedlich geschrieben habe. Die Plagiatsvorwürfe finde ich etwas überheblich, da man (denke ich) in meinen Artikeln gut erkennen kann, dass sie sehr einheitlich, mit einem roten Faden geschrieben werden.
      Wobei ich zustimmen muss ist dass die angesprochene Materie nicht verstanden wird. Ich persönlich hatte noch nie das Glück, mit mathematischen Algorithmusberechnungen zu arbeiten. Vielleicht ist auch dies einer der Gründe, weshalb ich persönlich mathematische Methoden als ein unnötiges Beiwerk betrachte. Möglicherweise liegt das auch einfach an den von mir angewandten modernen Techniken. Ich kann mir gut vorstellen dass es bei veralterten Programmiersprachen, oder aber auch bei den von dir angesprochenen Sprachen mit Typisierung eine grosse Hilfe sein kann.
      Schlussendlich ist die Intention hinter dem Artikel jedoch nicht, zu erklären dass die Programmierung überhaupt nichts mit Mathe zu tun hat, sondern dass es keine Mathematik ist. Die Zielgruppe der Kampagne (und dadurch auch des Blogs) liegt nicht bei erfahrenen Programmierern, sondern bei Personen, die entweder noch nie etwas mit der Berufung zu tun hatten, sich jedoch dafür interessieren und bei jugendlichen die gerade auf der Suche nach einer Lehre sind.

  5. Informatiker

    Mich würde interessieren, was du mit „Programmierer“ meinst. Jemand der eine Ausbildung gemacht hat oder auch Informatik studiert hat ? Denn am Ende des Artikels sagst du, dass im Bereich künstlicher Intelligenz und bei komplexen Algorithmen und Programm hauptsächlich Mathematiker am Werk sind.
    Das kann ich so nicht bestätigen, weil ich in dem Bereich als wiss. Mitarbeiter an einer Hochschule tätig bin.
    Es gibt zwar den ein oder anderen Mathematiker, aber hauptsächlich sind Informatiker beschäftigt, die auch Informatik auch studiert haben.

    Interessanterweise sind relativ viele Physiker am Institut, so hat unser Institutsleiter ursprünglich Physik studiert und kam dann über die Neuroinformatik in den Bereich von maschinellem Lernen und K.I.

Kommentare sind geschlossen.