< heise realigned | The new spam: BL-Tippspiele >

13 Aug 2008 Die chinesische Mauer des Programmierens

Vorweg: Ich kenne natürlich den Spruch »Programmieren lernt man nicht aus Büchern. Programmieren lernt man durch Programmieren.«, und ich finde ihn durchaus richtig und nachvollziehbar. Nur muss man eben erst einmal ans Programmieren kommen, und dazu muss man sich ein gewisses Grundwissen – zumindest in meinem Falle, da ich eine »externe« diesbezügliche Schulung derzeit schlicht nicht finanzieren kann – erst einmal anlesen. Das ist nicht das Problem – oder eigentlich doch.

Konkret ginge es um PHP und Javascript. Zu beiden Sprachen habe ich bereits mehrere Bücher in die Hand genommen und auch durchgearbeitet, und genau da ist schon das erste Problem: Viel mehr als die absoluten Grundbegriffe der Sprache vermittelt kaum ein Buch. Praktisch einsetzbare Beispiele sind rar und meist von bestenfalls theoretischem Nutzen, zudem oft äußerst simpel und generell bereits anderweitig als Open Source-Lösung verfügbar (z.B. das beliebte Formmail-Skript in PHP oder JS-Codeschnippsel für meinethalben einen Akkordion-Effekt).

Das drückt wiederum äußerst auf die Lernmotivation und lässt die Lernkurve unbezwingbar steil erscheinen. Frage(n) an die versierten Fachkräfte in meiner Leserschaft:

  • Ist das einfach so? Muss man sich durch die Nachprogrammierung zahlreicher Minimalbeispiele wühlen, um an »das gute Zeug« zu gelangen? Wenn ja: Wie, zum Teufel, kommt man da hin?
  • Habe ich eventuell einfach das falsche Lehrmaterial? Gibt es Empfehlungen für Lehrwerke (in beiden Sprachen), die auch Nicht-Informatikstudenten einen relativ leichten Zugang vermitteln, ohne dass man sie nach 2 Stunden frustriert in die Ecke pfeffert?
  • Sehe ich es eigentlich richtig, dass man im Grunde erstmal eine der beiden Sprachen meistern sollte – und dann letzten Endes in der anderen nur gucken muss, wie bestimmte sprachliche Konventionen anders gehandhabt werden und für welche Einsatzzwecke sie besser/schlechter geeignet sind?

Und bitte: Keine Flamewars, welche Sprache besser ist. Kein »Lern erstmal Perl« – been there, tried that, gescheitert. Und selbstverständlich keinerlei Kommentare über die Unfähigkeit und potentielle Intelligenz des Verfassers dieser Zeilen! ;-)

0 Trackbacks

Trackback-URL

  1. No Trackbacks

3 Comments

RSS Feed (Comments) for this entry

  1. * Siegfried (13.08.08, 12:43):

    Ich kenne das :)

    Der Trick besteht darin, sich ein Projekt auszudenken, an dem man genügend persönliches Interesse hat. Und dieses dann in der zu erlernenden Sprache durchziehen. Der erste Versuch ist meist nicht besonders toll, trotzdem sollte man es bis zum Ende (d.h. bis zm Funktionieren) durchziehen. Danach wegwerfen und noch mal richtig machen. Danach kann man die Sprache.

    So jedenfalls habe ich das immer gemacht.

  2. * Dirk Deimeke (13.08.08, 17:27):

    Da kann ich Dir nur Recht geben. Genau das halte ich auch für den richtigen Ansatz. Wenn keine konkrete Aufgabenstellung vorhanden ist, ist es sehr mühsam.

  3. * DrNI (13.08.08, 16:24):

    Die Grundlagen des Programmierens sind überwiegend sprachunabhängig. Man sollte sich mit Datenstrukturen und OOP auskennen und Algorithmen anhand der wesentlichen Beispiele verstanden haben. Dabei hilft es (leider), sich durch trockene Such- und Sortieralgorithmen zu wühlen, auch einfache Parser können interessant sein. Dabei sollten einem die wesentlichen Dinge begegnen, z.B. Stacks, verkettete Listen, Baumstrukturen verschiedener Art. Danach kann man sich sicherlich als “fairly good hacker” einstufen.

    Wer es sich richtig dreckig geben will, der sollte sich ausgiebig mit Software-Design und Software-Architektur befassen. Wenn man das durch hat, dann geht’s erst richtig fett ab. Dann schreckt einen nix mehr.

    Programmiersprachen an sich sind bei all dem sekundär. Solange sie im Paradigma der imperativen Sprachen bleiben (wozu ich frech fälschlicherweise OOP mal dazuzähle).

Add Comment

Please notice the comment directions.

Directions

Textile-formatting allowed
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
Gravatar, Twitter, Identica, Favatar author images supported.

Mandatory fields are marked with a *.

Comments including at least one link will be moderated. Comments including at least three links will be blocked. Sorry – spam protection.

Using noses in emoticons might lead to unexpected results in conjunction with Textile, especially in the middle of a sentence – please use :) or ;) etc. instead.