Spielend programmieren lernen

Programmierkurse für Kinder, Jugendliche und Erwachsene

User Tools

Site Tools


de:blog:2014:1004_al_sweigart_programmieren_lernen

Title: Wozu sollte ich programmieren lernen? Date: 2014-10-04 19:20 Tags: code, learning Googleadsense: True authors: Al Sweigart, Horst JENS Slug: 20141004_alsweigartdeutsch Summary: übersetztes Blogposting von Programmieruchautor Al Sweigart: gute und schlechte Gründe, jetzt programmieren zu lernen.

Wozu sollte ich programmieren lernen?

Ein Blogposting von Al Sweigart

Mittlwerweile gehört den Computergeeks die Welt. Noch vor ein paar Jahrzehnten warst du ein Nerd ohne echtes Sozialleben wenn du mit deinen Freunden per Chat kommuniziert hast. Dank Breitband-Internet und Smartphones ist das Informationszeitalter von den Anfängen der PC-Ära in den 70ern heute im Mainstream angekommen.

Mit diesem gesellschaftlichen Wandel einhergehend drängt sich die Frage auf: Sollte ich programmieren lernen? Ist Nicht-Programmieren-Können der neue Analphabetismus? Programmiere ich oder werde ich programmiert? Sollte jeder programmieren können? Diese Fragen stellte die New-York-Times "Personal Computers; Does Everyone Need to Learn Programming?"(1) breits 1984.

Wie bei allen von Medien geschürten Paniken kommen Geschäftemacher und Experten (so wie ich) aus ihren Verstecken und offerieren Meinungen und Produkte. Softwareentwickler Jeff Awood plädiert dafür, NICHT programmieren zu lernen(2); eine Position der ich entschieden widerspreche(3).

Am Markt gibt es unzählige Webseiten und Kurse um Programmieren zu lernen. Die meisten davon sind meiner Meinung nach schrecklich(4).

Verstehe mich bitte nicht falsch: Du SOLLST programmieren lernen. Aber im Medien-Hype geht die eigentliche Frage unter: Wozu sollte ich programmieren lernen?

Hier sind ein paar schlechte Gründe der Lerne-programmieren Propaganda:

  • Damit du Softwareentwickler wirst und massiv Geld verdienst. Wenn es dich reizt Softwareentwickler zu werden, dann lass Dich nicht aufhalten! Doch wenn du deine derzeitige Karriere magst gibt es keinen Grund umzusatteln. Die Welt brauch nicht nur Programmierer.
  • Um das nächste Facebook oder FlappyBird zu erschaffen und Millionär zu werden. Die meisten Startups scheitern. Software Startups brauchen mehr Fähigkeiten als du durch einen Kurs bei CodeAcademy(5) lernen kannst, und programmieren zu können ist nicht der wichtigste Skill für Unternehmensgründer.
  • Um kritisch Denken und Problemlösen zu lernen: Jaaaaaa….so ungefähr. Leider erklären jene die dieses Argument vorbringen nie genau was dies bedeutet oder inwiefern programmieren zu können dabei hilft.
  • Du kannst es in Deinen Lebenslauf schreiben: Jaaaaa…schon, aber es wird nicht erklärt inwiefern dies bei Nicht-Programmierjobs hilfreich ist.
  • “Um Homepages machen zu können”: Ganz wichtig: HTML ist KEINE Programmiersprache(6) und Web-Design ist eine andere Fähigkeit als programmieren zu können. Wenn Du eine eigene Webseite haben, erstelle Dir einen Gratis-Blog auf Wordpress.com(7).
  • “Weil es andere Leute sagen”: Das ist eine der blödesten Begründungen überhaupt für jede Art von Tätigkeit.

Bevor ich die realen Gründe erkläre warum du, deine Freunde, deren Nachbarn, ihre Katze und überhaupt jeder programmieren lernen sollte beachte folgende Anektdote:

Ein Mathematiklehrer erklärt Logarithmen, quadratische Gleichungen (oder ähnlich Popoläres) und wird von einem Schüler gefragt: “Wann im Leben werde ich das jemals brauchen?”

“Wahrscheinlich niemals” anwortet der Lehrer ohne zu zögern. “Die meisten Berufe verlangen nicht mehr Mathematik als Grundrechnungsarten.”

“Aber” fährt der Lehrer fort “Stelle Dir folgende Fragen: Warum gehen Menschen ins Fitnesscenter und stemmen Gewichte? Wollen sie alle Olympiasieger werden oder als Bodybuilder arbeiten? Warten diese Menschen alle darauf eines Tages eine alte Dame unter einem 300 Kilo Gewicht eingeklemmt zu finden um sich dann zu denken: Genau für diese Situation habe ich all die Jahre trainiert?”

“Natürlich nicht. Die Menschen heben Gewichte weil sie das stärker macht. Mathematik zu lernen ist wichtig um gescheiter zu werden. Mathematik zwingt dein Gehirn in ungewohnten Bahnen zu denken. Mathematik verlangt Präzesion, Disziplin und Abstraktionsvermögen. Mathematik ist mehr als brutal auswendig lernen, oder schöne Dinge herstellen, oder rauszufinden wie man Erwartungen anderer Menschen erfüllt. Mathematik Hausübungen zu machen übt den Geist darin diszipliniert in einer Welt zu denken in der es eindeutig richtige und eindeutig falsche Antworten gibt. Und Mathematik ist allgegenwärtig: Mathematik steckt in vielen anderen Lebensbereichen und ist universal gültig, unabhängig von Kulturen. Vor allem lehrt Dich Mathematik neue Wege zu denken. Und genau diese Fähigkeit, auf neue, andere Art zu denken ist es -mehr als alles andere- die dich für eine unvorhersehbare, gefährliche Zukunft vorbereitet”.

Programmieren zu lernen, obwohl man nicht Software-Ingenieur werden will hat ähnlich gute Gründe:

  1. Programmieren zu lernen schult das präzise, disziplinierte, abstrakte Denkvermögen. Es gibt 2 Möglichkeiten: Ein Programm funktioniert - oder es funktioniert nicht. Es kann subtile oder offensichtliche Bugs (=Programmierfehler) haben, deren Ausmerzung Analyse und Konzentration erfordert. Im Gegensatz zu Mathematik tut ein Programm etwas unmittelbar nützliches (Mathematiker, bitte nicht auf mich schießen).
  2. Programmieren zu können verwandelt deinen Computer von einem Stück Unterhaltungselektronik in ein mächtiges Werkzeug. Egal ob du einen Bürojob hast, einfach oft online bist oder studierst; Computer werden verwendet um damit Aufgaben zu erledigen. Aber manche langwierige, öde, per Computer lösbare Aufgaben sind so spezifisch oder vom Kontext abhängig dass es sich noch niemand angetan hat dafür ein Computerprogramm zu schreiben. (Mein nächstes Programmierbuch handelt genau davon(8). Selbst ohne tiefergehende Programmierkenntnisse (=coding skills) steigert die Fähigeit programmieren zu können die Produktivität enorm. Computer sind überall. Computer sollten universelle Werkzeuge sein, nicht Elektrogeräte. Ein Werkzeug schärft man, ein Gerät ersetzt man.
  3. Programmieren lernen ist eine gute Übung um Lernen zu lernen. Professionelle Software-Entwicklern benutzen Google täglich zur Recherche im Rahmen ihrer Arbeit. Beim programmieren wirst du mit Fragen konfrontiert werden deren Antwort du im Internet recherchieren musst. Effizient zu googeln ist eine eigene, trainierbare Fähigkeit: rausfinden welches Suchwort effizient ist, nutzlose Hinweise und Platitüden von Content-Farming-Seiten erkennen, rausbekommen wie man eine Frage richtig formuliert (dies alleine ist so komplex das es dazu ein 24-seitiges FAQ gibt(9)). Hierbei geht es nicht um das Lösen willkürlicher Kreuzworträtsel oder Sudoku-Probleme; Lernen, Programmcode zu schreiben inkludiert zu lernen wie man selbstständig Hilfe findet.

Buchvorschau: automate the boring stuff with python

Ab November 2014 im Handel: Al's neues Python-Programimerbuch. Bildrechte: Al Sweigert

Cory Doctorow hat argumentiert(10) dass man noch bevor man programmieren lernt lernen sollte mit Regular Expressions (=reguläre Ausdrücke, RegEx) umzugehen. Regexes beschreiben Muster (=Pattern) von Text. Deine Textverarbeitungssoftware erlaubt wahrscheinlich Regex Ausdrücke für die Suchen-und-Ersetzen Funktion zu verwenden. Sich mit Regular Expressions auszukennen ist eine Fähigkeit die Deine Möglichkeiten am Computer vervielfacht. Und sobald es ausreichend Leute gäbe die sich mit Regulären Ausdrücken auskennen könnten Programmierer vermehrt Regex-Fähigkeit in ihre Software einbauen um mächtigere, nützlichere Apps zu erstellen.

Das gleiche gilt für's Programmieren. Stell Dir Software vor in einer Welt wo jeder grundlegende Programmierkenntnisse hat. Anstatt beschränkter Apps (=Applikationen, Programme) könnten wir universelle API'S (=Application Programming Interfaces, Programmierschnittstellen) haben. Die Leute könnten selbstständig jene verschiedenen Services und Programme zusammenfügen welche sie gerade brauchen. Dies würde die Mauern der User-Gefängnisse (wörtlich: walled gardens, ummauerte Gärten) einreißen welche Facebook, Twitter, Google und Apple errichtet haben um ihre Monopole zu behalten. Es hätte für das Informationszeitalter jene Auswirkungen welche Gutenbergs Druckerpresse für das Zeitalter der Aufklärung hatte.

Es gibt jede Menge Skills (=Fähigkeiten) zu erlernen um ausgwogen gebildet und umfassend auf das Leben vorbereitet zu sein: Ein Instrument spielen, öffentlich Vortragen, ein Budget erstellen, Erste Hilfe leisten, Gartenarbeit, überzeugend schreiben, Babysitten, Betrüger durchschauen et cetera et cetera.

Programmiern zu können ist einzigartig unter diesen Skills: Programmieren ist eine praktische Fähigkeit auf einem Werkzeug (PC) welches du bereits täglich benutzt. Programmeren zu lernen bietet sinnvolle intellektuelle Herausforderungen in Hülle und Fülle: diese zu überwinden trainiert dein Hirn. Programmieren zu können spart Zeit bei langweiliger Arbeit am Computer und öffnet die Augen für Möglichkeiten die bisher unrealisierbar waren. Deshalb solltest du wirklich programmieren lernen.

Ende der Übersetzung Originaltext: Inventwithpython/blog: no seriously why should i learn to code(11) von Al Sweigart. Übersetzung aus dem Amerikanischen von Horst JENS mit freundlicher Genehmigung des Autors.

Über den Autor

Al Sweigart

Bildrechte: Al Sweigart

Al Sweigart schreibt Programmierbücher über die Programmiersprache Python(12) die er heldenhafterweise nicht nur auf seiner Homepage(13) zum Anschauen und Downloaden bereitstellt sondern auch Creative-Commons (cc-by-nc) lizensiert.

Bücher von Al Sweigart: Alle Bücher sind auf seiner seiner Homepage(13) frei anschau- und downloadbar. Auf seiner Homepage akzeptiert Al Sweigart auch Spenden (Paypal, Bitcoin) und selbstverständlich freut er sich über Käufer seiner Bücher:

/var/www/horst/spielend-programmieren.at/data/pages/de/blog/2014/1004_al_sweigart_programmieren_lernen.txt · Last modified: 2017/10/12 09:40 (external edit)