Programmieren oder programmiert werden? Auf die falsche Frage kann man keine richtigen Antworten bekommen.

Warum uns schlechte Ratgeber nicht in die Freiheit, sondern nur in eine andere Abhängigkeit führen.


Die Mitarbeiter des Online-Magazins SPON haben manchmal merkwürdige Einfälle, wenn es darum geht, die Produkte des hauseigenen SPIEGEL-Shops feilzubieten. Am Wochenende wollten sie unsere Aufmerksamkeit wohl auf ein Buch des Autors Douglas Rushkoff lenken. Es heißt

Program or Be Programmed
Ten Commands for a Digital Age

und die Ankündigung des SPON-Artikels verspricht noch mehr: »Digitale Selbsthilfe — Programmiere dich zur Freiheit«. Ist es wirklich so einfach? Kann uns der SPON-Artikel dabei helfen?


In dem Artikel ist ungefähr jeder Irrtum enthalten, der einem Autor zu diesem Thema einfallen kann. Schon der erste Absatz birgt mehrere Widersprüche in sich:

Wo man auch hinschaut: Algorithmen. Die durchschnittliche Waschmaschine hat heute schon mehr Rechenpower als ein alter Computer, an den Börsen handelt Software längst ohne menschliches Zutun, Facebook und Google bestimmen, was wir lesen und wissen. Wir sind in der Hand von Programmen, oder genauer gesagt: in der Hand von Programmierern.

Wenn es stimmen sollte, dass Facebook oder Google bestimmen, was wir lesen und wissen, dann wären wir nicht in der Hand von Programmierern und erst recht nicht in der Hand von Programmen. Dann wären wir in der Hand der Eigentümer und Betreiber der Server, auf denen diese Programme laufen.

Aber es stimmt natürlich nicht. Wir selbst sind dafür verantwortlich, was wir lesen, was wir wissen, was wir glauben und was wir lernen. Wir können die Verantwortung nicht auf Facebook oder Google abschieben.


Vermutlich gehört heute das Wort »Algorithmus« an den Anfang jedes wichtigtuerischen Artikels über Computer. Was ist eigentlich ein Algorithmus? — Algorithmen gibt es schon seit tausenden Jahren. Die Wikipedia gibt die zeitlos richtige Definition wieder, die wir schon in der Schule gelernt haben:

Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen.

Man hat uns auch beigebracht: Wenn man einen Algorithmus mehrmals auf die selben Eingangswerte anwendet, müssen immer die selben Ergebnisse herauskommen. Dabei ist es völlig belanglos, ob man diesen Algorithmus im Kopf oder auf dem Papier, mit dem Taschenrechner oder mit dem Computer abarbeitet. Mit manchen Werkzeugen kommt man einfach schneller zum Ergebnis.


Ein weiteres Zitat aus dem SPON-Artikel:

(…) Mittlerweile klicken oder drücken wir auf bunte Icons, und auf magische Weise tut die Technik Dinge, die sich jemand anderes vorher ausgedacht hat. Dieser jemand arbeitet im Zweifelsfall für Google, Microsoft oder einen anderen Konzern.

Nein! Nein! Und nochmals: Nein! Es kommt nicht darauf an, ob die Programmentwickler für Apple, Google, Microsoft oder einen anderen Konzern arbeiten. Es würde sich an dem Grundproblem nichts ändern, wenn die Programme von einer DVD mit dem freien Betriebssystem Ubuntu stammten. Es kommt darauf an, was wir mit der Technik tun und ob wir die Ergebnisse richtig einordnen, die uns auf dem Monitor angezeigt werden.


In dem SPON-Artikel wird nun eine Gruppe aus drei Berliner Studenten vorgestellt, die folgendes getan haben:

Die Berliner Studentin Fiona Krakenbürger hat die harte Tour gewählt und zwei computeraffine Freunde dazu gebracht, sich mit ihr die Maschinensprache Assembler vorzunehmen. Erste Lektion: Weg mit Windows, Linux auf den Laptop installieren. “Ich kann meinen Computer mit einem Terminal bedienen, ohne grafische Benutzeroberfläche. Das ist ein starkes Gefühl. Damit kann ich Produktvorgaben unterwandern oder sogar verändern”, sagt Krakenbürger.

Auch hier: Phrasen und Widersprüche. Erstens kann man die Beispiele aus einer Assembler-Einführung mit jedem Betriebssystem ausprobieren. Microsoft hindert niemanden daran, unter Windows programmieren zu lernen — im Gegenteil: Sie bieten sogar einige Werkzeuge kostenlos an. Viele andere Werkzeuge kann man sich als OpenSource-Software herunterladen und völlig problemlos unter Windows nutzen.

Zweitens: Als Anfängerin kann Frau Krakenbürger auch mit Linux überhaupt gar keine Produktvorgaben unterwandern oder »sogar verändern«. Das ist auch gar nicht notwendig. Ein Betriebssystem ist nichts als ein Mittel zum Zweck. Nebenbei gefragt: Wie »unterwandert« man überhaupt Produktvorgaben?

Drittens: Es ist völlig belanglos, ob ein Artikel auf dem Mac, auf einem Windows-PC, auf einem Linux-Rechner oder auf einem Server in der »Cloud« verfasst wurde. Ich muss dazu auch nicht wissen, mit welcher Software der Artikel geschrieben wurde. Entscheidend ist der Inhalt. Entscheidend ist der Nutzen für die Leser. Der zitierte SPON-Artikel nutzt allenfalls den Umsätzen im SPIEGEL-Shop ;-)


Schaut man sich das dort verlinkte Blog »fiona lernt programmieren« an, wird schnell klar: Die drei Studenten haben nicht das Programmieren gelernt, sondern sie haben die Vorgaben aus irgendwelchen Büchern oder Anleitungen abgetippt. Eine Zeile aus einem Chat-Protokoll in einem Artikel von Fiona zeigt das beispielhaft:

Hab zwar keinen Plan, was wir dann genau machen sollten in der Zeit, aber wir können ja auch einfach improvisieren.

Dieses Zitat mag willkürlich herausgegriffen sein, aber die Auswahl dieser Zeile ist wirklich nicht böse gemeint. Es befreit niemanden und es ist geradezu eine Verschwendung von Ressourcen und Zeit, die Programmierbeispiele in maschinennaher Sprache aus einem Buch abzutippen, wenn man diese Sprache privat und beruflich überhaupt nicht braucht. Man wird dabei nicht frei, sondern man ist abhängig von der jeweiligen Anleitung.

Abgesehen davon hat mich in dem Blog schon die Überschrift »C für Dummies« abgeschreckt. Kein Mensch ist ein Dummy, wenn er sich nicht selbst dazu macht. Auch wer planlos an das Programmieren herangeht, ist noch lange kein Dummy. Er hat vielleicht einfach zu viel Zeit …

Man hat natürlich beim Ausprobieren solcher Beispiele seine Aha-Effekte: Oh! Mit solch kryptischen Befehlen wird also ein Satz auf dem Monitor angezeigt. Aber entscheidend sind doch nicht die Befehle, mit denen die Zeichen auf den Schirm kommen. Entscheidend für den Nutzer ist die Bedeutung der Zeichen.

Wenn wir also über Freiheit reden wollen: Es befreit den Nutzer, wenn er Informationen richtig auswählt, wenn er sie richtig einordnet und wenn er sie richtig an andere weitergibt. Und nicht zuletzt: Wenn er sich gut überlegt, welche Informationen er weitergibt.


Ich habe in diesem Blog mit meinen bescheidenen Mitteln schon in etlichen Fällen bestimmte Statistiken und Zahlenangaben hinterfragt, die in der Presse kritiklos veröffentlicht wurden. Vielleicht konnte ich in dem einen oder anderen Fall für ein wenig Aufklärung sorgen.

Es ist bei der Wertung der Zahlen jedenfalls völlig belanglos, mit welchen Programmiersprachen und mit Hilfe welcher Datenbanken die dynamischen Webseiten erstellt wurden, die man z. B. bei SPON oder bei der Greenwashing-Aktion »Stadtradeln« zu Gesicht bekommt. Entscheidend sind die Zahlen. Entscheidend ist, ob Ihr die Zahlen glaubt, oder ob Ihr Euch mit den Zahlen einwickeln lasst.


Während ich diesen Artikel schreibe, wäscht unsere Waschmaschine gerade meine Trainingsbekleidung vom Wochenende. Die Waschmaschine ist einer der Aufhänger des SPON-Artikels und gleichzeitig ein weiteres Indiz für seine Sinnlosigkeit.

Es stimmt vermutlich, dass in einer Waschmaschine heute mehr Rechenleistung steckt, als früher in einem Computer zu finden war. Aber diese Rechenleistung dient zu meinem Nutzen. Mit einer modernen Waschmaschine kann ich die Ressourcen Zeit, Energie und Wasser besser ausnutzen, wenn ich die richtigen Knöpfe drücke.

Als Nutzer bin ich nicht in der Hand der Schaltkreise und Waschprogramme, sondern ich kann im Handbuch der Waschmaschine zu jedem Waschprogramm erfahren, wie viel Wasser verbraucht wird, bei welcher Temperatur gewaschen wird und wie schnell die Wäsche geschleudert wird. Dafür muss ich aber nicht die Maschinenbefehle kennen, mit denen die Waschmaschine programmiert wurde.

Wenn ich meine Trainingsbekleidung mit dem 95°-Programm waschen würde, müsste ich nach dem Waschgang wohl nun noch einen Klumpen Kunstfasern aus der Waschmaschine holen. Dafür wäre dann aber nicht die Maschine verantwortlich und erst recht nicht der Hersteller; auch nicht die Programmierer bei Miele.

Natürlich wäre ich als Anwender verantwortlich, weil ich die Maschine falsch eingesetzt hätte. Tiefe Kenntnisse über die Interna der Maschinensteuerung sind für die Entscheidung über das richtige Waschprogramm völlig irrelevant.

Ich würde gern in diesem Sommer einige Artikel darüber schreiben, was man über Computer wirklich wissen sollte und was uns wirklich frei macht. Hat jemand Interesse? ;-)


About these ads

13 Antworten zu Programmieren oder programmiert werden? Auf die falsche Frage kann man keine richtigen Antworten bekommen.

  1. Klaus sagt:

    “Hat jemand Interesse?”

    Klar! Dann muss ich nicht selbst darüber nachdenken ;-)

    Vielleicht sollte man den Studenten mal diesen Link zukommen lassen…

    • stefanolix sagt:

      Bei Dir unterstelle ich einfach mal, dass Du schon intensiv darüber nachgedacht hast ;-)

      Ich danke für den Hinweis und ergänze noch den Direktlink zur Übersetzung ins Deutsche: Lernen Sie programmieren in zehn Jahren!

      Selbst wenn man aber Assembler und C++ in wenigen Wochen verstehen könnte, wären es immer noch die falschen Werkzeuge, um Probleme der Informationsgesellschaft zu lösen und in Freiheit zu gelangen. Und genau das verspricht ja der SPON-Artikel.

  2. Rayson sagt:

    Um es mal kurz zu fassen: Was nutzt es einem, wenn man einem Prozessor über Assembler das Addieren und Subtrahieren beibringen kann, man aber keine Ahnung hat, was IP-Adressen sind und wo über den Browser Spuren auf den eigenen Rechner gelegt werden.

    Man zahlt mir z.B. Geld dafür, dass ich die finanziellen Begleitumstände und Folgen von Geschäftsvorhaben abbilden kann. Ich nutze dazu selbstverständlich eine Tabellenkalkulation, aber ich muss wirklich nicht wissen, wie das Ding programmiert ist. Was aber auch dort nützlich ist, ist etwas Wissen über den Unterschied von Zeichenketten und Zahlen oder über einige Besonderheiten wie z.B. “Vorsicht bei Fließkommazahlen”. Dass man sich das Leben angenehmer gestalten kann, wenn man darüber hinaus wiederkehrende Aufgaben mittels in VBA programmierten Schleifen erledigt, ist eine andere Sache. Für die C- oder gar Assembler-Programmierung aber auch weitgehend nutzloses Wissen wäre, wenn man “Do…Loop” und “If…Then” mal kapiert hat.

    Um ein Bild zu verwenden: Es reicht, wenn ein Koch weiß, welche Zutaten in welcher Kombination gut schmecken, aber über den Prozess der Signalvermittlung an den für Geschmacksempfinden zuständigen Synapsen seiner Gäste braucht er kein Know-How.

    • stefanolix sagt:

      Das Entwickeln richtiger Programme kann man meiner Erfahrung nach nur dann lernen, wenn man ein Ziel vor den Augen hat. Von den vielen Leuten, denen ich es mehr oder weniger nebenbei nahegebracht habe, sind nur diejenigen drangeblieben, denen das Programmieren wirklich privat oder beruflich genutzt hat.

      Es macht natürlich Spaß, die Dinge auch ganz unabhängig von Kosten-Nutzen-Erwägungen zu erforschen. Deshalb noch ein anderer Vergleich: Die Kinder gehen mit ihren Schulklassen oft in die Natur und beobachten Gewässer, Pflanzen oder Tiere. Die meisten Kinder sind dabei wirklich neugierig.

      Aber nur ein Bruchteil dieser Kinder wird später Hydrologe oder Biologin, Oberförster oder Tierärztin werden. Es sind genau diejenigen, deren festes Ziel darin besteht, einen solchen Beruf zu ergreifen. Sie arbeiten dann auf diesem Gebiet sehr viel mehr als die anderen Jugendlichen.

      So ist es auch mit den drei Studenten, die sich für den Aufbau des Rechners und für Assembler interessieren. Sie werden durch Neugier nicht zu Programmentwicklern. Das werden sie erst, wenn sie richtig viel Arbeit hineinstecken und wenn sie das mit einem ganz klaren Ziel tun.

  3. Also, ich würd’s nicht überbewerten …
    Man kann dieses und jenes in dem SPON-Artikel sicher stirnrunzelnd betrachten, doch m.E. geht die Sache, die da Fiona macht oder machen will, in Richtung “hinter die Kulissen schauen”. Mich erinnert das alles ein bisschen an die Grundessenz von Neal Stephenson’s “Die Diktatur des schönen Scheins”.

    Für mich fühlt sich das ein bisschen so an, als ob jemand der bisher immer den Taschenrechner genommen hat, endlich mal Kopfrechnen bzw. schriftliches Addieren, Subtrahieren, Multiplizieren usw. lernt.

    Ich denke, es geht um das Entmystifizieren von Software-Oberflächen überhaupt. Besagte Fiona lernt auch nicht wirklich Programmieren, sondern bestenfalls ansatzweise nachzuvollziehen, was in ihrem Computer bzw. in den Software-Algorithmen abgeht. Ob man das nun braucht oder nicht, sei einmal dahin gestellt … wenn sie’s interessiert. Warum nicht?

    @ Dummy bzw. “C for Dummies”
    Hast du das Wort “Dummy” auch als Synonym für Anfänger verstanden, Stefan?
    Oder habe ich deine Kritik an der Wortwahl missverstanden?

    @ Interesse an einem Artikel?
    Wenn du (zu viel ;)) Zeit hast, warum nicht?

    Apropos, ich denke, niemand hat “zu viel Zeit” – weder Fiona noch du – Menschen haben nur unterschiedliche Interesse und steigen an unterschiedlichen Punkten in ein und die selbe Materie ein.

    • Die junge Dame hat ja offenbar auch etwas Humor … in einem Blogbeitrag vom März 2012 (einfach mal runterscrollen) befindet sich diese Graphik …

    • stefanolix sagt:

      Nein, Deine Analogie überzeugt mich nicht so recht. Es ist vielmehr so, als ob jemand den Taschenrechner öffnet und dessen Funktionsweise ergründen will. Wenn sie über die Algorithmen nachdenken würden, statt den Code abzutippen, wäre ja schon viel gewonnen!

      Man entmystifiziert doch nicht Google, Facebook, Powerpoint oder AutoCAD, wenn man in mehreren Programmiersprachen »Hello world« oder das Ergebnis von 2+2 auf dem Monitor ausgeben kann.

      Von all den Bedeutungen des Wortes »Dummy« gefällt mir eigentlich keine. Wenn jemand wirklich den »Anfänger« meint, sollte er auch »Anfänger« sagen.

    • Mir soll’s gleich sein … ich muss nicht C lernen, wenn ich es nicht brauche. Turbo Pascal und bisschen Script-Geschnipsel haben mir gereicht ;)
      Das Wort “Dummy” wird häufig für so etwas verwendet … siehe auch hier

      So, der 10.000ste ist dein, Stefan ;) … ich mach jetzt mal ne Primzahlzerlegung von 9.999 :)

      • stefanolix sagt:

        Das ist sehr rücksichtsvoll von Dir, aber leider bin ich erst bei 9.464 Kommentaren. Etwas Spam ist doch durchgerutscht und musste gelöscht werden. Ich werde den echten Kommentar Nr. 10.000 gebührend würdigen.


        Ich kenne die Buchreihe ja. Am Anfang habe ich noch in das eine oder andere Buch hineingeschaut, ich fand sie aber alle nicht so toll. Und ich würde mich vor allem nie mit einem Dummy-Buch in die Straßenbahn setzen. Wäre mir unangenehm.

  4. Daniel sagt:

    Die Aussage

    “Man hat uns auch beigebracht: Wenn man einen Algorithmus mehrmals auf die selben Eingangswerte anwendet, müssen immer die selben Ergebnisse herauskommen.”

    ist so nicht ganz korrekt. Tatsächlich gilt das nur für deterministische Algorithmen. Ein ganz zentraler Begriff der Informatik ist der Nichtdeterminismus, z.B. http://de.wikipedia.org/wiki/Nichtdeterminismus

    Und hier gibt es noch großen Forschungsbedarf, denn wir wissen noch nicht, wie deterministische und nichtdeterministische Algorithmen zusammenhängen (http://de.wikipedia.org/wiki/P-NP-Problem). Wer das Rätsel löst, dem winken 1 Mio. Dollar: http://www.claymath.org/millennium/P_vs_NP/

    Außerdem spielen in vielen Bereichen, z.B. beim Finden von Primzahlen, randomisierte Algorithem eine Rolle: http://de.wikipedia.org/wiki/Randomisierter_Algorithmus

    • stefanolix sagt:

      Danke für den Hinweis. In unserer Schulmathematik waren mit Algorithmen die deterministischen Algorithmen gemeint.

      Zu dem Problem P vs NP gibt es bei Youtube einen schönen Beitrag von einem Science Slam.

    • David sagt:

      Tatsächlich gilt das nur für deterministische Algorithmen. Ein ganz zentraler Begriff der Informatik ist der Nichtdeterminismus, z.B. http://de.wikipedia.org/wiki/Nichtdeterminismus

      Nichtdeterminismus im von Ihnen angesprochenen Sinn bezeichnet nicht die Nichtdeterminiertheit des Ergebnisses sondern die Nichtdeterminiertheit des Berechnungswegs. Das Ergebnis ist bei nichtdeterministischen und deterministischen Verfahren gleichermaßen determiniert.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 61 Followern an

%d Bloggern gefällt das: