Wie wird man ein richtig guter Software Entwickler

mmtzh

Cadet 3rd Year
Registriert
Nov. 2014
Beiträge
62
ich muss kurz ausholen um zu erklären was ich meine:

Ich habe 2009 eine Ausbildung zum Fachinformatiker Anwendungsentwicklung begonnen und 2012 abgeschlossen.
Dann ging ich ein Jahr zur Schule und hab von 2013 bis 2016 ein Bachelor Studium gemacht.
Und seit 2016 arbeite ich als Software Entwickler. Ich war seit 2016 in zwei verschiedenen Unternehmen angestellt.

Ich bin also ganz sicher kein Neuling mehr und habe schon einiges an Erfahrung was Software Entwicklung angeht (zumindest was die Arbeits-Jahre angeht). Ich würde mich selbst aber trotzdem "nur" als mittelmäßig oder normal guten Software Entwickler bezeichnen.
Ich habe in meiner Laufbahn bisher zwei mal mit Leuten zusammen gearbeitet, die ich als richtig gut bezeichnet hätte.
Und von diesen zwei Leuten habe ich auch sehr viel gelernt.
Dass diese zwei Entwickler gut waren, hatte ich z.B. bei Code-Reviews gemerkt. Ich konnte kaum einen Commit tätigen, ohne dass es einen Kommentar gab, der allerdings wirklich hilfreich und gut war. Oder wenn ich mit diesen zwei Entwicklern besprochen habe, wie ich die Architektur oder das Design von einer Software gestalte, dann kamen immer richtig gute Vorschläge.

Aktuell arbeite ich nur noch mit Kollegen zusammen, von denen ich glaube, dass sie auch nicht besser sind als ich. Beispielsweise läuft es gerade bei Code-Reviews so ab, dass die meisten Änderungen gleich genehmigt werden. Weil keiner irgendwas findet, was man besser machen kann.

Und ich frage mich, wie wird man richtig richtig gut. Ohne mit jemandem der so gut ist zusammen zu arbeiten.
 
Dazu benötigt man Intelligenz und Talent. Das kann man nicht lernen. Entweder man ist es oder nicht. Ist wie beim Fußballspielen. Bis zu einem gewissen Grad kann man es lernen, aber ab dann benötigt man einfach das Talent.
 
Man muss ja auch nicht alles aus dem Kopf coden, nur wissen wo es steht ;) Hauptsache es läuft. So ist meine Meinung
Edit : Grundlagen sollte man im Kopf können
 
Zuletzt bearbeitet: (Edit)
mmtzh schrieb:
Und ich frage mich, wie wird man richtig richtig gut. Ohne mit jemandem der so gut ist zusammen zu arbeiten.
Zum einen natürlich die Grundlagen. Ich nehme mal an, die sitzen bei dir halbwegs. Aber die sind natürlich immer das Fundament, auch wenn das oft anfangs langweilig ist.
Danach, kommt drauf an, was du genau machen willst.
  • Generell mit der Sprache auseinandersetzen, also schauen, wo liegen die Stärken und Schwächen der Programmiersprache in der man arbeitet.
  • Richtiges Exception-Handling: Wenn in deiner Anwendung etwas ungeplantes passiert, sollte das Programm nicht abstürzen, sondern merken, dass etwas nicht stimmt, und entsprechende Fehlermeldungen ausgeben bzw. loggen, damit man es nachvollziehen kann. Praktisches Beispiel: Richtiges escapen bzw. richtiger Umgang mit SQL Statements bzw. Nutzereingaben allgemein.
  • Lesbar programmieren, bzw. komplexere Dinge kommentieren. Warum hast du das so geschrieben, wie du es geschrieben hast? Nutze gut interpretierbare Variablennamen, und nicht Dinge wie a1, b1, b2 usw. als Variablen.
  • Mit Algorithmen und Datenstrukturen befassen. Es gibt gute Bücher, in denen verschiedene Algorithmen erklärt werden. Sich damit befassen bringt dir den Vorteil, dass du lernst selbst abstrakter zu denken, und eventuell bessere Lösungen zu finden. Beispiel Sortieralgorithmen. Es gibt zig verschiedene Varianten, jede hat ihre Vor- und Nachteile. Man muss nicht alle kennen, aber es hilft, einige davon zu verstehen, und zu verstehen, wie/warum der "Erfinder" es genau so gemacht hat. Was hat er sich davon versprochen, was war sein Ziel, was funktioniert damit gut, was nicht gut. Thema Komplexität, im Sinne von "Komplexer Code", weil größere Projekte zwangsläufig extrem Komplex werden. Wie kann man das gut strukturieren, um sich später noch gut darin zurecht zu finden, wenn man mal ein halbes Jahr nicht damit gearbeitet hat.
Wenn man mit größeren Datenmengen arbeitet, sollte man sich auch mit dem Laufzeitverhalten beschäftigen. Wenn du 1000 Datensätze verarbeitest und dein Programm wegen Ineffizienz 5 Sekunen länger braucht, stört das i.d.R. keinen genug, um sich zu beschweren o.ä.
Wenn du aber mehrere Hunderttausend Datensätze verarbeitest, solltest du darauf achten, dass das Programm effizient läuft.
Beispiel aus der Praxis aus einem Projekt mit Externen Entwicklern bei uns: Anwendung wird neu entwickelt und geht Live. Die Benutzer beschweren sich, dass die Startseite unfassbar lange braucht um zu laden. Niemand weiß warum. Ein Kollege schaut im Grafana auf die Datenbank und sieht, dass da regelmäßig ein Datenbankquery ausgeführt wird, der über 10 Sekunden lädt. Fragt nach, Antwort: Das muss so sein. Lässt sich erklären warum, und weil wenig Ahnung von Programmieren, gibt er das an einen anderen Kollegen weiter, der auch gut programmieren kann, und der schlägt die Hände überm Kopf zusammen. Warum? Weil die Entwickler einen "SELECT * FROM CUSTOMERS" über die Datenbank mit >1 Millionen Kunden haben laufen lassen, um sich die ganze Tabelle incl. allem in den RAM zu laden, und eigenhändig zu durchsuchen, statt einfach im SQL Query selbst nach der Kunden-ID zu filtern. Weil genau dafür ist SQL ja da - damit du effiziente Suchanfragen damit erstellen und ausführen kannst.

Hoffe ich konnte zumindest Denkanstöße geben :)
 
Ein paar unstrukturierte Gedanken:

Es hilft ungemein, wenn man jemanden vor der Nase hat, der besser ist als man selbst. Mir hat es außerdem geholfen, dass ich für ein paar Jahre die Wartung einer Software übernommen habe, weil ich dadurch gelernt habe, wie wichtig es ist, wartbaren Code zu schreiben und wie wartbarer Code eigentlich aussieht. Du triffst bei der Wartung auch auf Fehler, die oft gemacht werden, z.B. n+1-Probleme, Nebenläufigkeitsprobleme durch shared State, fehlende Indizes in DBs und all solche Sachen. Auch wenn Wartung oft nervig ist, lernt man dadurch, wie man selbst solche Fehler vermeidet oder sie in Code-Reviews einfach identifiziert.
 
RIchtig gut wird man durch Erfahrung und Übung. Was Talent ist kann dir keiner sagen, das ist zu schwammig und Intelligenz gehört auch für schlechte Programmierer dazu ;). Du wirst über die Zeit richtig gut und indem du dich ständig weiterbildest, austauscht und mit anderen redest. Lesen, probieren, testen ... Programmierung ist eine nie enden wollende Schule.

Man könnte jetzt sagen, nimm die die 10.000 Stunden Regel vor, vielleicht bist du auch schon vorher ein richtig guter Programmierer.
 
Zurück
Oben