AZUBIT Daniel | Fachinformatiker/in - Anwendungsentwicklung | Köln

Programmieren, programmieren, programmieren….

Nun sind schon acht Monate meiner Ausbildung hier im IT-Systemhaus in Köln herum. Da denke ich, wird es Zeit, dass ich Euch auch mal an etwas teilhaben lasse, das direkt mit meinem Ausbildungsberuf zu tun hat: dem Programmieren. Momentan befinden wir Azubis uns nämlich seit Anfang Februar im Programmierblock des Rahmenplans und wie das aussieht, möchte ich Euch hier mal näher erklären.

Eigentlich, wenn man es genau nimmt, sogar bereits seit Anfang Januar. Den kompletten Januar haben wir nämlich in der Berufsschule verbracht, wo wir die ersten offiziellen Einblicke in die Programmierung bekamen. Unter anderem erhielten wir eine Einweisung in Programmierumgebungen, erste Einblicke in Algorithmen und – ganz wichtig – einen soliden Einstieg in die Dokumentation eines Programms. Aber wir haben natürlich auch programmiert. Kennt jemand das Lied „99 bottles of beer on the wall“? Es wiederholt sich immer und immer wieder, mit jeder Strophe ist es eine Flasche Bier weniger und am Ende kommt eine stark veränderte Strophe. Darauf basierend haben wir z.B. ein Programm geschrieben, das jede dieser Zeilen anzeigt. Das war im ersten Augenblick in etwa so bahnbrechend interessant, wie es sich jetzt hier liest, aber je mehr man über das Problem nachgedacht hat, desto mehr kam man ins Grübeln – und man hat tatsächlich etwas dabei gelernt.

Und was macht man jetzt außerhalb der Schule in so einem Programmierblock? Tja. Ihr müsst jetzt stark sein: Man sitzt am Rechner und programmiert! Wer hätte es gedacht. Ganz grob gesagt, war es das auch schon, was den Beitrag zu diesem Block etwas kompliziert macht. Aber gehen wir es mal anders an.

Ich versuche mal ernsthaft und detaillierter zu erklären:
Programmieren ist – mittlerweile – erst mal nichts anderes, als eine Sprache wie Englisch zu erlernen. Ok, ok, ich weiß: Eigentlich sollte ja nun jeder, der diese Zeilen hier liest, in seinem Leben Englisch als erste Fremdsprache gelernt haben. Wenn man davon ausgeht, dass wir alle das seit der fünften Klasse, also für locker fünf bis acht Jahre unseres Lebens, auch getan haben, müsste man auch davon ausgehen, dass wir alle prima Englisch sprechen… Naja, wir kennen alle die Realität. Die Meisten sprechen es mehr schlecht als recht und es soll sogar Leute geben, die denken, dass das englische Wort für Bürgermeister der Burger King ist.

Aber das liegt ganz einfach daran, dass man eine Sprache auch sprechen muss, um sie zu lernen. Es reicht nicht brav im Unterricht zu sitzen, seine Hausaufgaben zu machen und die Klausuren zu bestehen. Man muss auch Bücher lesen, Filme gucken und vor allem: sprechen.
Und genau so ist es mit dem Programmieren. Ich kenne viele Leute, die sich ein Buch wie „Jetzt lerne ich Programmiersprache XY“ kaufen, begeistert lesen und etwas programmieren und wenn man sie nach einem halben Jahr fragt, wie es denn voran geht, dann kommt etwas wie: „Ja, ne, hab das nicht mehr verfolgt.“. Jeder wiederum den ich kenne, der bereits das Programmieren beherrscht, sagt das Gleiche: „Um Programmieren zu lernen, muss man Programmieren.“ Unsere Lehrer sagen übrigens nichts anderes.

Programm

Und genauso sieht unser Alltag momentan aus. Wir bekommen alle möglichen kleinen Aufgaben und mit jeder dieser Aufgaben lernt man entweder Stück für Stück etwas komplett Neues oder man vertieft Grundlagen, die man eh immer und immer wieder braucht. So ist man nach bereits ein oder zwei Tagen an dem Punkt, an dem man gewisse Dinge problemlos im Kopf hat und damit an einer sehr wichtigen Stelle:

Man beschäftigt sich mit seinem „Code“ und bekommt so ein Gefühl für die ganze Arbeit. Man fängt an Fragen zu stellen: Warum ist das so? Das ist alles so lang, geht das nicht kürzer? Warum macht man das ausgerechnet so und nicht so? Warum kann ich nicht…?

Wenn man erst einmal an diesem Punkt ist, ist einem vielleicht gar nicht bewusst, dass man bereits den schwierigsten Teil hinter sich gelassen hat. Denn an diesem Punkt fängt man an selbst Sachen zu lernen, guckt über den Tellerrand der Aufgaben und baut im Kopf die Brücken und Strukturen, auf denen dann alles errichtet wird, und probiert ständig Neues. Man bekommt plötzlich Ideen, was man alles machen *könnte*: „Warum müssen die Daten, die mein Programm verarbeitet, automatisch eingelesen werden? Eigentlich könnte ich doch auch einen Dialog einbauen und eine Datei auswählen, die dann verarbeitet wird.“, oder: „Hm, eine Fehlermeldung wäre nicht schlecht, wenn die Datei nicht unterstützt wird oder Fehler hat.“. Dann versucht man diese Ideen umzusetzen. Hier ist es wichtig zu verstehen, dass nicht alles was man probiert funktioniert. Egal ob aus Mangel von Erfahrung, Einsicht oder weil es schlicht und ergreifend nicht möglich ist. Man darf sich nicht entmutigen lassen.

Wer mich kennt, der weiß, dass ich fließend Englisch spreche, aber jeder sagt dann auch: „Ja klar sprichst du super Englisch, du hast ja auch in Kanada und den USA gelebt!“, aber keiner versteht, dass ich das schon vorher konnte. Dass ich als Kind einfach Wörterbücher neben dem PC hatte, um alte Spiele zu verstehen – die waren nämlich sehr textlastig und nur auf Englisch erhältlich. Und wenn man dann ein paar Wörter im Kopf hat merkt man, dass man plötzlich die Comics des älteren Bruders lesen kann und dann kann man die Filme mit Untertiteln plötzlich nachvollziehen…. und… und… und irgendwann spricht man fließend Englisch und geht in Kanada zur High School.

So ist es mit dem Programmieren. Nur ohne High School (leider).

Um uns beim lernen zu helfen, haben wir allerdings auch einen unserer Programmier-Cracks aus dem IT-Systemhaus Köln zur Seite. Er macht mit uns kleinere Schulungen und Einführungen, gibt uns Aufgaben, geht mit uns – auch einzeln – Aufgaben durch und nimmt sich auch die Zeit für Telefongespräche und Teamviewer-Sitzungen, falls er mal nicht persönlich anwesend sein sollte.

Tja, jetzt hab ich mehr über das Lernen an sich geschrieben, als über das eigentliche Programmieren, aber vielleicht hilft es ja dem einen oder anderen dabei, den ersten großen Schritt zu wagen und einfach mal drauf los zu programmieren. Es macht nämlich verdammt viel Spaß, wenn man feststellt, dass Computer durchaus machen, was man will und wie man es will.

Wie immer, bis zum nächsten Mal und schreibt einfach wenn ihr Fragen habt.

Daniel

2 Kommentare

Hallo Stefan,

danke für Deinen Kommentar und ich kann Dich beruhigen: das Codebeispiel, das Du dort siehst, ist einfach das Erstbeste, was ich in meinen Aufgaben fand. Denn es sollte etwas länger und vor Allem umfangreicher sein.
Dass da teilweise haarsträubende Konstrukte rauskommen, lässt sich leider erst mal nicht verhindern. Das merke ich dann erst, wenn mein Kollege drüber guckt und mir die bessere Version zeigt. Alternativ, wenn ich es selbst SO fürchterlich finde, dass ich anfange nach anderen Wegen zu suchen.

Aber Du hast definitiv recht! Die Feinheiten kommen später, wenn man die Grundlagen endlich flüssig beherrscht. Meine Versuche zu mehrdimensionalen Arrays zeige ich Dir besser (noch) nicht….

Ganz liebe Grüße,
Daniel

P.S.: Eine tolle Webseite hast Du da!

Hallo Daniel,

ich hoffe, dass ihr in eurem Kurs auch noch ein wenig auf „guten“ Code eingeht. Dein Codebeispiel ist nämlich noch recht optimierungsbedürftig: Code in kürzere Methoden auslagern, keine verschachtelten ifs nutzen, boolesche Vergleiche kürzen (Stammkunde == true ist überflüssig).

Aber wichtig ist ja auch erstmal, dass man überhaupt programmieren lernt. Die Feinheiten kommen dann später :-)

Viele Grüße!
Stefan

Hier ist Platz für deinen Kommentar.