Benutzen richtige gute Programmierer wirklich so oft Stackoverflow?

10 Antworten

Ich arbeite nun seit knapp 8 Jahren als Software-Entwickler in verschiedenen Entwicklungsumgebungen, Frameworks, Sprachen und Firmen und kann dir sagen;

Ja; StackOverflow, Git und die jeweiligen Dokumentationen und Foren sind ein grosser Teil des Entwicklungsprozesses.

Jein. Das hängt wohl stark von dem Bereich ab und was man wirklich auf der Arbeit macht. Wer hauptsächlich keine Web Applikationen umsetzt, der kann immer wieder Neues einfließen lassen und gerade der Bereich Web entwickelt sich schneller als jeder andere, durch neue Features in Browsern und Sprachstandards, durch neue Build Tools usw.

Man hat diese Informationen eben nicht mit der Muttermilch bekommen. Irgendwo müssen sie herkommen. Natürlich gibt es für sowas auch offizielle API Beschreibungen. Oft wissen wir aber gar nix von der möglichen Funktionalität, die wir nutzen können, sondern kennen nur unser Problem.

Stackoverflow macht da dann eben Sinn, da es sich quasi zum erster Anlaufpunkt entwickelt hat. Dort ist eine große Anzahl an Entwicklern und man findet dadurch auf fast alles eine Antwort.

Natürlich ist das Verhalten von vielen dort auch ziemlich toxisch und es gibt auch unsinnige Antworten. Aber eine gute Anlaufstelle ist es erstmal um einen Überblick zu bekommen. Bzgl. der genaueren Implementierung schaut man sich dann eben auch die API der entsprechenden Sachen an.

Es gibt aber auch Leute, die arbeiten eher mit alten Sprachen, wo sich nicht mehr soviel entwickelt. Wo das Problem weniger die Umsetzung in der Programmierung ist, sondern die Prozesse die abgebildet werden. Da hast du dann eben kein Stackoverflow, dafür Telefonate mit Schnittstellenpartnern und die Sichtung der Word und PDF Dokumente usw. Ggf. gemeinsame Termine, Tests etc. pp. Vielleicht hat man da auch mal kompliziertere Algorithmen und muss das Wissen da auffrischen oder im Bereich der Mathematik.

Lesen und Lernen gehört aber zum Job und ist Alltag. Davon ab programmieren Leute, die das beruflich machen auch gar nicht mehr soviel bzw. schreiben nicht viel aktiv Code. Viel Zeit geht drauf alten Code zu verstehen, der von anderen Leuten geschrieben wurde oder von einem selbst vor mehreren Jahren. Ebenso für Besprechungen, Planung, Fehlersuche, Telkos, Schreiben und Ergänzen von Dokumentationen etc. pp.

Das reine Code schreiben wird vermutlich deutlich unter 20% liegen bei den meisten.

Gerade in kleineren Unternehmen ist man auch Mädchen für alles. Ggf. übernimmt man noch weitere Tätigkeiten wie Projektleitung, hat da dann noch Termine, erstellt Pflichtenhefte, Protokolle etc. pp. Da vergehen dann auch mal Wochen ohne das man was programmiert hat.

Mal davon ab einen guten Programmierer zeichnet für mich vor allem aus, dass er Probleme versteht, in Teilprobleme zerlegen kann und sie beschreiben kann, was auch nötig ist um eine Lösung zu finden. Genauso wie Code für Menschen zu schreiben, der in Zukunft nicht unnötig Zeit verbrennt. Lösungen finden ist der kleinste Teil.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
apachy  11.01.2020, 15:49

kleine Web Applikationen sollte das natürlich heißen :D

0
Man sieht immer übertrieben viele Memes etc. (...) und der meiste Code zusammengegoolt wird.

Ich halte diese Memes, zumindest hinsichtlich der professionellen Arbeit, für ziemlich übertrieben an. Wenn wirklich jeglicher Code so zusammengegoogelt werden würde, wäre dies für mich tatsächlich ein Indiz dafür, dass der Entwickler eher nicht so gut in seinem Themengebiet bewandert ist.

Meiner Erfahrung nach greift man auf SO doch eher in solchen Fällen zurück:

  • Wenn es darum geht, sich in ein unbekannteres Terrain einzuarbeiten (z.B. eine Bibliothek / ein Framework), kann SO eine hilfreiche, zusätzliche Quelle darstellen, welche Beispiele liefert (Wie lässt sich Komponenten A rechts unten in Komponenet B mit Abstand zu Komponenten C anordnen?)
  • Für Boilerplate-Code (z.B. einen regulären Ausdruck, um mobile Devices anhand des User Agent zu erkennen oder das Ein-/Auslesen von Dateien mit Programmiersprache XY)
  • Für Workarounds / Fixes zu Bugs eines bestimmten Tools (Framework / Bibliothek / ...; Bsp.: irgendeine Methode einer bestimmten Bibliothek hält nicht das, was sie verspricht)
  • Für Lösungen bezüglich bestimmter Konfigurationen (z.B. wie man bestimmte RewriteRules setzen kann)

In Hinsicht auf die letzten drei Punkte sehe ich zunächst keine Abhängigkeit zu dem, ob man als suchender Entwickler gut ist oder schlecht. Es ist eher eine Frage der Effizienz.

Und in dem Punkt folgt erst die Unterscheidung zwischen gutem und schlechtem Entwickler. Ersterer kann die Lösung, die er gefunden hat, für sich selbst bewerten und bei Bedarf (wenn überhaupt möglich) anpassen. Der schlechte Entwickler eher nicht.

Völlig blind von SO (oder irgendeinem anderen Forum) abkopieren, ist eher schlecht. Wer meint, dass jede Antwort auf SO automatisch Gold wäre, liegt falsch.

Ein weiterer Punkt ist folgender: Es gibt so einige Tools, zu denen man auch auf StackOverflow keine Informationen (oder Kontaktpartner) findet und im schlimmsten Fall fast gänzlich auf sich allein gestellt ist. Ein sehr gutes Beispiel ist interne Firmensoftware. So sind in einem Softwareunternehmen die Kollegen oft die ersten Ansprechpartner, nicht SO oder Google. Oder man muss mit den Entwicklern eines anderen Unternehmens kommunizieren, weil sie die Software stellen, mit der man arbeiten muss.

Benutzen richtige gute Programmierer wirklich so oft Stackoverflow?

Umso besser du in einem bestimmten Themengebiet der Software-Entwicklung wirst, umso weniger ist dazu Recherche notwendig.

Sofern notwendig, ist ein guter Entwickler außerdem auch in der Lage, bestimmten Problemen selbst in den tiefen, schwarzen Morast (mit Tools wie Debugger, Profiler, Decompiler, u.ä.) zu folgen. Er ist also nicht absolut von SO / Google abhängig.

Mal mehr, mal weniger, aber generell ist es viel Recherche-Arbeit, lesen von Dokumentationen, Austausch mit anderen Entwicklern. Networking ist relativ wichtig in dem Bereich und unterstützt bildend. Warum auch unnötig kompliziert machen wenn man voneinander profitieren kann indem man Erfahrungen austauscht? So kann man deutlich mehr erreichen.

Kommt natürlich auch immer darauf an was du machst. Wenn du immer dieselben Frameworks und Sprachen anwendest wirst du wohl deutlich seltener auf fremde Unterstützung zurückgreifen. Dafür baust du aber ein Know-How auf mit dem du wiederum andere unterstützen kannst.

Woher ich das weiß:Berufserfahrung

Umso mehr Erfahrung du hast, umso weniger musst du Googlen.
Aber alles wirst du nie wissen, da auch immer neue Sprachen oder Möglichkeiten entwickelt werden.
Wenn einem etwas neu ist, muss man das halt irgendwie lernen.