Endlich lerne ich Programmieren – und ich habe nicht mit einem Programmierkurs angefangen
Der Drang, etwas Neues zu lernen, ist ein großartiges Gefühl, und wenn Sie mit dem Gedanken spielen, das Programmieren zu lernen, sollten Sie sich herzlich dazu ermutigen. Aber wenn es ums Lernen geht, kann der Einstieg eine echte Herausforderung sein, und das weiß ich aus Erfahrung. Manche Leute springen direkt ein und fangen einfach an, Dinge zusammenzuhacken, bis es funktioniert, aber das bin nicht ich.
Das Öffnen von VS Code schien einfach beängstigend – und darüber hinaus sinnlos. Sicher, ich könnte den Computer wahrscheinlich dazu bringen, „Hallo Welt“ zu drucken, indem ich etwas kopiere, das ich auf Reddit gesehen habe, aber was genau nützt es, wenn ich nicht die geringste Ahnung habe, warum es funktioniert oder wie es passiert ist? Programmieren ist für einen Nicht-Technikfreak wie mich ein so fremdes Thema, und es fühlte sich einfach verrückt an, sich darauf einzulassen, ohne etwas darüber zu wissen, wie es oder Computer funktionieren.
Nach einigem Trübsal und Zögern beschloss ich, die Dinge aus einer anderen Richtung anzugehen.
Der unterhaltsame Weg ist der beste
Ich lerne sehr gerne und da es in meinen Augen eher ein Hobby ist, ist es für mich selbstverständlich, das zu tun, was mir am meisten Spaß macht. Es kommt jedoch durchaus vor, dass Menschen den umgekehrten Weg einschlagen und nur das tun wollen, was am effizientesten ist. In jeder Lerngemeinschaft, die ich besuche, sehe ich ständig diese Anfängerfragen zum Thema „Wie lernt man am besten?“.
Meiner Meinung nach ist der unterhaltsame Weg immer der beste. Derjenige, dem es gelingt, etwas Neues zu lernen, ist nie derjenige, der „richtig lernt“, sondern nur derjenige, der weitermacht. Selbst wenn Sie in der Anfangsphase etwas Wichtiges verpassen, werden Sie, solange Sie weitermachen, einen Punkt erreichen, an dem Sie diese Lücke schließen müssen, um voranzukommen. Also füllen Sie es aus und machen weiter – und am Ende spielt das Wie und Wann keine Rolle.
Als ich zum ersten Mal darüber nachdachte, das Programmieren zu lernen, war ich mir eher sicher, dass ich es nicht tun wollte, als dass ich es tatsächlich tun wollte. Ich wusste, dass ich nicht anfangen wollte, Programme zu schreiben, als ich keine Ahnung hatte, warum diese Programme funktionieren. Ich wusste, dass mich das Mysterium nur nerven und ablenken würde, und ich glaubte auch, dass ein bisschen Verständnis für Computer später auch mein Programmierverständnis verbessern würde.
Also fand ich ein Buch mit dem Titel „Code: The Hidden Language of Computer Hardware and Software“ von Charles Petzold . Es gab gute Kritiken sowohl von Studenten als auch von erfahrenen Programmierern, und es schien, als würde es ganz am Anfang beginnen, was mir gefiel. Aber als ich mir die Themen ansah, die in den verschiedenen Kapiteln behandelt wurden (Binärcodes, Logik mit Schaltern, Bytes und Hexadezimalzahlen, Addieren mit Logikgattern, Registern und Bussen, CPU-Steuersignale usw.), fühlte ich mich immer noch ein wenig überfordert. Ich wusste, dass ich es lesen wollte, aber ich hatte trotzdem das Gefühl, dass ich etwas weiter in meiner Komfortzone anfangen musste.
Glücklicherweise gibt es ein Fach, das genau in meiner Komfortzone liegt und auf nahezu jedes Thema angewendet werden kann: Geschichte. Ich habe es in der Schule genossen, ich habe es an der Universität studiert und ich liebe ein gutes Geschichtsbuch oder ein historisches Drama. Es gibt auch einige ziemlich bekannte Persönlichkeiten in der Geschichte der Computer, die ich bereits kannte – Namen wie Charles Babbage, Ada Lovelace , George Boole und Alan Turing. Also beschloss ich, das Code-Buch beiseite zu legen und mich in die Welt der Informatik zu begeben, indem ich etwas über ihre Anfänge las.
Der Universalcomputer: Der Weg von Leibniz zu Turing

Dieses Buch stammt von Martin Davis und ist als E-Book über Amazon erhältlich. Wenn Sie sich für Geschichte interessieren, empfehle ich dringend, es zu lesen, aber es ist auch sinnvoll, es zu lesen, selbst wenn Sie kein großer Geschichtsinteressierter sind. Wenn Sie mit dieser ganzen Programmiersache nicht anfangen können, ist die Anschaffung eines Buches zu diesem Thema eine gute Möglichkeit, technisch mit dem Lernen zu beginnen, ohne wirklich das Gefühl zu haben, dass Sie lernen.
Das Buch wird stellenweise ziemlich mathematisch, da es sich stark auf die Mathematiker konzentriert, deren Arbeit schließlich wesentlich zur Erfindung der Computer beitrug. Ich bin überhaupt kein Mathe-Fan, ich kann eigentlich ziemlich schlecht mit Zahlen umgehen, aber Mathe ist eines dieser Themen, bei denen es an sich schon nützlich ist, zu verstehen, wie wenig man versteht.
Gehen wir hier eine Tangente ein. Ich denke, Mathematik stellt für Menschen eine ziemliche Hürde dar, wenn sie über Computer und Programmierung nachdenken. Es kann sich auf jeden Fall wie ein Fachgebiet anfühlen, in das man sich nicht einmal die Mühe machen sollte, sich damit zu befassen, wenn man nicht gut in Mathe ist – und es gab wahrscheinlich eine Zeit, in der das zutraf (obwohl das schon eine ganze Weile her ist). So oder so ist es nicht mehr wahr.
Mathematik und Naturwissenschaften sind es, aus denen Computer gebaut werden – daran besteht kein Zweifel. Aber Programmieren ist anders. Wenn Sie Programme schreiben oder Software entwerfen, ist Mathematik eher eine Wahl als eine Notwendigkeit.
Der Grund dafür lässt sich auf ein Wort reduzieren, das Sie wahrscheinlich häufig hören werden, wenn Sie mit dem Studium beginnen: Abstraktion. Um Computer zu verstehen, geht es vor allem um den Umgang mit verschiedenen Abstraktionsebenen – was im Wesentlichen bedeutet, Dinge in Schubladen zu packen und sie zu vergessen. Das klingt wie ein Witz, ist aber wahr.
Beispielsweise beginnt jedes Programmierbuch oder jeder Informatikkurs wahrscheinlich damit, zu erklären, was Binärzahlen sind – die kleinen Einsen und Nullen aus der Matrix. Sie erfahren, was sie sind, warum sie existieren und wofür wir sie verwenden – und dann packen Sie all dieses Wissen in eine Kiste und schließen den Deckel. Denn wenn Sie mit der Codeeingabe beginnen, werden Sie nicht an Binärcode denken. Sie geben es nicht ein, Sie führen keine Binärberechnungen durch und Sie denken eigentlich nur in Bytes (Gruppen von 8 Binärziffern) und nicht in Bits (einer Binärziffer).
Die Arbeit mit Binärdateien ist eine hochspezialisierte Aufgabe, die die meisten Programmierer niemals erledigen werden – also schließen sie den Deckel der Binärbox und konzentrieren sich auf andere Dinge. Die Verwendung von Mathematik beim Programmieren ist ähnlich – Leute, die gut darin sind, kümmern sich für Sie um die Mathematik und packen sie in eine Box namens „Funktion“.
Sie können einen Blick in die Box werfen und sehen, was vor sich geht, wenn Sie möchten, aber das ist nicht nötig. Sie „rufen“ die Funktion einfach auf, wenn Sie sie verwenden möchten. Angenommen, Sie möchten herausfinden, wie viele Zeichen eine Textfolge enthält – es erfordert viel mehr Aufwand, einen Computer dazu zu bringen, dies herauszufinden, als wenn ein Mensch nur „1, 2, 3“ anschaut und zählt. Aber darüber müssen Sie nicht nachdenken – rufen Sie einfach die Funktion strlen()
(Stringlänge) auf und sie übernimmt die Zählung für Sie. So heißt die Funktion jedenfalls in C. In Python ist es len()
und in Java ist es length()
. Andere Sprache, andere Wörter.
Der Punkt ist, dass die Mathematik auf die eine oder andere Weise erledigt ist. Es ist in Funktionen und Bibliotheken versteckt, und wenn Sie den Verdacht haben, dass Sie zur Lösung Ihres Problems etwas Mathematik benötigen, ist es üblich, die Informationen online zu finden.
Wenn Sie Zahlen wirklich, wirklich hassen, können Sie auch einfach bei der High-Level-Programmierung bleiben. Je höher das Niveau, desto weiter ist man von den Einsen und Nullen entfernt und desto weniger muss man über Mathematik nachdenken. All dies bedeutet: Lassen Sie sich nicht von Mathematik vom Programmieren abschrecken. Sie können es beim Programmieren genauso vermeiden, wie Sie es im Leben vermeiden können!
Jedenfalls habe ich dieses Buch über die Geschichte der Computer gelesen. Ich erfuhr alles über diese Mathematiker und was sie erreichten – natürlich ohne etwas von der eigentlichen Mathematik zu verstehen – und hatte viel Spaß.
Code: Die verborgene Sprache der Computerhardware und -software

Als nächstes musste ich mich etwas mehr mit der Sache befassen – was bedeutete, das Buch über die Funktionsweise von Computern zu lesen. Wie ich bereits sagte, fühlte sich dieses Buch zunächst etwas beängstigend an. Es ist groß und detailliert – und ich werde nicht so tun, als hätte ich jedes Wort verstanden, das ich lese. Aber wir kommen nicht weiter, wenn wir zulassen, dass „gut“ der Feind von „perfekt“ ist. 80 % eines Buches zu verstehen ist viel besser, als 0 % zu verstehen, weil Sie sich entschieden haben, es nicht zu lesen.
Außerdem war es am Ende gar nicht so schlimm. Es ist freundlich, gesprächig und humorvoll geschrieben, was wirklich dazu beiträgt, dass sich die komplizierten Teile leichter durchkommen lassen. Es gibt auch eine Website mit interaktiven Diagrammen und funktionierenden Versionen der „Minicomputer“, die er im gesamten Buch herstellt. Und was am wichtigsten ist: Es beginnt nicht mit den komplizierten Dingen.
Es beginnt noch nicht einmal mit Computern – die ersten Kapitel behandeln einige ziemlich zufällige Themen wie Morsecode und Blindenschrift. Zumindest fühlen sie sich für eine Weile zufällig an, bis Sie tiefer einsteigen und feststellen, dass Herr Autor Ihnen heimlich die Konzepte eingeflößt hat, die Sie später im Buch kennen müssen.
Es ist definitiv eine dieser „Vertrauen in den Prozess“-Erfahrungen – aber ich kann Ihnen versichern, dass es ein gut geschriebenes, gut strukturiertes Buch ist, und ganz gleich, wie schwierig Ihnen die schwierigen Teile vorkommen, Sie werden am Ende immer noch mehr über Computer wissen, als Sie jemals für möglich gehalten hätten.
Wenn Sie fertig sind, können Sie eine weitere Box hervorholen und alle Informationen hineinstopfen – denn wir müssen beim Programmieren nicht wirklich darüber nachdenken, „wie ein Computer funktioniert“. Da Sie diese Informationen nun jedoch irgendwo verstaut haben, können sie sich manchmal als nützlich erweisen. Bestimmte Programmierkonzepte werden für Sie natürlich sinnvoller sein, und wenn das Wissen für Ihre Arbeit relevant ist, können Sie es ganz einfach direkt nutzen.
Und das Beste daran? Wenn Sie mit Ihrem Programmierkurs beginnen und über Binärdateien sprechen, wissen Sie bereits, was Binärdateien sind. Der Kurs wird Ihnen auch viele neue Informationen vermitteln, aber wenn Sie den bestehenden Kontext im Kopf haben, werden sich die Dinge ein wenig vertrauter und überschaubarer anfühlen. Dies wird Ihnen helfen, sich auf die Programmierung zu konzentrieren, anstatt sich von jedem neuen Konzept ablenken zu lassen und sich zu fragen, ob Sie es verstehen müssen oder nicht.
Jedenfalls fühlte es sich für mich so an, und ich bin für das Programmieren so schlecht gebaut, wie nur irgend möglich. In der Schule war ich in Mathe schlecht, ich habe an der Universität Geschichte und Englische Literatur studiert, ich verdiene meinen Lebensunterhalt mit dem Schreiben, ich lerne Japanisch als Hobby und bis vor kurzem hatte ich noch nie einen Desktop-PC besessen – und trotzdem läuft es einigermaßen gut. Wenn ich es kann, dann kann es ehrlich gesagt jeder.