"Übung macht den Meister!" sagt ein deutsches Sprichwort und wird häufig zitiert, wenn es um die Erlernung von "Perl" als Programmiersprache für komplexe Web-Anwendungen geht. Doch mutet die Forderung nach praktischer Auseinandersetzung mit der Programmiersprache - trotz unbestrittener Notwendigkeit - leider im Fall "Perl" auch wie eine Ausrede an.
Der Praktiker empfiehlt das praktische Üben, weil sinnvolle Methoden über die Autodidaktik hinaus kaum vorhanden sind.
"Perl kann lernen, wer lernen kann". Oder anders: Perl läßt sich leicht erlernen, wenn man Autodidakt ist.
Literatur gibt es viel. Gute Methoden sind meines Wissens nicht vorhanden.
Dieser Beitrag will anhand von KUMON, einer japanischen Lehrmethode für Mathematik, aufzeigen, wie ein Vorgehen zur Erlernung von Perl geschaffen werden kann, das folgende Kriterien erfüllt:
- Schrittweises Vorgehen
- Systematische und didaktisch durchdachte Lerneinheiten
- Meßbare Ergebnisse und zwischenergebnisse.
- Damit auch ständige Erfolge bei Bewältigung einer Lerneinheit.
- Möglichkeit des invidividuellen Lernfortschritts ohne Zeitdruck.
- Optional: Ausnutzung der Gruppendynamik ohne Nachteile von "Bremsereffekten" durch langsamere Schüler.
Diese Vorteile lassen sich mit der KUMON-Methode erreichen. KUMON funktioniert so:
- Es gibt für alle Kenntnisstände Übungsblätter mit vorgegebenen Aufgaben. In der Regel handelt es sich um Multiple-Choice-Aufgaben.
- Die "Lernwilligen" (bei KUMON meist Schulkinder) erhalten Aufgabenbögen, die zu dem eigenen Fähigkeitsniveau passen und lösen diese.
- Der Schüler erhält das nächste Aufgabenblatt erst dann, wenn das aktuelle Aufgabenblatt in einer vorgegebenen Geschwindigkeit und komplett fehlerfrei gelöst wurde.
- Enthält das Aufgabenblatt nur einen einzigen Fehler, muss es komplett neu ausgefüllt werden. Dadurch enthält KUMON ein starkes repetitives Element, dass ohne Beteiligung leicht als lästig oder unsinnig empfunden wird. Genau die Wiederholung macht jedoch den langfristigen Lernerfolg aus.
Für den Transfer der Kumon-Methode auf eine Lern-Systematik für "Perl" braucht es:
- Eine umfangreiche Sammlung mit Aufgabenblättern für viele Fähigkeits-Niveaus
- Eine Applikation zur Messung des Erfolgs beim Lösen der Aufgabenblätter (in vorgegebener Zeit und ohne einen einzigen Fehler
- Eine zentrale Stelle zur Ausgabe von Zertifikaten ab bestimmten Levels zum Nachweis des eigenen Lernerfolgs gegenüber dritten (z.B. in Bewerbungen)
- Eine kontinuierliche Weiterentwicklung der Lerneinheiten durch die Gemeinschaft der interessierten Perl-Entwickler
Es gibt bereits ein Online-Tutorial, das zwar keine Prüfeinheiten, dafür aber einen Inhalt enthält, der als Standard-Werk angesehen werden könnte - SelfHTML von Stefan Münz. Wäre es nicht ein nettes Ziel, ein ähnliches Tutorial mit eben den nicht zuletzt sehr motivierenden Lerneinheiten zu entwickeln?
Vielleicht läßt sich danach für SelfHTML ja auch eine Sektion mit Prüfeinheiten erstellen. Hier ein paar Gründe, warum solche Prüfeinheiten wirklich wichtig sind:
- Prüfeinheiten bedeuten Kontrolle.
- Kontrolle bedeutet Messbarkeit.
- Messbarkeit macht Leistung transparent.
- Transparente Leistung wird honoriert. Das heißt nicht nur Geld verdienen, sondern auch Fortschritt, Anerkennung, Wettbewerb
- Anerkannte Prüfungseinheiten spornen zu mehr Leistung und mehr Weiterbildung an.
Wer interessiert ist, melde sich gerne bei mir oder in einer der folgenden Diskussionsforen zum Meinungsaustausch. //SEIBERT/MEDIA steht im übrigen gerne als Sponsor für eine Qualifizierungsinitiative von "Perl-Entwicklern" zur Verfügung. Ein solches Sponsoring könnte umfassen: die Domain www.programmieren.de zur Nutzung
Diskussionsforen, in denen über diese Idee diskutiert wird:
- Beitrag im Forum von www.perl-community.de
- Eintrag im Wiki von Perl Mongers erstellt
- Vorschlag in Mailing-Liste der deutschsprachigen Perl-Mongers veröffentlicht
- Diskussionsfaden in openBC
Weiterführende Quellen für Perl-Programmierer:
- learn.perl.org - Englischsprachige Einführung für Perl-Programmierer
- Buchtipp: Go To Perl 5 von Michael Schilli
- Buchtipp: Perl Kochbuch von Tom Christiansen und Nathan Torkington
- Buchtipp: Programmieren mit Perl von Larry Wall
- Programmieraufgaben für Perl-Anfänger von Renée Bäcker
- Englischsprachige Perl-Tutorials auf www.perlmonks.org
- Ausführliche Perl-Tutorien von www.perl-community.de
- Tipps & Tricks zu Perl von www.perl-community.de
- Über die Notwendigkeit "use strict" beim Perl-Programmieren zu verwenden
- Dokumentation zur Perl-Programmiersprache in englischer Sprache (Perldoc). In deutscher Sprache gibt es eine unvollständige version.
- Buch "Programmieren lernen mit Perl" von Joachim Ziegler als Online-Text und mit kostenlosem Download.
- Bereich "Objektorientierte Programmierung" im "Deutsche Software Entwickler Wiki"
- Wikipedia-Beitrag zu "Programmieren"
- Website über Programmieren lernen von Alan Gauld (Übersetzung ins Deutsche von Bruno Schäfer)
- Highscore - Programmieren lernen - Website mit hochwertigen Online-Büchern, die in der Aus- und Weiterbildung zum Software-Entwickler unterstützen können. Alle dort gelisteten Online-Bücher sind unter einer Creative Commons-Lizenz veröffentlicht und können von Ihnen kopiert und weitergegeben werden.
- Perl Workshop 2006
Allgemeine Quellen für diesen Artikel:
- Google hat bereits mit seinem "AdWords Learning Center" eine ähnliche wie die von mir angestrebte Platform mit Lerneinheiten, Quiz und Prüfungen geschaffen.
- KUMON - Website der japanischen Lehrmethode für Mathematik
- Englische Version der KUMON-Website.
- Wikipedia-Beitrag zu "Programmieren"
- Wikipedia-Beitrag zu "Programmierer"
—–Ursprüngliche Nachricht—–
Von: Martin Seibert
Gesendet: Sonntag, 10. Juli 2005 13:40
An: ‘german-pm@pm.org’
Betreff: Idee für Perl-Tutorien mit Prüfeinheiten
Hallo Perl-Gemeinde!
Mein Name ist Martin Seibert. Ich bin leider kein Perl-Programmierer. Ich arbeite aber in einem Unternehmen, dass mehr als 20 Perl-Programmierer beschäftigt. Wir leiden unter der Schwierigkeit, unsere Mitarbeiter effektiv (und effezient) mit Perl-Kenntnissen zu versehen, die zur Erstellung von komplexen Web-Applikationen befähigen.
Wir verfolgen gleiche Ziele: “Das Erlernen von Perl als Programmiersprache und die Weiterbildung und Qualifikation soll verbessert werden.”
Mir schwebt der Aufbau eines in der Perl-Gemeinde abgestimmten Lernkonzepts mit Prüfungseinheiten vor. In meinem Blog habe dazu bereits einen umfangreichen Artikel verfasst. Ich würde mich freuen, wenn Ihr das mal kommentieren würdet und wir gemeinsam auf dem Weg zu besseren Perl-Programmierern vorankämen.
Hier der Link zu meinem Blog und den Ideen:
http://www.kalyxo.de/2005/07/seibertmedia/schnell-perl-programmieren-lernen/
Viele Gruesse
Martin Seibert / Dipl.-Kfm.
//SEIBERT/MEDIA/CONSULTING
ToDos:
– Artikel ins Englische übersetzen und der englischen Perl-Gemeinde vorstellen.
– http://perlmonks.org/?node=Perl%20News
– http://learn.perl.org/contribute/ and http://learn.perl.org/about/
– Sponsor werden: http://www.perl-community.de/sponsoren.html
– Einen dieser Herren zu einer “Schirmherrschaft” überreden: http://www.pm.org/invite/index.html
– Warum gibt es hier keine deutschen Einträge? 🙁 http://www.perltraining.org/
In einem wirklich überwältigenden Feedback zu einer Diskussion über “Perl-Tutorien mit Prüfeinheiten schaffen, Idee für eine Lernmethode für Perl” gab es eine ganze Reihe von Ideen von den Programmierern, die hier mal zusammengefasst werden sollen:
– Man kann sich an Merlyns “Einführung in Perl” orientieren, um Aufgaben zu erstellen.
– Mit klassischem CGI (CGI.pm) beginnen und darauf achten, dass verstanden wird, dass man anstelle von HTML 3 und HTML 4 besser XHTML und CSS nutzen sollte.
– Als Übungsaufgaben: Validierung von übergebenen Formulardaten, Encoding, Persistenz (Datenbank-Verbindung, Sessions, Cookies), Template-Erstellung, -Behandlung und -Parsing, mod_perl
– Einführung und Erläuterung von Application-Frameworks wie Catalyst
– Schaffung der Möglichkeit richtige Perl-Programme einzureichen, bei denen dann einfach nur abgeprüft wird, ob das Ergebnis korrekt ist. Dabei ist es egal, ob das Code sauber oder gut programmiert wurde.
– Einführung und Abfragen für Unit-Tests
– Es sollte versucht werden, Kreativität, aktives Programmieren und “learning-by-doing” zu fördern, zu fordern und zu testen.
– Entwicklung eines Gästebuchs als Aufgabe für ein Perl-Anfänger.
– Aufgaben unter http://perlseiten.renee-baecker.de nutzen.
– Abbildung von Code-Teilen und Abfrage der Interpretation der Funktionen und Wirkungen des Programms. Anschließend muss es natürlich eine Erklärung geben, was passiert und warum Antworten richtig oder falsch sind.
– Unter Verwendung von verschiedenen Funktionen und Routinen einen Wert einer Variable mit dem Code verändern und anschließend nach dem richtigen Ergebnis fragen (Splits, Arrays, Pattern Matching, …).
– Analyse des folgenden Quellcodes und dessen Erklärung:
#!/usr/bin/perl
use strict;
use warnings;
$hallo = “Welt”;
print “Hallo $hallo”;
– Beantwortung von Fragen, die gar nicht explizit gestellt wurden, durch Code-Beispiele, wie Sie unter http://www.koders.de zu finden sind.
– Vorstellung und Prüfung über innovative Techniken wie CGI::Application, Cataclyst oder Wx
– Aus dem Buch “Perl lernen . Anfangen, Anwenden, Verstehen” von Allen Wyke, Thomas die Fragen und Antworten ansehen und abgewandelt übernehmen.
Es gibt einen englischsprachigen Test, jedoch mehr für erfahrene Programmierer. Ich habe es mir noch nicht anschauen können, aber hier der Link: http://brainbench.com/xml/bb/common/testcenter/taketest.xml?testId=2365
http://buecher.lingoworld.de/it_komp/frag5.html kann man zumindest teilweise als Vorbild nehmen.
Ich weiß, ich wollte schon längst was online stellen, aber zur Zeit bin ich arg im Klausur-Stress. Die Entwicklung geht bald weiter…
– Sage – Levels fuer Systemadministratoren
– Vergleichbare Skill-Levels für SysAdmins
– 7 levels of a perl programmer
– humoristisch aber gut für Anhaltspunkte
– LPI – Linux Professional Institute
– Multiple Choice
– 100,00 Euro pro Pruefung
– perlmonks.org – Forum
– Levels fuer Teilnahme, inkl. Bewertung
– Levels koennte man praemieren
Guten Tag Herr Seiberts,
Mein Name ist Imaki und arbeite bei KUMON Deutschland GmbH als Team Leader des Communication Teams.
Mein Kollege hat mir darauf hingewiesen, dass Sie in Ihrer Website über unsere Methode erwähnen. Ich finde es interessant, dass Sie beim Erlernen der Perl-Programmierung eine Korrelation mit der KUMON-Methode gefunden haben.
Darf ich Sie fragen, wie Sie KUMON-Methode kennengelernt haben? Von Ihrer Antwort kann ich bestimmt etwas lernen, was ich für die Verbesserung meiner Arbeit nützlich sein kann.
Ihnen wünsche ich einen schönen Tag.
Mit freundlichen Grüßen
Mayumi Imaki