Ganz kurz und prägnant gesagt ist programmieren das Schreiben von Software-Programmen als Code, die ein Computer ausführen kann. Aber was heißt das jetzt alles? Was genau ist ein Computer überhaupt? Ein Software-Programm? Code?
Um diese Fragen zu beantworten, müssen wir ein wenig ausholen (versprochen – nur ein bisschen) und über Computer sprechen. Die Geschichte des Programmierens geht weit bis in die 1940er Jahre zurück. Zu dieser Zeit wurden die ersten Computer gebaut, die programmiert werden konnten. Wie man sich vorstellen kann, waren diese noch ein wenig größer als unsere heutigen Notebooks und Handys und füllten ganze Räume aus.
Die ersten Computer
Das revolutionäre an diesen Computern damals war, dass es extrem flexible Geräte waren. Diese waren nicht für nur einen bestimmten Zweck gebaut, sondern konnten viele Dinge erledigen. Vor dieser Zeit waren alle Maschinen sehr statisch und konnten meist nur eine einzige oder einige wenige Aufgaben erledigen.
Nehmen wir als Beispiel eine analoge Uhr. Eine solche Uhr ist so konstruiert, dass sie die Zeit anzeigen kann. Das Uhrwerk darin ist ein komplexes mechanisches System, welches genau für diesen Zweck entwickelt wurde. Wenn eine mechanische Uhr auch die Funktion einer Stoppuhr haben soll, benötigt sie einen anderen Aufbau des Uhrwerks. Es müsste demnach die gesamte Mechanik der Uhr verändert werden, wenn eine analoge Uhr auch die Aufgaben einer Stoppuhr erledigen sollte. Ein ziemlicher Aufwand also.
Durch die Erfindung von Computern wurde dieses System revolutioniert. Es war auf einmal möglich eine Maschine zu bauen, die verschiedene Zwecke erfüllen konnte. Und das, ohne die Mechanik oder das Gerät selbst verändern zu müssen!
Hardware und Software
Ab diesem Zeitpunkt begann die Trennung von Hardware und Software. Die Hardware ist der Computer selbst, das angreifbare Ding, die Mechanik, das „Unveränderbare“. Computer-Hardware steckt heutzutage in den klassischen PCs und Laptops aber genauso in deinem Handy, der Smartwatch, der Fernbedienung, dem Internetmodem, dem Taschenrechner und sogar in deinem Auto.
Die Software hingegen bestimmt, was das Gerät genau tun soll. Es sind Anweisungen die vom Computer ausgeführt werden. WhatsApp, Google-Suche, Firefox, Email, Youtube, Candycrush und und und… Das sind alles Computerprogramme und damit Software. Spätestens mit dem Aufkommen des Personal Computers, also des PCs ist Software allgegenwärtig und spielt mittlerweile eine sehr große Rolle in unserem alltäglichen Leben. Wir interagieren ständig mit Software. Egal ob wir am PC arbeiten, das Handy in die Hand nehmen, ins Auto einsteigen oder am Bankomaten Geld abheben, überall steckt Software dahinter.
Schauen wir uns das Ganze am Beispiel eines Handys an. Das Handy oder Smartphone ist die Hardware. Wenn es ausgeschaltet ist, kann es nicht wirklich verwendet werden. Außer vielleicht zu einem Smartphone-Weitwerf-Wettbewerb. Beim Einschalten jedoch beginnt die Software zu laufen. Diese sagt dem Gerät, was auf dem Bildschirm angezeigt werden soll und was es tun soll, wenn du über verschiedene Knöpfe oder dem Touchscreen mit ihm interagierst. Die große Stärke der Hardware ist ihre Geschwindigkeit. Während du diesen Text liest und am Smartphone hinunterscrollst, erhält die Hardware ständig Befehle von der Software. „Mach diesen Punkt am Display schwarz. Jetzt weiß. Jetzt rot!“ So entsteht die Schrift, die du gerade liest. Das alles passiert jedoch in Millisekunden, sodass wir überhaupt nichts von diesen Befehlen bemerken.
Dein Smartphone hat wenn du es kaufst bereits eine Basis-Software vorinstalliert. Das ist zum einen das Betriebssystem, also zum Beispiel Android oder iOS. Zum anderen sind bereits einige Apps wie ein Taschenrechner, E-Mail Programm, Kamera App usw. mit dabei. Jede zusätzliche App die du auf deinem Handy installierst, ist ein weiteres Software-Programm, welches dein Smartphone um neue Funktionen erweitert. All das ist möglich ohne dass die Hardware, also dein Handy selbst, umgebaut werden muss! Ein großer Fortschritt gegenüber der Analogen Uhr 👍
Software programmieren
Beim Programmieren geht es darum, Programme zu erstellen die der Computer versteht und ausführen kann. Apps, Spiele, Webseiten, Roboter-Steuerungen, E-Books, Autopiloten für Flugzeug und Auto sind alles Software, die wir durch Programmieren erstellen können!
Ein Programm wird in der Form von Text geschrieben. Dieser Text ist in einer speziellen Sprache verfasst, die ein Computer verstehen kann. Das ist die sogenannte Programmiersprache. Der Text selbst wird „Programmcode“ oder auch einfach nur „Code“ genannt. Vielleicht hast du schon mal von Java, PHP, Python, C, C# oder Javascript gehört. Das sind nur wenige von vielen verschiedenen Programmiersprachen, die es mittlerweile gibt.
Hier möchten wir dir ein Beispiel zeigen. Das Programm unten ist eine einzige Anweisung in der Programmiersprache Kotlin. Starte es oben rechts mit der grünen Pfeil Taste und schau, was passiert!
import kotlin.browser.window fun main() { //sampleStart window.alert("Hello World") //sampleEnd }
Als nächstes siehst du hier ein etwas komplizierteres Beispiel. Führe es wieder aus, um zu sehen, was dieses Programm macht.
import kotlin.browser.window fun main() { //sampleStart val name = window.prompt("Bitte gib deinen Namen ein.") window.alert("Hallo " + name) //sampleEnd }
Beim Programmieren lernen erfährst du, wie die Programmiersprache funktioniert. Du wirst genau verstehen, wie der Code von oben funktioniert und wie du deine eigenen Programme schreiben kannst. Mit diesem Wissen kannst du deinem Computer alles mögliche befehlen! Du kannst von Grund auf neue Dinge erschaffen. Egal ob Spiele, Apps oder sonstige Programme – die Fantasie ist (fast) das einzige Limit 😀
Die Programmiersprache
Gut, aber warum brauchen wir jetzt eigentlich diese Programmiersprachen?
Ehrlich gesagt ist ein Computer ein relativ dummes Gerät. Er kann meist nur eine Handvoll sehr grundlegender Befehle ausführen: „Beleuchte einen bestimmten Punkt am Display blau!“, „Speichere!“, „Rechne!“. Diese Befehle sind aber so nahe an der Basis, dass es sehr schnell unübersichtlich wird, darin komplexere Programme zu erstellen. Außerdem versteht der Computer keinen Text sondern nur binäre Zahlenfolgen, also Kombinationen aus 0 und 1. Zum Beispiel könnte 00100101 00000001 00000010 für einen bestimmten Computer bedeuten, dass er die Zahlen 1 und 3 zusammenzählen soll.
Um als Programmierer nicht verrückt zu werden, wurden daher höhere Programmiersprachen erfunden. Der Programmcode, wie zum Beispiel das Kotlin-Programm von oben, ist so wesentlich angenehmer zu schreiben und leichter zu verstehen. Vor dem Ausführen wird es automatisch in eine für den Computer verständliche Kombination aus Nullen und Einsern übersetzt. Damit kann er arbeiten und die Befehle sofort ausführen.
Im Laufe der Zeit wurden sehr viele verschiedene Programmiersprachen erfunden. Manche werden nur für bestimmte Zwecke eingesetzt. Andere Sprachen entstanden, weil Programmierer mit den aktuellen Programmiersprachen nicht zufrieden waren und den Code anders schreiben wollten. Als Anfänger beim Programmieren kann die Auswahl der Programmiersprache sehr schnell zu einer großen Hürde werden und überfordernd sein. Es gibt immerhin mittlerweile weit mehr als tausend verschiedene! Hier findest du unseren Artikel über das Thema, welche Programmiersprache wofür eingesetzt wird. Außerdem werden wir in einem unserer nächsten Artikel erklären, welche Programmiersprachen besonders gut für den Einstieg geeignet sind.
Also nochmal kurz zusammengefasst: Was ist programmieren?
Programmieren heißt, ein Software-Programm als Code zu schreiben, das der Computer ausführen kann.
Konnten wir dein Interesse für das Programmieren wecken? Ist jetzt alles unklarer als zuvor? Oder wurde die eine grundlegende Frage, die du dir über das Programmieren gestellt hast, nicht beantwortet? Schreib uns in den Kommentaren oder kontaktiere uns per Mail. Wir freuen uns über deine Rückmeldungen und Fragen. Codefuchs ist da, um dich von Anfang an auf deinem Weg vom Anfänger zum Programmier-Profi zu begleiten.
Bis zum nächsten mal!
Toller Beitrag!
Ich möchte gerne Programmieren lernen, weiß aber nicht wo ich genau anfangen soll. Wie ihr schon sagt gibt es so eine große Auswahl an Möglichkeiten! Soll ich Java lernen, PHP oder Javascript?
Wäre toll wenn ihr mir da weiterhelfen könnt!
Hallo Lukas!
Danke für dein nettes Feedback. Es ist nicht so einfach allgemein zu sagen was du beim Programmieren als erstes lernen sollst. Das kommt ganz darauf an was du programmieren möchtest. Hast du schon eine Idee oder ein Projekt, dass du umsetzen willst?
Grundsätzlich finden wir aber, dass es nicht so eine große Rolle spielt mit welcher Sprache du anfängst. Es ist wichtig die Grundlegenden Konzepte zu erlernen. Diese sind in den meisten Sprachen gleich oder ganz ähnlich. Wenn du diese gemeistert hast, fällt es dir sehr leicht von einer Sprache auf die andere zu wechseln.
Bleib gespannt auf einen unserer nächsten Artikel. Da werden wir näher auf das Thema der verschiedenen Programmiersprachen eingehen und auch Tipps für Anfänger geben.
Liebe Grüße,
Florian und Anna von codefuchs
Ein Freund von mir ist Programmierer in einer Firma, die Software für Energieversorgungsunternehmen erstellt. Er hat mir erklärt, dass Programmieren ein bisschen wie Fremdsprachenlernen ist. Ich wusste aber nicht, dass es so viele unterschiedlichen Programmiersprachen gibt.
Ich lese gerade zum Einstieg in C das Buch C – Programmieren von Anfang an.
Ich habe eine Frage zu der Programmiersprache BCPL welche am Anfang des Buches erwähnt wird. Es ist eine Sprache für nichtnumerische Probleme. Was bedeutet das? Die Anweisungen dieser Sprache haben die Maschinenoperationen abstrahiert. Was bedeutet auch das?
Vielen Dank
Hi Suemeyra!
Da musste ich jetzt erst einmal nachlesen 🙂 BCPL ist eine Sprache die mir bisher noch nicht untergekommen ist. Das ist auch nicht weiter verwunderlich, da diese Sprache heutzutage nicht mehr aktiv verwendet wird.
Zu der Zeit in der diese Sprache entwickelt wurde (1960er Jahre), wurde noch häufig direkt in Maschinensprache (Maschinenoperationen) programmiert, also Anweisungen geschrieben die direkt vom Prozessor eines Computers verstanden werden. Ein signifkanter Nachteil von direktem programmiern in Maschinencode ist, dass das Programm nur auf der Hardware funktioniert, für die es geschrieben worden ist. Zudem versteht ein Computer nur sehr wenige Anweisungen die sich direkt an die Hardware richten, weshalb Maschinencode schnell sehr lang und unübersichtlich wird.
BCPL ist eine höhere, abstrakte Sprache die von einem Übersetzerprogramm (Compiler) in Machinencode transformiert wird. So kann der gleiche, mehr für Menschen optimierte, BCPL code mit der Hife vom Compiler in Maschinencode für verschiedene Computer-typen übersetzt werden.
BCPL Code (für Menschen optimiert) –> Übersetzerprogramm (Compiler) –> Maschinenoperationen (für einen bestimmten Computer)
Heutzutage wird nur in sehr speziellen Anwendungsgebieten noch direkt in Maschinensprache programmiert. Im Kontext der Zeit von BCPL war das aber nicht der Fall und es war noch eher eine Besonderheit, dass die Sprache die Maschinenoperationen weg-abstrahiert hat.