7 Schritte um ein guter Programmierer zu werden
Manchmal scheitert der Erfolg an einer falschen Einstellung. Fragt man, was einen guten Programmierer letztlich ausmacht, ist die Antwort leider viel zu oft: Talent. Dabei kann jeder ein guter Programmierer werden, sofern ein paar einfache Regeln befolgt werden.
1. Lernen Sie, wie man Fragen stellt und wann man Fragen besser vermeidet.
Wer nicht fragt, bleibt dumm. Das lernen wir schon im Kindesalter. Was wir aber nicht lernen ist, wirklich gute Fragen zu stellen. Eine gut gestellt Frage ist präzise, einfach, kurz aber detailreich genug. Nur wer weiß, was er wissen will, wird dies am Ende auch erfahren. Manchmal kann es aber besser sein, Fragen zu vermeiden oder sie zumindest erst einmal zurückzustellen, um zu versuchen, ein Problem erst einmal selbst zu lösen. Durch das Aufschieben der Frage können relevante Informationen gesammelt werden, ein Problem genauer Untersucht und analysiert werden. Dies kann schließlich dazu führen, eine bessere Frage zu stellen. Es erfordert viel Übung, gute Fragen stellen zu können oder zu erkennen, wann man Fragen besser vermeiden oder aufschieben sollte. Die Fähigkeit, gute Fragen stellen zu können, ist für die Entwicklung als Programmierer essentiell.
2. Lassen Sie niemals einen Scherbenhaufen zurück!
Oftmals müssen Softwareprojekte unter Zeitdruck realisiert werden. Doch dieses sollte niemals dazu führen, sorglos schlechten Code zu produzieren. Schlechter Code ist auch immer ein Signal an nachfolgende Projekte, seien es die eigenen oder Projekte anderer. Hat sich ein schlechter Stil erst einmal etabliert, denken sich andere Entwickler, dass auch sie damit durchkommen. Am Ende steht ein Ergebnis, mit dem niemand zufrieden sein wird, weder die Programmierer noch die Nutzer – ein Scherbenhaufen. Dem Staatsmann und Erfinder Benjamin Franklin wird folgender Satz zugeschrieben:
Die Bitterkeit schlechter Qualität verbleibt noch lange, nachdem die Süße des niedrigen Preises vergessen ist. Der niedrige Preis ist hier der vermeintliche Gewinn der Zeitersparnis, wenn Entwickler etwas nur sehr nachlässig implementieren. Die Arbeit scheint schnell erledigt, doch der Ärger, den schlechte Software verursacht, bleibt noch lange bestehen.
Die Bitterkeit schlechter Qualität verbleibt noch lange, nachdem die Süße des niedrigen Preises vergessen ist. Der niedrige Preis ist hier der vermeintliche Gewinn der Zeitersparnis, wenn Entwickler etwas nur sehr nachlässig implementieren. Die Arbeit scheint schnell erledigt, doch der Ärger, den schlechte Software verursacht, bleibt noch lange bestehen.
4. Was kaputt gehen kann, geht auch irgendwann kaputt!
In einer idealen Welt wäre alles an einer Software vorhersehbar. Alle Entwickler währen funktionale Programmierer, die sauberen, einwandfreien Code schrieben. Hier gäbe es keine Überraschungen. Leider zeigt die Erfahrung, dass es oft anders abläuft und Software böse Überraschungen bereithält. Versuchen Sie deshalb, ihre Prozeduren, Funktionen und Methoden so solide wie möglich zu bauen, damit sie vorhersehbar arbeiten. Die Art, möglichst vorhersehbare Software zu programmieren wird auch als „deterministisches Programmieren“ bezeichnet.
Entwickler und Programmierer sollten in all ihren Projekten versuchen, deterministisch zu arbeiten, unabhängig von der Technologie oder der Sprache die sie einsetzen.
Vielleicht scheint es auf den ersten Blick einfach, einen kleinen Fehler einfach beizubehalten, um ihn, so der Vorsatz, irgendwann einmal auszubessern. Aber das passiert meist nicht, was aber ganz sicher passieren wird, dass der Fehler „zuschlägt“. Denken Sie an Murphys Gesetz: Was kaputt gehen kann, geht auch kaputt. Deshalb erwarten Sie immer das Unerwartete. Entwickeln Sie einen „inneren Pessimisten“, der stets versucht, vorherzusehen, was schief gehen kann.
Entwickler und Programmierer sollten in all ihren Projekten versuchen, deterministisch zu arbeiten, unabhängig von der Technologie oder der Sprache die sie einsetzen.
Vielleicht scheint es auf den ersten Blick einfach, einen kleinen Fehler einfach beizubehalten, um ihn, so der Vorsatz, irgendwann einmal auszubessern. Aber das passiert meist nicht, was aber ganz sicher passieren wird, dass der Fehler „zuschlägt“. Denken Sie an Murphys Gesetz: Was kaputt gehen kann, geht auch kaputt. Deshalb erwarten Sie immer das Unerwartete. Entwickeln Sie einen „inneren Pessimisten“, der stets versucht, vorherzusehen, was schief gehen kann.
5. Hängen Sie keinen Dogmen an!
Die Welt der Informatik ist voll phantastischer Versprechen von neuen Programmierparadigmen, Modellen und Technologien. Zugleich mögen es Programmierer, sich selbst als Mathematiker zu sehen, deren Tätigkeit auf der perfekten Welt der Formeln aufgebaut ist. Doch das ist falsch. Zwar basieren Programmiersprachen tatsächlich auf Mathematik, aber niemand sollte deshalb glauben, dass diese in den Sprachen auch bis ins letzte Bit streng umgesetzt wurde. Egal ob SQL, PHP oder Java, diese Sprachen sind von Pragmatikern gebaute Plattformen, hinter denen zwar großartige theoretische Konzepte stehen, die aber letztendlich für einen praktischen Nutzen gebaut worden sind. Das gilt gleichermaßen für alles, was auf diesen Sprachen aufgebaut ist: Bibliotheken, Laufzeitumgebungen oder Architekturen. Dies sind alles Werkzeuge, die für bestimmte Kontexte geschaffen wurden. Deshalb sollten Sie auch keinen bestimmten Paradigmen oder Programmierstilen anhängen. XML, modellgetriebene Softwareentwiklung oder Modellierungssprachen wie UML sind zwar mächtige Werkzeuge, aber nicht allmächtig. Es gibt in der Softwareentwicklung keine absolute Wahrheit und im Programmieren nicht das Mastertool für alle Probleme.
6. Fokussieren Sie sich auf ein Spezialgebiet und bleiben Sie neugierig.
Es mag irgendwo sicherlich jemanden geben, der auf allen Gebieten der Programmierung grandios ist. Meist gilt aber für die Generalisten, dass sie in allem eher mittelmäßig sind. Dies kann für kleinere Projekte auch in Ordnung sein, aber langfristig werden eher Spezialisten als mittelmäßige Generalisten in Entwicklerteams gebraucht. Fokussieren Sie sich daher lieber auf ein Spezialgebiet und lernen sie dieses Gebiet virtuos zu beherrschen, statt alles irgendwie nur mittelmäßig zu können.
Und wie wird man ein Profi auf einem Gebiet? Ganz einfach: Indem man es wird. Sie wollen besser in Java-Programmierung werden? Dann programmieren Sie in Java. Jeder Programmierer hat das Potential dazu, wirklich gut zu werden. Doch dies geschieht nicht von selbst. Gute Software wird nicht an einem Tag geschrieben und genauso verhält es sich mit der Entwicklung als Programmierer: Ein guter Programmierer sein heißt, sich Schritt für Schritt dahin zu entwickeln. Zwar sollten Sie sich spezialisieren, aber trotzdem das thematische Umfeld nicht aus den Augen verlieren. Sie sollten zumindest grundsätzlich auch verstehen, wie andere Sprachen und Technologien funktionieren, die nicht Ihr Fachgebiet sind. Dies hilft auch zu entscheiden, wann es sinnvoll ist, eine bestimmte Sprache einzusetzen und wann nicht. Schauen Sie über ihren Tellerrand hinaus, dann wissen sie auch besser, wann sie einen Experten auf einem anderen Fachgebiet zu Rate ziehen sollten.
Vor allem nehmen Sie sich Zeit, um mit Paradigmen, Konzepten und Technologien herumzuexperimentieren. Im Herumspielen damit werden Sie ihren Geist offen halten für neue Möglichkeiten und Entwicklungen und besser verstehen, warum die jeweiligen Methoden oder Technologien wichtig sind und wie sie funktionieren.
Und wie wird man ein Profi auf einem Gebiet? Ganz einfach: Indem man es wird. Sie wollen besser in Java-Programmierung werden? Dann programmieren Sie in Java. Jeder Programmierer hat das Potential dazu, wirklich gut zu werden. Doch dies geschieht nicht von selbst. Gute Software wird nicht an einem Tag geschrieben und genauso verhält es sich mit der Entwicklung als Programmierer: Ein guter Programmierer sein heißt, sich Schritt für Schritt dahin zu entwickeln. Zwar sollten Sie sich spezialisieren, aber trotzdem das thematische Umfeld nicht aus den Augen verlieren. Sie sollten zumindest grundsätzlich auch verstehen, wie andere Sprachen und Technologien funktionieren, die nicht Ihr Fachgebiet sind. Dies hilft auch zu entscheiden, wann es sinnvoll ist, eine bestimmte Sprache einzusetzen und wann nicht. Schauen Sie über ihren Tellerrand hinaus, dann wissen sie auch besser, wann sie einen Experten auf einem anderen Fachgebiet zu Rate ziehen sollten.
Vor allem nehmen Sie sich Zeit, um mit Paradigmen, Konzepten und Technologien herumzuexperimentieren. Im Herumspielen damit werden Sie ihren Geist offen halten für neue Möglichkeiten und Entwicklungen und besser verstehen, warum die jeweiligen Methoden oder Technologien wichtig sind und wie sie funktionieren.
7. Weniger ist mehr.
Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher. Dieser kluge Satz wird Albert Einstein zugeschrieben. Niemand ist wirklich fähig, mit hoher Komplexität umzugehen, kein Mensch und auch keine Software. Komplexität ist gerade zu der Tod guter Software und deshalb ist Einfachheit die Grundbedingung. Verwenden Sie in ihren Funktionen oder Methoden nur wenige Parameter. So stellen Sie sicher, dass der Code auch tatsächlich nur das durchführt, was er soll und nichts anderes. Ein guter Programmierer sein heißt nicht, komplizierten Code als Selbstzweck zu schreiben.
Natürlich ist es manchmal schlichtweg unmöglich, eine komplizierte Geschäftslogik auch einfach umzusetzen, aber versuchen Sie dabei stets ihr Bestes, denn ähnlich wie gute Software, wird Einfachheit auch nicht an einem Tag erreicht.
Natürlich ist es manchmal schlichtweg unmöglich, eine komplizierte Geschäftslogik auch einfach umzusetzen, aber versuchen Sie dabei stets ihr Bestes, denn ähnlich wie gute Software, wird Einfachheit auch nicht an einem Tag erreicht.
8. Genaue Aufmerksamkeit üben
Es ist wichtig, aufmerksam zu sein, wenn man seine Arbeit erledigt. Ein Beispiel findet sich direkt in diesem Artikel. Ist Ihnen aufgefallen, dass Schritt nur 3 gefehlt hat? Dann haben Sie diesen Artikel aufmerksam gelesen 🙂 Diese Aufmerksamkeit wird Ihnen sowohl bei der Zusammenarbeit helfen, als auch bei Ihrem Code.
Letztendlich gilt folgendes:
Ein guter Programmierer ist man nicht, man wird es.