Programmierung ist ein Thema welches bei vielen gleichermaßen auf Faszination wie auf Verständnislosigkeit trifft. Das mag einerseits an der Materie selber liegen, andererseits aber auch an der Geschichte und Entwicklung von Computern und eben Programmiersprachen. Viele haben versucht das Thema von verschiedenen Perspektiven zu erschließen und was für den einen klappt, funktioniert vielleicht nicht bei dem anderen. Jeder von uns tickt anders und das ist auch gut so. Was in meinen Augen jedoch immer von Vorteil ist, sind Grundlagen der Programmierung im Allgemeinen. Gerade heutzutage arbeiten viele mit unheimlich großen Frameworks, die einem viel Arbeit entnehmen, aber auch so stark von der eigentlichen grundlegenden Programmierung abstrahieren, dass man das Verständnis für die einfachsten Dinge nicht aufbaut oder gar nicht erst versucht zu erschließen. Das hat allerdings den Nachteil, dass einem relativ schnell klar wird, dass an und für sich einfache Fehlermeldungen oder Bugs zu einem tagelangen Marathon werden können bei dem man irgendwann keinen Ausweg mehr sieht und schließlich aufgibt oder so lange probiert bis es irgendwann doch funktioniert, man am Ende aber nicht schlauer ist und nicht aus den eigenen Fehlern gelernt hat.
Worauch ich mit diesem Prolog hinaus möchte, ist die Einsicht, dass man durch das Verstehen von hardwarenäheren Programmiersprachen einen viel besseren Eindruck bekommen kann, wieso der Computer so tickt, wie er tickt, wieso bestimmte Fehlermeldungen kryptisch erscheinen und wie Software mit Hardware zusammen spielt. Uli Kusterer bietet mit Masters of the Void zum Beispiel einen sehr ins Detail ausgearbeiteten Einstieg in die Programmiersprache C, die nicht nur Voraussetzung für Objective C, aber auch für objektorientierte Programmiersprachen, wie C++ oder Java ist. Versteht man erst einmal wie die Innereien ticken und der Computer mit bestimmten Sachverhalten umgeht, hat man auch einen viel einfacheren Alltag als Programmierer.