Computerprogrammierung, auch bekannt als Kodierung, ist der Prozess der Erstellung von Software.
Was ist Software?
Software ist eine Reihe von Anweisungen für einen Computer, die er ausführen soll.
Es ist ein bisschen wie ein Kochrezept:
- Ein Ei in eine Schüssel schlagen
- Das Ei verquirlen
- Eine Pfanne auf mittlere Hitze stellen
- Die Pfanne fetten
- Die Eier in die Pfanne geben
- Und so weiter
Anstatt Zutaten zu manipulieren, manipulieren Computer Daten.Die Anweisungen in der Software sehen eher so aus:
- Lade einige Daten
- Lade einige andere Daten
- Transformiere diese beiden Datenbits in Ergebnisdaten
- Sende die Ergebnisdaten an den Monitor zur Anzeige
- Sende die Ergebnisdaten über das Internet
- Und so weiter
Diese Anweisungen werden normalerweise Quellcode genannt.Quellcode ist einfach ein Satz geschriebener Anweisungen, die ein Computer verstehen kann.
Wie sieht Quellcode aus?
Code wird nicht in natürlichen Sprachen, wie Englisch, geschrieben.
Hier ist ein kleines Programm, das in einer Sprache namens Ruby geschrieben wurde:
require 'open-uri'require 'json'FRONT_PAGE_URL = 'https://reddit.com/r/all.json'front_page = JSON.load(open(FRONT_PAGE_URL).read)top_post = front_pageputs 'The top post on reddit is:'puts top_postputs top_post
Dieses Programm zeigt den aktuellen Top-Post auf reddit an, etwa so:
The top post on reddit is:One of my favourite things about working in the ski fieldshttp://i.imgur.com/hWwlWgI.jpg
Hier ist das exakt gleiche Programm, geschrieben in einer ähnlichen Sprache namens Python:
import urllib, jsonFRONT_PAGE_URL = "https://reddit.com/r/all.json"front_page = json.loads(urllib.urlopen(FRONT_PAGE_URL).read())top_post = front_pageprint "The top post on reddit is:"print top_postprint top_post
Hier ist das gleiche Programm in einer anders aussehenden Sprache namens Clojure:
(require ')(def front-page-url "https://reddit.com/r/all.json")(let ))] (println "The top post on reddit is:") (println (get top-post "title")) (println (get top-post "url")))
Wie Sie sehen können, unterscheiden sich Programmiersprachen sehr von natürlichen Sprachen.Natürliche Sprachen sind mehrdeutig, mit vielen verschiedenen Bedeutungsebenen – Sarkasmus, Anspielungen und solche Dinge.
Das ist toll, wenn Sie mit einem Menschen kommunizieren, aber Computer verstehen nichts davon.
Computer nehmen alles wörtlich.
Wenn Sie einen Computer fragen, ob eine Zahl ungerade oder gerade ist, wird er immer mit „ja“ antworten.“Ich mache nicht einmal Witze – hier ist der Ruby-Code:
puts (5.odd? or 5.even?)
Dieser Code zeigt „wahr“ an, was technisch korrekt ist.Die Zahl fünf ist entweder ungerade oder gerade, aber das ist nicht das, was ich meinte.
Es geht um mehr als nur das Schreiben von Code
Das Schreiben von Code ist nur ein Teil der Softwareentwicklung.
Große Software – wie Windows, OS X und Spiele für große Budgets – besteht aus Millionen und Abermillionen von Codezeilen.Diese Art der Planung wird Design oder Architektur genannt.
Bei großen Projekten wird viel Zeit mit Design und Architektur verbracht, bevor der Code geschrieben wird.
Ein weiterer großer Teil der Softwareentwicklung ist das Testen.
Nur weil der Code geschrieben wurde, bedeutet das nicht, dass er korrekt ist.Um zu versuchen, diese Probleme zu vermeiden, haben professionelle Softwareentwickler verschiedene Möglichkeiten, ihren Code zu testen.
Dann gibt es noch das Debugging, also das Untersuchen, Diagnostizieren und Beheben von Problemen im Quellcode.
Abschluss
Das ist eine Fähigkeit für sich.