Die Rolle der Programmierung hat in der Informatik bisher folgende fünf Schritte durchlaufen:
1. 1960-er Jahre: Informatik ist ein Teilgebiet der Mathematik. Programmierung ist der letzte triviale Schritt bei der Umsetzung eines mathematischen Konzepts. Typischer Vertreter ist die Algebra, z.B. mit stack.push(x).pop() == stack.
2. 1970-er Jahre: Informatik entwickelt sich zu einer eigenständigen Wissenschaft, der Wissenschaft der Algorithmen.
3. 1980er Jahre: Informatik ist eine eigene Wissenschaft, die sich von Mathematik etwas absetzt: Nicht alles lässt sich als mathematisches Konzept fassen. Software Engineering bemüht sich um Anforderungskataloge in Form präziser (aber nicht notwendig mathematischer) Spezifikationen. Programmierung ist der letzte triviale Schritt bei der Umsetzung eines Anforderungskatalogs in Form einer möglichst präzisen Spezifikation.
4. 2000-er Jahre: Die Qualität der Software ist immer noch zu schlecht. Kent Beck und Erich Gamma entwickeln Unit-Testing und Test-Driven Development (TDD): Spezifikationen werden als Tests geschrieben und werden damit ausführbar. Entwickeln und Programmieren ist der letzte triviale Schritt, um die Tests zur fehlerfreien Ausführung zu bringen.
5. 2010-er Jahre: Programmieren ist überhaupt kein letzter trivialer Schritt. Die Programmierwelt hat sich zu einer eigenen Welt mit eigenen Sprachen, Gesetzen, Regeln, Rahmenwerken, Errungenschaften und Meilensteinen entwickelt. Zu den meisten Programmen gibt es keine mathematisch fixierten Konzepte außerhalb des Programmes selbst. Gutes Programmieren ist wie gutes Schreiben (David Heinemeier-Hansson (DHH)) mit einfachen Regeln wie DRY (Don´t Repeat Yourself). Jede Einheit soll ein und nur ein Thema so gut es geht abhandeln. Befasst sich eine Einheit mit mehr als einem Thema, so ist die Einheit aufzuspalten in mehrere Einheiten. Gute Abstraktionen ergeben sich während der so an der inneren Schönheit und Einfachheit orientierten Programmiertätigkeit: Jede Einheit muss so klar und deutlich geschrieben sein, dass ihre Korrektheit offensichtlich ist. Unit-Testing ist ein ewiger Begleiter neben dieser Innen-Perspektive, das die Außen-Perspektive der Anwendung in den Entwicklungsprozess mit einbringt.
Heute: Informatik kommt in die Jahre. Die Lösungskataloge werden immer dicker. In das Informatik-Studium werden immer mehr fertige Lösungen hinein gestopft. Entfremdung und Frustration sind die Symptome. Es entsteht die Gefahr, dass die eigene Kreativität und die Freude an der eigenen Schöpfung auf der Strecke bleibt. Auch wenn es schon so viele Lösungen gibt, so müssen Studierende dennoch den Freiraum bekommen, das Eigene zu entwickeln, eigene Wege zu gehen, Erfahrungen zu sammeln und die gewonnene Erfahrung zu einem Ganzen zu integrieren. Dafür bietet Programmieren eine wundervolle Plattform, wenn man es im Sinne der 5. Stufe begreift. Dort liegt das größte Potenzial eines Informatikstudiums, während die Lösungskataloge nur (wenn auch sehr, sehr wertvolle) Mittel zum Zweck sind.