Jetzt wird's aber auch schon ziemlich philosophisch und wir suchen nach der Definition von Handwerk, oder?
@
darktrym: Ich kenne das was du beschreibst eher von Leuten, die studiert haben und dann eben jede Sprache, die sie finden wie Java behandeln und sich dann darüber beschweren, dass die Sprache nicht Java ist oder glauben, dass der Compiler ja eh schreit, und deshalb keine Tests schreiben.
Generell glaube ich, dass Leute, die studiert haben zu Overengineering neigen und Leute, die nicht studiert haben irgendwas hinhacken und glauben zu wissen, was sie tun, ohne dass das der Fall ist. Von Letzteren habe ich schon Code gesehen, der echt zufällig funktioniert, wo die Programme dann funktionieren weil sie die Bugs einer Library nutzen, oder ähnlichem.
Das so zu verallgemeinern ist schwer. Bei dem was ich so sehe gibt es den selben Anteil an Autodidakten, Bachelorn, Mastern und Doktoren, die miesen Code schreiben und Leuten, die tollen Code schreiben. Gerade bei den Doktoren ist es scheinbar deshalb, weil die sich dann auf ein Thema spezialisieren und dann Jahrelang zum Beispiel nur irgendein XML parsen oder generieren, das dann oft quasi nur im universitärem Umfeld relevant ist. Klar, wer weiß was daraus mal cooles, geniales wird, aber das passiert nur mit einem Bruchteil und meist erst dann wenn es jemand außerhalb der Universität falsch und für irgendwas, für das es nicht gedacht war verwendet. So entstehen ziemlich oft die Dinge, die dann die große Innovation sind - oder auch nicht.
Ist auch ein wenig wie bei Programmiersprachen. Du wirst überall miese und geniale Programmierer finden und die genialen vor allem dort, die gewillt sind viel zu lernen. Ich denke es ist auch eine Community-Entscheidung. Zumindest bei mir ist es das oftmals. Ich finde Java und Python zum Beispiel ziemlich cool, aber mich stört dort etwas, dass alle meinen, dass nur weil sie diese Programmiersprache nutzen das Richtige tun und von Haus aus keinen miesen Code schreiben können ist schonmal abschreckend genug. Da gibt es dann immer große Verteidigung warum der Bug jetzt eigentlich das Richtige ist oder ähnliches.
Das ist auch ein bisschen wie mit der Handwerksdiskussion. Aber ich glaube wenn man ein guter Programmierer ist, dann weiß man wann welche Ansicht gebraucht wird. Im Endeffekt geht es ja vor allem darum, dass man Code erzeugt, der die Eigenschaften hat, die gebraucht werden. Manchmal ist alles schnell genug, manchmal will man nur ein hingehacktes Skript, das jetzt sofort, schnell irgendwas macht und manchmal will man anständig durchdachten, wartbaren Code auf dem man aufbauen kann. Deshalb redet man dann schnell mal aneinander vorbei. Einmal ärgert man sich darüber, dass da ein Hello World Overengineered wird und ein andermal, dass der Code buggy ist, keine Sanitychecks hat, unlesbar ist und man den Schrott eigentlich wegwerfen und neu schreiben sollte. Ich glaube da die richtigen Entscheidungen treffen zu können ist schonmal ein großer Punkt, der einen guten Programmierer oder eine gute Programmiererin ausmacht. Da muss man aber einfach viel Real Life Projekte kennen und geschrieben haben und es ist relativ egal, ob du in einer Uni warst oder nicht. Und die meisten Uni-Vorlesungen gehen ja sowieso nach irgendeinem Buch. Da ist dann auch die Frage wie jemand gut lernt.
Ich hab schon so viel in alle Richtungen gesehen, dass ich garnicht mehr wirklich an einen Trend glaube, dass die Mehrheit der Leute, die X gemacht haben und irgendeine Programmiersprache verwenden auch nur im Schnitt besser sind und es hat auch noch keine Studie irgendsowas herausgefunden. Am Anfang habe ich immer das eine oder andere geglaubt und zumindest grundsätzliche Trends zu sehen geglaubt, aber umso mehr ich sehe umso eher scheint es mir echt zufällig angeordnet zu sein. Das sind nicht irgendwelche Ausreißer oder so. Java ist ja so ein tolles Beispiel. Jeder lernt es in Schule und Uni und alle haben so verschiedene Ansichten, weil es einfach so viele Leute gibt, die das verwenden und es gibt Unmegen an schlechten Javaprogrammiereren und Unmegen an genialen Programmieren. Und es gibt jede Menge Zeug, das mies an der Sprache ist und vieles, das echt cool daran ist. Und dass es so viel verwendet wird, ist so eine Mischung an Trend, Glück, Marketing und Leuten die die guten Teile verstehen und nutzen.