Okay, als Uncle Bob mit Programmieren anfing, wurde ich gerade geboren, aber trotzdem kann ich diese Perspektive gut nachvollziehen (auch wenn ich manchmal eher wie ein Dinosaurier fühle). Eine Verdopplung der Programmiereranzahl in 5 Jahren oder so ist eine beachtliche Hausnummer, und die Idee, dass viele Probleme der IT genau darauf zurückzuführen sind, hat einiges für sich. Ich stimme jedenfalls der Schlussfolgerung zu, dass Arbeitgeber mehr über Karrierewege nachdenken sollten, die nicht vom Programmieren wegführen.
Interessanter Artikel!
Persoenlich sehe das ja so, dass es eben nicht der normale werdegang eines Entwicklers ist, sich zum „Manager“ hochzuarbeiten der nur noch Papierkram macht,
leider sehe ich oft Leute im Berufsleben die sich nicht schaemen zu sagen „irgendwann will ich nicht mehr Coden, so nach 5-7 Jahren sollte es spaetestens reichen…“
Einerseits klingt das gut (vor allem wenn man auf die 40 zugeht und sich klar macht, dass es dann schon schwierig wird, irgendwo als Entwickler eingestellt zu werden, weil man schlicht zu alt ist). Andererseits schon etwas pathetisch. Schon die (Quelle der) Einstiegsgraphik führt den Rest dieses Appells ad absurdum: Wenn man nicht weiß, wie was geht, fragt man auf Stackoverflow nach. Ich habe das wenige, was ich weiß, auch von einem „Senior“ gelernt, sondern durch Lesen und Machen - und wenn man es umgekehrt so drastisch formuliert, dass jemand, der heute 25 ist, nicht mehr Lesen und Machen sollte, sondern erwarten können sollte, alles von einem Mentor vorgekaut zu bekommen, würde man dem ja auch nicht zustimmen. Darüberhinaus könnte das ein Einstieg in eine ausufernde Diskussion sein, … aber diesen Einstieg überlasse ich mal den jugendlichen Heißspornen, die es hier ja auch gibt
Wenn ich es richtig verstehe, geht es Uncle Bob darum, dass “alte Hasen” Sachen vermitteln können, die StackOverflow nicht bieten kann. Also - auch wenn sich das etwas geschwollen anhört - kein Wissen, sondern “Weisheit”. Sicher ist “Lesen und Machen” der richtige Weg, aber manche Sachen muss man eben sehr lange machen, um sie richtig zu können. Ich sehe auch die Lehre kritisch, die zu sehr auf Detailwissen und “aktuelle” Entwicklungen (die spätestens nach Studienende veraltet sind) setzt, und zu wenig auf Methodik und langlebige Ergebnisse aus der “Grundlagenforschung” abzielt.
Nebenbei bemerkt bin ich 40 und habe nicht das Gefühl, dass ich keinen Job mehr finden würde.
Also ich bin jetzt seit 6 Jahren im Geschäft und ich seh’ noch kein Ende
Mit der Zeit bekommt man einfach auch ein Gefühl für die ganze Sache. Man spürt schon vorher wo es Probleme geben kann wenn man etwas ändert und kann sehr schnell Dinge hochziehen. Bei einem Vorstellungsgespräch hat man mich einmal gefragt wo ich mich in 5 Jahren sehe, worauf ich gesagt habe als SW-Architekt und Teamlead, aber auf jeden Fall eine Position wo ich weiter Dinge programmieren kann.
Kam ganz gut an die Meldung. Senior Entwickler sind notwendig für Probleme. Die kennen das Geraffel einfach und wissen wo welche Knöpfe zu drücken sind damit es wieder geht.
Vor fast 30 Jahren an der CBM 2000 die erste Programme im Nachmittagsunterricht geschrieben.
Und jetzt? Wahrscheinlich schon mehr Tricks wieder vergessen als ich überhaupt noch parat habe. Was man wirklich lernt, ist einfach Dinge nicht zu machen. Meine Auftraggeber so manipulieren, dass sie gar nicht merken, dass sie ohne mich einen Haufen Geld in Schrott investiert hätten.
Nebenbei: ich bin über 40 und habe immer mehr das Gefühl, dass ich gar keinen Job mehr finden WILL. Richtig gut programmieren kann man meiner Meinung nach nur nach einer mehrjährigen Phase, wo man wirklich täglich intensiv - in EINER Sprache - programmiert hat (das kann ein Junger wahrscheinlich in der Situation besser als ich jetzt) - das sporadische, ad-hoc Zeug das ich die letzten Jahre so mache, das bringt es auch nicht so richtig.
Was einem vor allem abhanden kommt, ist die Idee richtig gute, saubere, logisch korrekte Software oder ähnliches zu schreiben. Nachdem man ein paar Jahre lang Verbesserungen und Kundenwünsche eingebaut hat, steht man fast immer vor einem Schiffswrack.
Sicher, mein Einlass mit der Verweis auf StackOverflow war auch mit einem (zu) subtilen Hauch von Zynismus versehen.
Aber im Moment kann ich mir kaum vorstellen, was mit „Weisheit“ gemeint sein könnte, und was man nicht durch Lesen selbst beibringen könnte (oder sollte?) - im Zweifelsfall, in dem man „Uncle Bob’s“ Bücher liest Das bezieht sich aber explizit nur auf fachliches. Dass man, wenn ein Kunde eine Frage stellt, die mit „Könnt ihr…“ anfängt, ihm nicht ins Wort fällt und erstmal „JA“ sagt, bevor man ihn ausreden läßt, lernen manche eben anscheinend nie :rolleyes:
Oder, um’s ins Gegenteil zu verkehren, das Zitat: „Erfahrung heißt gar nichts. Man kann seine Sache auch 35 Jahre schlecht machen“. Und wenn dann noch Altersstarrsinn dazukommt, muss das nicht unbedingt positiv sein: „Ich lern’ keine neue Sprache/Framework mehr“. :grampa:
Aus der Statistik geht insbesondere ja nicht hervor, wie die Verteilung von Fragen/Antworten auf die einzelnen Tags war. Fragen und Antworten zu C/C++ werden tendenziell upgevotet wie blöde, weil es lange „DIE“ Sprache war. Heute splittert sich das ja immer mehr auf. Java ist da noch einer der dickeren (etablierten) Pfeiler, aber … nenn’ mir mal jemanden, der 15 Jahre Erfahrung mit Scala hat Von Typescript, Android oder anderen, moderneren, diversifizierten Framework-spezifischen Fragen mal ganz abgesehen.
Erfahrung hin oder her: Jemand der 30 Jahre lang C/C++ gemacht hat (und selbst wenn es K&R oder Stroustrup persönlich wären) wird zu einem Projekt, in dem es darum geht, eine interaktive Webseite mit d3.js zusammenzufrickeln schlicht nichts beitragen können - im Gegensatz zum „Script-Kiddie“, das genau sowas seit 3 Jahren hobbymäßig macht.
Eine gewisse Beruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - ein Arsch voll Software in Java geschrieben wird, und wenn es manchmal heißt „Java ist das neue COBOL“, und ich mir die Gehälter von COBOL-Programmierern ansehe, könnte ich damit schon leben.
Eine gewisse Beunruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - jeder Arsch Software in Java schreibt, und ich weiß, dass (spätestens mit der dotcom-2000er-Schwemme derer, die sich bei der Wahl zwischen „BWL-Studium“ und „Informatik-Studium“ per Münzwurf für letzteres entschieden haben) von vielen Java-Entwicklern schlicht ein Haufen unwartbarer Dreck zusammengestümpert wird, und ich JETZT schon keinen Bock habe, mir den Mist anzusehen, den irgendein frisch aus der FH weg eingestellter Prografrickler verbricht.
Aber deswegen eher auf die Management-Schiene wechseln? Ja, klar :frech:
Gab doch die Diskussion, ich glaube noch im JF, dass man sich ja heute nichts merken müsste, weil man ja alles nachschlagen könnte.
Ich sehe das wie Landei. Wobei ich sowohl Wissen als auch Weisheit bei älteren Entwicklern sehe. Ich versuche mir in meinem Job immer möglichst viel von meinen Kollegen abzugucken. Auch wenn wir (leider) nicht programmieren. Erfahrung gibt es in jedem Metier.
Wenn man programmieren als Handwerk betrachtet, dann reicht lesen nicht, man muss ueben, ueben, ueben, genau da hilft es einen alten Hasen zur Hilfe zu haben, da kann man mit „den Augen stehlen“, sehen wie die das so machen.
Oft sind die Konzepte sehr Komplex, auch da hilft es jemanden zu haben der darauf achtet dass man in die richtige Richtung laeuft.
Meist ist es aber auch so, dass Projekte viel zu knapp bemessen sind, bleibt oft nicht viel Zeit die Lernkurve zu durchlaufen, wird nicht selten gezwungen eine „pragmatische Loesung“ zu suchen, nicht erst 3 moegliche Wege nacheinander einzeln abzulaufen.
In stressigen Situationen hilft es auch oft jemanden an der Seite zu haben der das schon kennt und nicht gleich ins Schwitzen kommt weil ein PL auf Termine besteht die nicht einzuhalten sind, da muss man souveraen sein, ohne Selbstsicherheit vorzuheucheln.
„Eier in der Hose und schon ein paar Haare drauf“
Kurz:
Es gibt sehr viel fachliches aber auch nicht-fachliches was man von alten Hasen lernen kann!
Das bezog sich IMHO auf (Implementierungs-)Details, nicht auf Konzepte.
Wieviele sind denn zB. wirklich inder Lage saubere, stabile automatisierte Tests zu schreiben die nicht staendig „von selber brechen“ sondern nur dann wenn der Prod Code Fehler hat?
[QUOTE=Marco13]
Eine gewisse Beruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - ein Arsch voll Software in Java geschrieben wird, und wenn es manchmal heißt “Java ist das neue COBOL”, und ich mir die Gehälter von COBOL-Programmierern ansehe, könnte ich damit schon leben.
Eine gewisse Beunruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - jeder Arsch Software in Java schreibt, und ich weiß, dass (spätestens mit der dotcom-2000er-Schwemme derer, die sich bei der Wahl zwischen “BWL-Studium” und “Informatik-Studium” per Münzwurf für letzteres entschieden haben) von vielen Java-Entwicklern schlicht ein Haufen unwartbarer Dreck zusammengestümpert wird, und ich JETZT schon keinen Bock habe, mir den Mist anzusehen, den irgendein frisch aus der FH weg eingestellter Prografrickler verbricht.[/QUOTE]
[OT]Mit Verlaub, so naheliegend wie der Vergleich mit COBOL ist: Er hinkt nicht, sondern er hat keine Beine. COBOL war mehr oder weniger eine Sackgasse, in der man nicht mehr wenden konnte. Falls Java einmal derartig an die Wand fahren sollte, gibt es jede Menge Alternativen, die einem einen fließenden Übergang ermöglichen, ohne die JVM verlassen zu müssen. So gesehen ist Java eben keine Insel (auch wenn das die Indonesier anders sehen), sondern mehr als die Sprache - man könnte von einem Ökosystem sprechen. Insofern hält sich meine Sorge um Javas Zukunft in Grenzen.
Was ich sehe, ist ein gewisses Pendeln der neuen JVM-Sprachen um eine gemeinsame Durchschnittsrichtung, mit verschiedenen Ausprägungen prinzipiell ähnlicher Ideen. Ich hoffe, dass dieser Selbstfindungsprozess nicht zu lange dauert, und es zu einer Konvergenz kommt, so ähnlich wie es die funktionalen Sprachen in grauer Vorzeit mit Haskell (was dunnemals eine wirklich erstaunlich gute Synthese war, auch wenn man aus heutiger Sicht natürlich einige Fehler begangen hat (z.B. wie “Monaden” “Monaden” zu nennen)) vorgemacht haben.
[/OT]
[OT]Das Zitat stammt nicht von mir (und ehrlich gesagt weiß ich nicht, welche Argumentation dahinter steht). Ich gehe auch davon aus, dass die JVM die Sprache Java (und einige andere aktuelle Sprachen) noch lange überdauern wird. Es ist einfach DIE VM. Aber das driftet jetzt schon sehr weit vom Thema ab[/OT]
warum sollten die letzten beiden Postings Offtopic sein?
die davor habe ich nur überflogen, den Link gar nicht gelesen, aber zu Sätzen wie
passt doch die Beschäftigung mit alten Programmiersprachen/ Altlasten ganz gut,
andere Sprache ist guter Vergleich, nicht weg vom Thema
wie steht es eigentlich um COBOL, ist das ein Hexenwerk was wirklich nur entsprechende Profis überblicken können,
oder eher auch aus simplen Variablen und Kontrollstrukturen bestehend, mit etwas Mühe auch in andere Sprachen zu übersetzen,
Problem schlicht die Masse an Code, mit schlechter Doku, lieber gar nicht erst angefasst?
letzteres könnte für alten schlecht dokumentierten Java-Code genauso gelten?,
wenn noch ohne Generics, ohne die vielleicht in 10 Jahren in Java 8+/andere Spachen verbreiteten Spielereien usw.,
mit alten Frameworks a la AWT statt Swing mit diversen Besonderheiten, im Web sowieso alle paar Jahre komplett neue Welt…, mit Framework-Libs ohne Quellcode dazu,
dann kommen auch deutliche Sprachunterschiede heraus
[quote=Marco13;104111]Eine gewisse Beruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - ein Arsch voll Software in Java geschrieben wird, und wenn es manchmal heißt „Java ist das neue COBOL“, und ich mir die Gehälter von COBOL-Programmierern ansehe, könnte ich damit schon leben.
Eine gewisse Beunruhigung ziehe ich daraus, dass - und man möge mir die profane Sprache an dieser Stelle verzeihen - jeder Arsch Software in Java schreib […] und ich JETZT schon keinen Bock habe, mir den Mist anzusehen, den irgendein frisch aus der FH weg eingestellter Prografrickler verbricht.[/quote]
das zweite liest sich für mich halb als Widerspruch zum ersten zitierten Absatz, wobei dort nur etwas zu Geld steht, nicht unbedingt ‚Bock‘
ob ganz frischer Schrottcode oder uralter Code mit noch anderen Philosophien dahinter, vielleicht verlorengegangener (Zusatz-)Doku,
beides kann als Arbeitsfeld für versierte Analytiker dienen, beides für gutes Geld,
ob Bock darauf oder nicht, das mag natürlich die Frage sein, aber wenn dann doch ähnliche Aufgabe?
sollte entweder beides beruhigen oder beunruhigen
noch etwas normaler alles, Java vorne,
wieso ist dort eigentlich Scala bei ca 75% gegenüber C++/ Java/ JavaScript/ PHP um 90-100% eingereiht, sollte es so verbreitet sein?
auf stackoverflow.com Tag-Counter steht Scala bei 30k auf Seite 3, die anderen in den Top 5 bei 700k…
logarithische Achse mag irgendwie stimmen, die 50%-Sprachen stehen bei 3k Tags, die 25% bei 0.2k
Vor zwei Wochen war das Youngcoders-Festival in Wien. Eine Veranstaltung, in der es darum gegangen ist Jugendlichen zwischen 14 und 18 den Umgang mit OpenData näher zu bringen. Ich war dort als Mentor und hab’ eine Gruppe beim Android-Entwickeln unterstützt.
Dort hab’ ich eines gemerkt: Der ganze Scheiß ist mittlerweile furchtbar komplex. Ich merke es nur nicht mehr weil ich mich schon jahrelang durchgequält habe. Erfahrung die unglaublich wertvoll ist aber mit viel Probieren und vor allem Frust erkauft werden muss, ist das Deuten von Fehlermeldungen. Geht es jetzt um ein Betriebssystemproblem, ein IDE-Problem, ein Build-System-Problem, um eine Library-Problem oder geht’s um die falsche Verwendung der Android-API? (IMHO eine reine Gefühlssache die nur mit Erfahrung kommt.)
Dann das Doku-Lesen… Da musste ich ihnen auch oft helfen weil die eine halbe Stunde auf vier Absätze starren konnten und trotzdem nicht wussten wie sie das Zeug bei sich zum Laufen kriegen. Ganz abgesehen von der fundamental wichtigen Eigenschaft Code von Stackoverflow auch zu verstehen und nicht nur einfach irgendwohin zu kopieren
So gesehen wird man als alter Hase ja gerade im Java Umfeld noch lange sein auskommen haben:
Java ohne Generics
mit rohen JDBC-Zugriffen
mit gewaltigen "Swing"er-Orgien
mit java.util.Date und anderen Verrückten
J2EE (vor EJB3) mit riesigen XML-Descriptoren
mit vielen, vielen überflüssigen Casts aus der Zeit vor dem Boxing
Wirrnis ohne das java.util.concurrent Paket
usw. usf.
Java enthält mittlerweile so viele Dinge, die ein Einsteiger weder wissen kann noch soll - da wird man noch lange dran knabbern.
Geht mir auch so. Es wird nicht mehr lange dauern und man wird trotz (oder wegen?) maven und gradle von der .jar-Hölle sprechen.
Im Prinzip ist Java halt einfach zu erfolgreich, vor 10 Jahren war das vielleicht der beste Sportwagen. Ich finde es ja auch gut, dass man den umgebaut, verbessert und aufgemotzt hat. So dass er jetzt aussieht wie ein Traktor mit 17 Rädern und drei Anhängern.