Seit meiner Schulzeit in den Siebziger Jahren höre ich Leute darüber diskutieren, ob jeder programmieren können sollte weil es ja nun Computer gäbe. Das ist nun immerhin mehr als 40 Jahre her. Damals hielten Grossrechner in Firmen Einzug. Personal Computer waren noch nicht erfunden. Taschenrechner, Quartzuhren mit Digitalanzeige und Funkgeräte waren der „heisseste Scheiss“, den man kaufen konnte. Ich hatte keinen Taschenrechner (zu teuer), aber eine Quartzuhr mit roter LED Anzeige. Die Ziffern leuchteten auf, wenn ich auf einen der kleinen Knöpfe an der Seite drückte. Wenn man auf die Uhr schaute, sah man keine Zeit, sondern musste erst drücken. Zu oft durfte man aber nicht drücken, weil ansonsten die Batterie schnell alle war. Als ich 13 war (1977), kaufte mein Vater einen TRS80 Computer für sich. Damit auf dem Bildschirm etwas angezeigt wurde, musste man etwas programmieren. Die Programmiersprache war Basic.
10 print “Hallo“;
20 goto 10
Wenn das Programm lief, erzeugte es pro Bildschirmzeile eine Nachricht „Hallo“. Wenn keine Zeilen mehr da waren, wurde unten eine neue dargestellt und die anderen rückten nach oben. Das sah cool aus und flackerte in grüner Schrift auf schwarzem Grund. Es ist eine Schleife, die solange läuft „bis das E-Werk den Strom abstellt“. Mit etwas Bastelei stellte so ein Programm auch schicke Muster dar. Ich mass der Sache keine besondere Bedeutung zu, weil ich nicht wirklich etwas „sinnvolles“ damit anstellen konnte. Es machte aber Spass, bestimmte Muster zu erzeugen, per Tastatur das gewünschte Muster abzufragen und viele kleine Dinge mehr. Ich lernte spielerisch Dinge über Zeichensätze und Benutzeroberflächen.
In der Schule war es kein Vorteil, wenn man „so etwas konnte“. Die LED Uhr und ein anständiges Moped waren viel cooler. Ich hatte seit dieser Zeit immer einen mehr oder weniger „guten“ Computer an dem ich hin und wieder kleine Programme schrieb. Ich wäre aber nie auf den Gedanken gekommen, dass das irgendeinen „Sinn“ macht. Ich sah es mehr als Zeitvertreib.
Während meiner Lehre (Einzelhandelskaufmann) führte die Firma (Horten) Kassensysteme ein, die mit der zentralen Lagerhaltung und dem Einkauf verbunden waren. Das fand ich total schick und ich stellte fest, dass es tatsächlich „funktionierte“ als hin und wieder ein grosser LKW mit „falsch“ bestellter Ware in der Warenannahme stand (Turnschuhe, Fahrräder, Auslegeware). Die wurden dann zu Sonderpreisen (mit Personalrabatt) verkauft. Mit dieser Kassenfunktion konnte ich mir Dinge auf Bestellung in die Abteilung holen und dann manchmal völlig legal preisgünstig kaufen :) Ich brauchte nur Zugang zur entsprechenden Kasse. Den hatte ich aber ständig, weil überall Mitarbeiter waren, die mit den Kassen nicht klar kamen. Die Dame, die die Kassenschulung machte, war selten da. Hier habe ich zum ersten Mal verstanden, welche Möglichkeiten Programmieren eröffnet.
Das zweite Mal, dass ich diese Möglichkeit nutzte, war während meiner Zivildienstzeit (1985). Ich bin Krankenwagen gefahren und die Leute vom ADAC Hubschrauber brauchten eine Verwaltung für ihre geflogenen Einsätze. Ich hatte keinen Bock dicke Leute durch die Gegend zu tragen und die Besatzung des Hubschraubers hatte keinen Bock den ganzen Papierkram auszufüllen und wollten etwas Einfacheres. Computer waren vorhanden (CPM). Damals gab es noch keine Netzwerke und natürlich kein PHP :) Aber es gab dBASE und Clipper. Ich baute also etwas und programmierte mehr oder weniger aus Versehen so eine Art Auftragsverwaltungssystem. Ich wurde mit Currywurst, Pommes und gelegentlichen Freiflügen belohnt. Zu diesem Zeitpunkt dämmerte mir, dass das mit dem Programmieren wichtig sein könnte.
In der nächsten beruflichen Station ersetzte ich zur allgemeinen Begeisterung der Geschäftsführung ein internes Schreibbüro mit mehreren Angestellten durch eine Kombination aus Microsoft Word und Textbausteinanwendungen, mit der die jeweiligen Sachbearbeitern ihre Angebote und Auftragsbeschreibungen selbst schreiben könnten. Das war sogar vernetzt und es hatte eigentlich nur Vorteile. Leider waren ein paar Leute im Schreibbüro dadurch über. Die Geschäftsführung wertete das ebenfalls als Vorteil. So machte ich schnell „Karriere“ und hatte auch das erste Mal Kontakt mit Gewerkschaftsvertretern :) Übrigens in sehr positiver Form. Ich glaube, ich habe eine Menge sozialer Skills in dieser Zeit gelernt.
In Meetings fiel mir auf, dass die meisten Teilnehmer zwar fachlich ganz clever waren und auch sehr gut in der Durchsetzung ihrer Wünsche. Sie hatten aber nicht den Hauch einer Ahnung von der EDV-technischen Umsetzung Ihrer schlauen Ideen. Ich hatte den Vorteil, dass ich dazu etwas sagen konnte und dann auch in kurzer Zeit einen lauffähigen Protoypen zusammenklöppeln konnte. Diese Vorgehensweise erzeugte Vertrauen, obwohl dieses „release early, release often“ Denken Ende der Achtziger Jahre noch eher neu war und nicht so recht in das "Kathedralenbaudenken" grosser Firmen passte.
Bis heute hat sich daran wenig geändert. Das was ich behaupte, kann ich technisch umsetzen und habe dadurch Vorteile.
Zurück zur Frage:
Muss man programmieren können?
In meinem Fall war es extrem hilfreich. Heute programmiere ich nicht mehr so oft. Ich renoviere momentan viele Häuser, aber selbst da sind Programmierkenntnisse hilfreich. Beim Programmieren geht es ja immer um das nächste Problem, das gelöst werden muss und um „das Ganze“. Ein einziger Fehler lässt dein Programm abstürzen. Bei einem kleinen lokalen Programm ist das kein Problem, aber bei einer vielbesuchten Website oder einer Auftragsabwicklung ist es die maximale Katastrophe. Bei einem Haus ist es genauso. Einmal falsch die Statik berechnet, zack, fällt alles zusammen. Wer programmiert, erstellt eine kleine Welt für die er eine Verantwortung hat.
Von 2008 bis 2010 hatte ich viel mit Verlagen zu tun. In den Redaktionen wurden erstmals, ausser den Journalisten, auch Programmierer beschäftigt. Die Journalisten wurden neugierig, wie Programmierer so denken und heute können vermutlich viele Journalisten etwas programmieren.
Heute (2018) ist die Situation viel krasser.
Alles, wirklich alles, jede Firma, jedes Projekt, jedes Produkt, jede Kommunikationsform hat mit Computern zu tun. Das Bedienen dieser Computer und Services ist absolutes Basiswissen!
Und heute gibt es, ausser Programmierern, auch viele Computerspieler.
Dreiste Behauptung von mir:
Computerspieler versuchen eher durch Ausprobieren zum Ziel zu kommen, Programmierer eher durch Logik. Beide sind es allerdings gewohnt in Teams zu arbeiten und stehen ständig vor neuen und hochinteressanten Herausforderungen. Beide stehen ständig am „Abgrund“ und sind oft überfordert. Im günstigsten Fall haben beide Gruppen auch soziale Kompetenzen, die sie mit ihrem Technikwissen kombinieren können.
Ich habe den Eindruck, Programmierer sind kreativer als Spieler, denn sie bauen sich ihre kleine Welt immerhin selbst :)
Ausser Computerspielern und Programmierern gibt auch noch viele Parallelwelten, die ich nicht so sehr von innen kenne, die aber sehr populär sind. Ich meine sowas wie Fussballvereine, Armeen oder die Kirche. Da geht es auch irgendwie um Teams und Strategie aber irgendwie ist das alles eher statisch. In Meetings habe ich viele Beispiele aus der Kriegsführung und dem Fussball gehört. Geholfen hat mir das selten. Oft hatte ich den Eindruck, das solche Institutionen sehr hilfreich beim Erlangen eines Jobs sind, aber weniger hilfreich beim Umsetzen und Erarbeiten von Ideen. Programmieren ist da neutraler. Es geht „nur“ darum, irgendwas „sauber“ zu durchdenken. Hierarchien und Ideologien spielen meist keine grosse Rolle. Geschlecht, Hautfarbe und Sprache sowieso nicht (zumindest bei mir ist das so). Wichtig dabei ist auch der einfache Zugang zur Technik. Ich arbeite am Liebsten mit Open Source Software. Da kann wirklich jeder, der einen Computer hat „mitmachen“.
In der Programmierwelt passiert auch immer etwas Neues und das Neue ist immer zu langsam und zu unsicher und muss optimiert werden. Aber das Neue ist immer echt interessant!
Fussball, Kirche und Armeen sind dagegen irgendwie völlig statisch. Was passiert da schon Neues? Höchstens die Einführung von neuer Digitaltechnik :) (Vergebt mir, Fussball, Kirchen und Armee Fans).
Muss man programmieren können?
Natürlich nicht wirklich, aber ein wenig Basiswissen darüber hilft ungemein beim Verständnis neuer Technik. Jede neue Technik basiert auf etwas Existierendem. Sie fällt nicht einfach vom Himmel. Selbst mit einfachsten Grundlagen der Mathematik und des Programmierens ist es recht einfach neue Techniken zu verstehen.
Aber!
Mittlerweile ist die Fähigkeit zu programmieren nicht mehr genug. Mit dem Einsatz künstlicher Intelligenz und maschinellem Lernens gibt es nun Programme, deren Verhaltensweise auch die Programmierer nicht mehr verstehen. Diese Programme lernen selbst. Und manchmal lernen sie halt das "Falsche". Das falsche Verhalten kann man aber nicht mit einer Änderung des Programmcodes beheben. Man muss dafür sorgen, dass sie das Richtige lernen.
Und hier schliesst sich der Kreis irgendwie. Wer weiss denn schon, was das Richtige ist?
Ich weiss ja auch nicht ob jeder programmieren können sollte :)
Bei solchen Aussagen hilft oft ein Vergleich!
Es gibt seit über 100 Jahren elektrischen Strom. Ist heute jeder Elektriker ?
Es gibt seit über 100 Jahren Flugzeuge. Ist heute jeder Pilot ?
Es gibt seit über 100 Jahren Demokratie, herrscht deswegen heute Gerechtigkeit ?
Das alles sind Träumereien von Fantasten und auch Menschen die mit viel Kalkül den begehrten Fachkräfte-Markt übersättigen wollen, um billige und hoch qualifizierte Mitarbeiter zu bekommen.
PS:
Mir reichen schon die Leute, dies nicht können und dennoch tun. Mit deren Inkompetenz darf ich mich auf Arbeit am Telefon rumärgern.
Jeder sollte wissen, wie das mit der Elektrizität so grundsätzlich funktioniert.
Warum sollte jeder Pilot sein?
Was hat Demokratie mit Gerechtigkeit zu tun?
Welche Träumereien meinst du?
Wie kann man etwas tun ohne es zu tun zu "können"?
Was machst du denn beruflich?