Wie werde ich ein besserer Softwareentwickler

Der erste Gedanke den mich heute morgen beschäftigt hat ist:”Wie werde ich ein besserer Softwareenwickler”?. Darum folgt nun sozusagen das Wort zum Sonntag zu diesem Thema *g*.

Es gibt zahlreiche Möglichkeiten, wie man besser werden kann

– Bücher, Blogs und andere Quellen lesen
– Zur Schule gehen
– Pair Programming
– Selber programmieren
– …

Es gibt einen Punkt, der in der Aus- und Weiterbildung von Entwicklern meistens vergessen wird, nämlich das LESEN von Code

Eigentlich ist es doch erstaunlich, dass die Sparte der Softwareentwickler dass Gefühl hat, dass es reicht, wenn man selber Code schreibt oder irgendwelche Bücher studiert, um ein besserer Entwickler zu werden. Natürlich ist das schon ein guter Anfang.

In anderen Ingenieursdisziplinen wie z.B. in der Architektur, werden die besten Werke von den Grossmeistern studiert und analysiert. Es ist schon interessant, warum das in der Softwareentwicklung nicht gemacht wird.

Es gibt viele Quellen im Netz. Schnappt euch also ein Produkt, von dem ihr wisst, dass es gut programmiert ist und stellt folgende Fragen:

  • Was wurde hier gut gemacht? (Neue Erkenntnisse)
  • Wie ist der Aufbau?
  • Was kann ich neues lernen?
  • Was ist nicht so gelungen?
  • Seine persönlichen Fragen beantworten

Bei meiner Tätigkeit als Entwickler schiessen mir immer wieder neue Fragen durch den Kopf (Wie viel PHPDoc, wie viel Abstraktion, wie soll ich Variable benennen, wie soll ich die Teststruktur aufbauen, …). Wenn man diese Frage selber nicht genügend beantworten kann, wendet man sich an einen Kollegen. Wenn man auch vom Kollegen keine Antwort kriegt und auch sonst nicht fündig wird, dann bestimmt man irgendwas, die Zeit drängt ja meistens.
Diese Fragen kann man aber im Hinterkopf behalten und versuchen, sich diese Fragen, bei einer Fremdcodeanalyse wieder zu stellen. Man hat ja so viele Beispiele im Netz, wieso also nicht von den besten lernen?

9 Responses

  1. Ich habe mich auch schon gefragt, wie ich an gute Software gelange. Habe letztens noch eine Stellenanzeige nach gutem Code aufgegeben, aber leider haben sich zu wenig darauf gemeldet 🙂 Momentan schaue ich mir das Symfony-Framework genauer an. Wirklich gelungen, bin echt begeistert. Aber ich bin genauso immer auf der Suche nach gutem Code. Für Tipps wäre ich auch dankbar.

  2. Das Lernen einer Programmiersprache geht ja am Anfang auch über das Lesen von fremdem Quellcode. Meine ersten Progrämmchen in einer Programmiersprache haben meistens aus zusammenkopieren von irgendwelchen Codeschnippseln bestanden, welche ich dann versucht habe zu verstehen und ein paar Sachen geändert habe. Wenn man die Programmiersprache dann “kann” meint man, das lesen von Quelltexten sei nun überflüssig. Ist fast wie beim Autofahren: solange man am Lernen ist, ist man bemüht alles richtig zu machen. Wenn man das Gefühl hat man “kanns”, dann macht man garantiert die erste Beule ins Auto.

  3. Mein aktuelles Verständnis von gutem Code ist folgendes:
    – Der Code ist einfach zu lesen und zu verstehen (natürlich muss man die Sprache und den Syntax kennen)
    – Der Code ist testbar (bzw. wird mit Unit tests getestet)
    – Es existieren keine (wenige) Code Smells
    – Es berücksichtigt das Open Closed Principle (offen für Veränderungen und geschlossen für Modifikationen) und andere Clean Code Prinzipien

    Ich habe folgende Strategie um guten Code zu finden:
    Man nehme Leute die in der Szene einen guten Ruf geniessen und studiere deren Werke.
    Allgemein: Kent Beck, Martin Fowler, Robert C. Martin, …
    Deutsche PHP Gemeinde: Sebastian Bergmann, Kore Nordmann, Manuel Pichler

    Diese Werke wurden von verschiedenen Leuten in der Gemeinde als guter Code deklariert:
    – Symfony Framework
    – Zend Framework
    – PHP Unit (Sebastian Bergmann)
    – twircd (Kore Nordmann)

    Btw, ich bin auch ständig nach der Suche nach gutem Code, bin also auch für Tips offen 🙂

  4. Salute Ralph

    Sicherlich ist es interessant für dich, die andere Sicht anzuschauen:
    http://www.aspnetzone.de/blogs/peterbucher/archive/2009/05/01/woran-erkennt-man-einen-guten-entwickler.aspx

    Du kannst dir auch gerne mal den Quellcode von LightCore anschauen.
    Ein Schweizer Produkt ;-). Nein, es ging mir vorallem darum, möglichst sauberen Code zu schreiben, Unittests zu benutzen, etc…

    Es ist sicher nicht perfekt, wie so ziemlich alles, allerdings kann man so sicherlich einiges über Reflection lernen.

    http://lightcore.ch/ (Dort unter Download per SVN die letzte Version auschecken).

    Grüsse aus Luzern, Peter

  5. Hi Peter

    Danke für deinen Post. Ich kann Deinen Gedanken im Post voll und ganz zustimmen. Im gross und ganzen ist es halt so, dass man als Softwareentwickler einen ziemlich grossen Rucksack haben muss.

    Habe noch den lightcore Source kurz angeschaut. Er macht auf mich einen sauberen und strukturierten Eindruck. Kann aber ehrlich gesagt nicht viel mehr über die Qualität aussagen, da ich kein Microsoftisch kann 🙂 Zum Glück werde ich mir die .NET Technologien während des Studiums noch aneignen dürfen. Danach kann ich auch endlich den Code vernünftig lesen, wenn ich die Grundlagen beherrsche.

    Wenn man die Grundkonzepte einer Sprache beherrscht, sollte man dann auch von jedem Author einer beliebigen Sprache etwas lernen und mitnehmen können und da die .NET Welt relativ gross ist, lohnt es sich auch diesen Syntax zu beherrschen.

Leave a Reply

Your email address will not be published. Required fields are marked *