Ich programmiere seit 8 Jahren professionell und seit meinem 12. Lebensjahr als Hobby.
Mathe ist nicht notwendig, Logik ist. Mathe ist schrecklich hilfreich. Zu sagen, dass es nicht notwendig ist, ist wie zu sagen, dass man ein Messer benutzen kann, um einen Mann zu töten. Nun, es ist wahr, aber diese Waffe macht es viel einfacher.
Es gibt ein paar Mindestanforderungen, die Sie bereits erfüllen sollten. Sie müssen grundlegende algebraische Ausdrücke und Notationen sowie die gängigen Computeräquivalente kennen. Zum Beispiel müssen Sie wissen, was ein Exponential ist (3 bis 3 ist 27), und der allgemeine Computerausdruck ist 3 ^ 3. Die gebräuchlichen Notationen für Algebra ändern sich zwar zwischen den Sprachen, aber viele von ihnen verwenden eine etwas einheitliche Methodik. Andere (sehen dich LISP an) tun es nicht. Sie müssen auch die Reihenfolge der Operationen kennen.
Sie müssen algorithmisches Denken verstehen. Erst dies, dann dies erzeugt dies, was in dieser Berechnung verwendet wird. Wahrscheinlich verstehen Sie das oder nicht, und es ist eine ziemlich schwierige Hürde, zu springen, wenn Sie es nicht verstehen. Ich habe festgestellt, dass dies etwas ist, das man "bekommt" und nicht wirklich etwas, das man lernen kann. Umgekehrt bekommen manche Leute keine Kunst. Sie sollten keine Maler werden. Es gab auch Studenten im CS-Lehrplan, die nicht herausfinden konnten, warum dies nicht funktioniert: x = z + w; z = 3; y = 5; Es ist nicht so, dass sie Addition nicht verstehen, es ist so, dass sie das Erfordernis eines eindeutigen Ausdrucks nicht verstehen. Wenn sie es verstehen, sollte der Computer auch, oder? Wenn Sie nicht sehen können, was mit den obigen drei Zeilen nicht stimmt, werden Sie kein Programmierer.
Zuletzt müssen Sie wissen, welche Mathematik in Ihrem Programmierbereich liegt. Buchhaltungssoftware könnte bei der grundlegenden Algebra aufhören. Wenn Sie Physik programmieren, müssen Sie Physik (lose) und Mathematik in dreidimensionaler Geometrie (euklidisch) kennen. Wenn Sie Architektur-Software programmieren, müssen Sie die Trigonometrie kennen.
Dies geht jedoch weiter als Mathe; Für welche Domäne Sie auch programmieren, Sie müssen die Grundlagen genau verstehen. Wenn Sie eine Programmiersprachenanalyse-Software programmieren, müssen Sie Wahrscheinlichkeit, Statistik, Grammatiktheorie (mehrere Sprachen) usw. kennen.
Oft benötigen bestimmte Domänen Wissen, von dem Sie glauben, dass es nichts damit zu tun hat, oder können davon profitieren. Wenn Sie beispielsweise Audiosoftware programmieren, müssen Sie die Trigonometrie kennen, um mit Wellenformen umgehen zu können.
Die Größe verändert auch die Dinge. Wenn Sie einen Finanzdatensatz mit 1000 Elementen sortieren, ist dies keine große Sache. Wenn es jedoch 10 Millionen Datensätze wären, würden Sie stark davon profitieren, die Vektormathematik tatsächlich zu kennen und ein tiefes Verständnis für das Sortieren auf Binärebene zu haben (wie sortiert ein System alphabetisch? Woher weiß es, dass 'a' kleiner als 'b' ist? '?)
Sie werden feststellen, dass Ihre allgemeine Wissensbasis als Programmierer explodieren wird, da jedes Projekt mehr Lernen außerhalb des direkten Bereichs der Programmierung erfordert. Wenn Sie zimperlich oder faul im Selbstlernen sind und die Idee, mehr als 10 Stunden pro Woche im Wesentlichen „Hausaufgaben“ zu machen, nicht mögen, werden Sie kein Programmierer.
Wenn Sie Gedankenübungen mögen, wenn Sie gerne lernen, wenn Sie über abstrakte Dinge wie Mathematik ohne Taschenrechner oder Design ohne Skizzenblock nachdenken können, wenn Sie einen breiten Geschmack im Leben und in Ihren Hobbys haben, wenn Sie selbstkritisch sind und wegwerfen können. ' Bevorzugte Ideen, wenn Sie Dinge perfektionieren möchten, dann werden Sie Programmierer. Begründen Sie diese Entscheidung nicht mit Mathematik, sondern mit der Fähigkeit, logisch zu denken und zu lernen. Das ist wichtig; Mathe ist nur das Nebenprodukt.