Woran erkennt man eigentlich, dass es Zeit ist, sich selbst auf die Schulter zu klopfen und anerkennend festzustellen: Ich bin echt ein klasse Programmierer? Wir alle kennen die Ratgeber, die uns dabei helfen sollen, schlechte Programmierer zu enttarnen. Doch wie sieht es andersherum aus - warum sind gute Programmierer so gut wie sie sind? Auch C. Lawrence Wenham von FragranceNet.com hat sich zu diesem Thema Gedanken gemacht.
Ein guter Programmierer hat natürlich den Drang, erst einmal zu experimentieren, was sich vor allem durch furchtloses Trial and Error zeigt. Anstatt erfahrene Kollegen zu fragen, probiert ein Programmierer von Format aus, bildet sich in Nebenprojekten fort, lernt neue Sprachen und Frameworks, hat keine Scheu, ungewöhnliche Lösungen zu präsentieren und kennt vor allem Arduino. Ein sicheres Zeichen – wenn auch kein Beweis – ist es, wenn sich auf dem Tisch eine Ansammlungen von ThinkGeek-Gadgets angesammelt hat.
Allen, denen noch ein kleiner Schubser zum extrovertierten Geek fehlt, empfiehlt Wenham übrigens einen Besuch im Vergnügungspark. Ihm selbst habe eine Fahrt in der Drop Zone im King’s Dominion Freizeitpark geholfen. Rollercoaster Tycoon zählt nicht.
Ein guter Programmierer ist zudem nicht emotional an eine Sprache gebunden, sondern nutzt Technologien, die ihm helfen und praktisch sind und programmiert nicht aus sentimentalen Gründen immer wieder mit den gleichen Algorithmen. Manchmal ist es hilfreich, auch wochenlange Arbeit über den Haufen zu werfen. Bei Kritik zeichnet sich der gute Programmierer dadurch aus, dass er nicht auf die Person guckt, die Fehler herausstreicht, sondern auf den Bildschirm, um alle Vorschläge nachzuvollziehen.
Selbst wenn es auf den ersten Blick übertrieben scheint, empfiehlt Wenham den eigenen Lieblingscode vollständig zu löschen, um ihn dann auf andere Weise neu zu schreiben. So bleibt man flexibel.
Manchmal lohnt es sich auch, Programme zu reparieren, die problemlos funktionieren. Denn jedes Programm kann hier und da eine Verbesserung vertragen, vor allem da sich auch die Ansprüche an die Programme ständig verändern. Deshalb ist es auch wichtig, die Meinungen der Nutzer einzuholen und sich aus neuen Perspektiven mit einem Problem auseinanderzusetzen. Verbesserungen eines Programms können auch Vereinfachungen sein oder Streichungen von unnötigen Snippets, ohne dass man die Funktion verändert.
Wer ein guter Programmierer sein möchte, kann das Aufgeben schon einmal aufgeben, denn jeder Programmierer kennt die Faszination des Unverständlichen und des Unbekannten. Im schlechtesten Fall trainiert das Auseinandersetzen mit einem unbekannten Programm das Denken, im besten Fall kann man das Gelernte irgendwann einbringen. In jedem Fall profitiert ein Programmierer von seiner Neugierde.
Schließlich ist es auch empfehlenswert, die eigenen Kenntnisse weiterzugeben. Dies zwingt einen dazu, alles zu ordnen und verständlich zu erklären und festigt gleichzeitig das Wissen. Wie wäre es zum Beispiel mit einem Blog oder einem aktiven Wikipedia-Konto?
Wenhams Blog-Post wurde von den Lesern zum Teil harsch kritisiert. So postete Kirinan im Ycombinator etwa: „Sign that you will have a successful career and will get things done: you didn’t listen or care what the list was.“
Aber auch andere kritisierten die Liste als willkürlich zusammengestellt und allein die persönliche Meinung Wenhams widerspiegelnd.
Natürlich handelt es sich bei den hier aufgeführten Punkten um persönliche Eindrücke, die als Richtlinien dienen und einen gewissen Spielraum erlauben. So ist beispielsweise ein MSDN oder StackOverflow Account genauso akzeptabel wie ein Wikipedia-Eintrag. Entscheidend ist die öffentlich Partizipation, wie Wenham auf die Kritik der Leser zu verstehen gibt. Letztlich zeichnet sich ein guter Programmierer vor allem dadurch aus, dass er ein Programm bereitstellt, das dem Kunden gefällt und die geforderten Aufgaben erledigt. Hier hat jeder Programmierer eine eigene Herangehensweise, Tricks und Tipps, die letztlich jedoch einen Nenner finden, um zu einem guten Ergebnis zu kommen.
Aufmacherbild: Flat design colorful vector illustration concept for personal development von Shutterstock / Urheberrecht: Vector Goddess