Zum Inhalt springen

DevOps ohne tiefergehende Programmierkenntnisse vs zweites Standbein als Java Entwickler - was ist sinnvoll?


Empfohlene Beiträge

Geschrieben

Ein sonniges Hallo in die Runde,

ich stehe derzeit vor einer beruflichen Entscheidung und versuche mir darüber klar zu werden was der richtige nächste Schritt ist und hoffe hier auf Input um möglichst alle Aspekte im Blick zu haben ;)

Ich stehe kurz vor dem Wiedereinstieg in meine Firma, nachdem ich knapp 12 Monate krankheitsbedingt ausgefallen war und hatte heute ein Gespräch mit meiner PV wo es um ein paar Eckpunkte bzgl. des Wiedereinstiegs ging.

Ein Punkt war meine Weiterentwicklung und das nächste mögliche Projekt um die Richtung zu setzen. Als IT-Consultant bin ich bei Kunden unterwegs und daher muss das rechzeitig organisiert werden.
Vor meinem Ausfall war ich 3 Jahre lang zwangsmäßig als DevOpsler unterwegs, eigentlich wollte ich programmieren doch es ergaben sich leider keine Projektmöglichkeiten für einen Java Neuling. Das war Schade aber DevOps macht mir eigentlich auch viel mehr Spaß als reines programmieren, da ich es als abwechslungsreicher empfinde.

Mir ist jedoch wichtig auch zukünftig immer gut vermittelbar zu sein, sei es an einen Kunden oder falls ich mal die Stelle wechseln möchte. Was eben auch der Grund war warum ich die letzten Jahre eigentlich Java Expertise aufbauen wollte, als weiteres Standbein sozusagen, sollte DevOps nicht mehr gesucht werden, könnte man als Entwickler weiter machen.

Zudem frage ich mich ob man überhaupt ein guter DevOpsler sein kann wenn man keine tiefergehenden praktischen  Kenntnisse einer modernen Sprache hat. Ich habe in der Freizeit ein wenig was mit Java gemacht(wirklich nur Einstiegssachen), kenne so gut wie keine Frameworks(Spring, JAXB und Hibernate oberflächlich) und auch ansonsten müsste ich gerade wenn es um OOP gerade noch viel nachholen bzw. auch praktisch einsetzen und verstehen lernen. Die letzten Jahre war das zwar kein Problem aber ich pers. denke es ist sinnvoll zu verstehen wie das was ich als DevOps unterstützen möchte auch funktioniert, nur so kann man wirklich gut werden.

Meine PV hätte mich gerne weiter als DevOpsler, da ich da gut unterwegs bin(bzw. war, ist ja ein wenig her) und es bei uns eh viel zu wenig DevOpsler gibt und daher viele Projekte abgelehnt werden müssen, weil keine Leute dafür da sind.

Mein Bauchgefühl rät mir aktuell dazu aber erst einmal fit in einer OO Sprache zu werden um zukünftig attraktiv für den Arbeitsmarkt zu bleiben und wie auch bereits geschrieben überhaupt besser zu verstehen wie das alles funktioniert um es dann auch besser unterstützen zu können. Gleichzeitig bin ich mir aber auch nicht 100% sicher ob da nicht einfach auch mein Frust mitreinspielt das ich schon seit Jahren eigentlich diesen Skill aufgebaut haben möchte und es bisher nie geklappt hat. Daher bin ich mir aktuell nicht sicher ob ich das für mich objektiv bewerten kann.

Nun habe ich eine Menge geschrieben was mir gerade durch den Kopf geht. Hoffe ich konnte euch vermitteln was mein Problem ist und würde mich freuen wenn Ihr eure Meinungen dazu einbringen könntet :)

Liebe Grüße und einen sonnigen Tag noch :)

 

 

 

 

Geschrieben (bearbeitet)

Shellscripting, kleine HelferApps mit Python, Pipleines mit Groovy, Buganalyse und bereinigung im Bereich Java Backend/JS/Vue, wobei das fixen von Bugs eben recht langsam war, Fehler waren schnell gefunden aber fürs Lösen dieser musste ich dann immer viel nachlesen und häufig klappte die Lösung dann auch nicht direkt.

Bestehenden Code runterlesen ist fast nie ein Problem, schwierig wird es für mich z.B. immer dann wenn ich selber was neu schreibenmuss.

Die Sachen klappen am Ende dann fast immer, aber nicht so elegant und hübsch wie bei den anderen. Wo andere mit Lamdas als elegant schnell verarbeiten oder mit Streams arbeiten, mach ich es irgendwie immer umständlicher und länger(vom Code her).

Keine Ahnung wie ich das erklären soll, in der Theorie kenne ich Java ganz gut, aber in der praktischen Umsetzung fehlt mir dann eben die Erfahrung und ich neige dann dazu sachen (für mich) einfacher zu lösen, also einfachere Statements die dafür mehr Codezeilen produzieren um es platt auszudrücken xD.

Ich merke mir aber eben auch vieles dann einfach nicht, wo andere ganze Backends in Java mit x Frameworks aus dem Kopf an einem Tag runterschreiben muss ich immer nachlesen und nochmal schauen wie das genau funktionierte.

Aber ja du hast sicher Recht mit der Andeutung das ich mehr Ops als DevOps gemacht habe. Kubernetes, orchestrieren, Docker, Build Pipelines aufsetzen, Ansible, Vagrant usw. sind eben eher Ops Dinge.

Bearbeitet von BiteForce
Geschrieben
vor 2 Stunden schrieb BiteForce:

hellscripting, kleine HelferApps mit Python, Pipleines mit Groovy, Buganalyse und bereinigung im Bereich Java Backend/JS/Vue

Hm, ich bin etwas unschlüssig - Tendenziell würde aber sagen, dass du bei der Triangle Allgemeinwissen-Expertenwissen-Devops-Zeit schon am maximum des Möglichen angekommen bist.

Du sprichst von:

1) Python

2) Groovy

3) Java

4) JS und die dazu gehörigen Frameworks

 

Teilen wir deine Arbeitszeit in Prozente auf, dann bist du aktuell ja meist im Ops Bereich, sagen wir einfach mal das sind 3 von 5 Tagen, also 60%.

Dann verbleiben 40% (2 Tage) für alle vier Programmiersprachen. Macht aufgeteilt auf JS/Vue und Java maximal 20% each. Heißt du müsstest versuchen mit einem Tag in der Woche "tiefe" Expertiese aufbauen. - Nun, das ist ungefähr so wie wenn man durch einmal in der Woche Sport zum Marathonläufer werden will. Es kann hypothetisch funktionieren, bei den meisten von uns wird das aber eher nix.

 

 

vor 2 Stunden schrieb BiteForce:

ich neige dann dazu sachen (für mich) einfacher zu lösen, also einfachere Statements die dafür mehr Codezeilen produzieren um es platt auszudrücken

 

Just saying: Es gibt sogar Firmen, die explizit Lesbarkeit/Wartbarkeit vor maximaler Performance stellen. Aber ja ich weiß was du meinst.

Geschrieben
vor 4 Stunden schrieb BiteForce:

sollte DevOps nicht mehr gesucht werden

DevOps ist jetzt kein Trend, der morgen vorbei sein wird. Deshalb halte ich die Sorge für unberechtigt.

vor 4 Stunden schrieb BiteForce:

Mein Bauchgefühl rät mir aktuell dazu aber erst einmal fit in einer OO Sprache zu werden um zukünftig attraktiv für den Arbeitsmarkt zu bleiben und wie auch bereits geschrieben überhaupt besser zu verstehen wie das alles funktioniert um es dann auch besser unterstützen zu können.

Unterschätze nicht, OOP und eine Programmiersprache zu beherrschen. Das geht weit viel mehr über die Syntax hinaus und benötigt lange und viele Jahre. Und dann sprechen wir noch gar nicht von den ganzen Frameworks und Tools. Das heißt, der Aufwand ist einfach riesig.

DevOps ist jetzt auch kein kleiner Bereich (siehe z. B. auch https://roadmap.sh/devops). Z. B. alleine Deployments auf n Kubernetes Cluster ist jetzt nichts, was man mal so eben kurz lernt. Ich halte es darum sinnvoller, dich auf DevOps-Tehmen zu spezialisieren. Was willst du deine Zeit denn mit einer Programmiesprache "vergeuden"?

vor 4 Stunden schrieb BiteForce:

Zudem frage ich mich ob man überhaupt ein guter DevOpsler sein kann wenn man keine tiefergehenden praktischen  Kenntnisse einer modernen Sprache hat.

Ja, kann man. Du solltest dennoch in etwa wissen, wie man etwas baut. Zum Beispiel bei Java-Projekten Gradle und Maven. Aber damit kann man sich ja auseinander setzen.

vor 4 Stunden schrieb BiteForce:

Gleichzeitig bin ich mir aber auch nicht 100% sicher ob da nicht einfach auch mein Frust mitreinspielt das ich schon seit Jahren eigentlich diesen Skill aufgebaut haben möchte und es bisher nie geklappt hat.

Das kann ich dir natürlich auch nicht sagen. Manchmal muss man halt auch eine Türe schließen, dafür öffnet sich aber auch eine andere gute Türe. Natürlich vorausgetzt, du möchtest das überhaupt machen.

Beides (gleichzeitig) auf einem hohen Level zu machen halte ich allerdings für schwierig.

Geschrieben (bearbeitet)
vor 18 Stunden schrieb BiteForce:

Die Sachen klappen am Ende dann fast immer, aber nicht so elegant und hübsch wie bei den anderen. Wo andere mit Lamdas als elegant schnell verarbeiten oder mit Streams arbeiten, mach ich es irgendwie immer umständlicher und länger(vom Code her).

Dieses Niveau erreicht man auch nur, wenn man über Jahre verdammt viel programmiert. Mir hat es damals geholfen, von mir fertig gestellte Projekte immer weiter verbessern zu wollen und mich gleichzeitig weiterführend mit den Inhalten er jeweiligen Sprache zu befassen (Java, JS). Erste Anwendungen waren Spaghetticode und bestanden aus einer (gefühlt) riesigen Datei. Später habe mich immer weiter damit befasst, wie ich was am besten in wiederverwendbare einzelne Komponenten aufteilen kann, Bücher gelesen, Videos geschaut, in andere Projekte reingeguckt und einiges für mich selbst mitgenommen.

Gleichzeitig ist es auch wichtig, sich innerhalb der Sprachversionen zu bewegen. Java 8 ist eben nicht Java 17 (LTS). ES5 ist nun mal nicht ES7. ES6 hat in JavaScript erstmal die hässlichsten Lösungen für den this-Kontext (that/bind) durch elegantere Vorgehensweisen ersetzt. Die Sprachen werden fortwährend weiterentwickelt und es wird immer einen Zeitpunkt geben, an dem man etwas von früher hätte besser lösen können. Viel wichtiger ist, dass der Code hervorragend (auch ohne Kommentare) gelesen und verstanden werden kann und man leicht damit weiterarbeiten kann. Da ist es mir persönlich egal, ob nun ein Lambda verwendet wurde oder nicht.

Ich habe in beiden oben angeführten Sprachen zumindest halbwegs erträgliche Fertigkeiten und viele Jahre investiert. Meine erste Anwendung (etwa 8 000 - 10 000 Zeilen) habe ich damals in drei Wochen geschrieben. Vergleichsweise anständig entwickeln hingegen dauerte eher drei praxisreiche Jahre. 😁 Frustriert habe ich alte Projekte gelöscht, weil die sich einfach nur schlecht verändern ließen. Neu gelerntes wollte ich ebenfalls implementieren (z. B. asynchrone Programmierung, Promises in JS), also wieder alles von vorne... dann habe ich Fehler entdeckt, die sich über den ganzen Code erstreckten, also wieder alles von vorne... dadurch hatte ich den größten Lerneffekt. Und ich lerne noch immer jeden Tag dazu, mit dem Unterschied, dass ich mir zumindest keine Basics mehr reinziehe.

In meiner Umschulung habe ich später dann Python und C# gelernt. Und was soll ich sagen? Was ich darin schreibe ist -Überraschung- Spaghetticode. Ich benutze die Sprachen einfach viel zu selten, um aus dem Kopf zu wissen, wie ich etwas besser löse. Ich weiß aber, dass das mit regelmäßiger Praxis automatisch besser aussehen würde.

Zusammengefasst glaube ich, du hast sehr hohe Erwartungen an dich selbst, die du nur erfüllen kannst, wenn du verdammt viel mit einer Sprache arbeitest. Sprachen werden immerzu erweitert, weshalb es eigentlich immer bessere Lösungen geben wird, die man noch nicht kannte. Das kommt durch die regelmäßige Praxis mit einer Sprache automatisch. Kein Betrieb kann erwarten, dass ein Anfänger in einer bestimmten Sprache auf diesem Niveau programmieren kann.

Bearbeitet von Feature
Geschrieben

Sorry für den Doppelpost. Mir fiel da noch etwas ein:
Stackoverflow nutzen! Das Geile daran ist nicht nur, dass man dort Hilfe bekommt. Die Leute posten da nahezu alle unterschiedliche Codes, der eine eleganter als der andere. Das bestätigt a) meine vorherigen Aussagen und b) lernt man dadurch unterschiedliche Vorgehensweisen besser kennen.

Geschrieben

Moin :),

erst einmal Danke für all euer Feedback!
OK, bedeutet das meine Entscheidung am Ende darauf aufbauen sollte, OB ich Java Entwickler werden möchte oder im DevOps Bereich bleiben will.

Als Java Entwickler könnte ich mich dann auf das Level weiterentwickeln das ich bisher im Kopf hatte, als DevOpsler werde ich wohl vermutlich dann nie großartig weiterkommen was Java angeht. Gilt natürlich auch andersherum wenn ich Java Entwickler werde, werde ich wohl nicht mehr die Zeit haben parallel auch die ganzen DevOps Themen weiter tiefer zu behandeln.

Wie seht ihr das denn bzgl. 2tes Standbein bzw. universellere Einsetzbarkeit/Jobsuche?

Irgendwann sollte ich mich ja auch mal auf einen Weg festlegen und spezialisieren. Gibt vermutlich nur wenig Bedarf am Markt für Generalisten, die alles können aber nirgendwo tieferes Wissen haben.

 

Geschrieben
vor 54 Minuten schrieb BiteForce:

Gibt vermutlich nur wenig Bedarf am Markt für Generalisten, die alles können aber nirgendwo tieferes Wissen haben.

Das würde ich so nicht sagen. Ich bin eher generalistisch unterwegs und stelle im Umfeld der Spezialisten immer wieder fest, dass das doch ein Skill ist, den kaum jemand hat (auch wenn es mir selbst immer selbtsverständlich vorkommt). Habe auch genug Jobangebote ;) Außedem kann man ja weg vom klassischen Generalisten in Richtung "T Shaped skill" (einfach mal danach googlen und Bilder anschauen).

Ich würde aber auch sagen, dass DevOps es eher erfordert, sich ständig (!) mit vielen unterschiedlichen Themen befassen zu müssen. 

vor 58 Minuten schrieb BiteForce:

OK, bedeutet das meine Entscheidung am Ende darauf aufbauen sollte, OB ich Java Entwickler werden möchte oder im DevOps Bereich bleiben will.

Ich weiß ja nicht, warum du da so auf Java festgelegt bist. Natürlich macht es Sinn, sich irgendwann zu fragen, in welche Richtung man überhaupt möchte - ich stelle mir diese Frage seit ich als Jugendlicher mit IT angefangen habe. Die Entscheidung darauf kann dir aber niemand abnehmen. Grob würde ich sagen, mach doch einfach das, was dir mehr Spaß macht und zu deinen Fähigkeiten passt.

vor einer Stunde schrieb BiteForce:

das Level weiterentwickeln das ich bisher im Kopf hatte

Es gibt immer ein nächstes Level, auch im DevOps. Den Endgegner wirst du nie zu sehen bekommen ;)

Geschrieben (bearbeitet)
vor einer Stunde schrieb BiteForce:

Als Java Entwickler könnte ich mich dann auf das Level weiterentwickeln das ich bisher im Kopf hatte, als DevOpsler werde ich wohl vermutlich dann nie großartig weiterkommen was Java angeht. Gilt natürlich auch andersherum wenn ich Java Entwickler werde, werde ich wohl nicht mehr die Zeit haben parallel auch die ganzen DevOps Themen weiter tiefer zu behandeln.

Warum denn unbedingt Java ? Wenn du bereits im DevOps Universum bist, dann könntest du doch K8s Operatoren oder andere K8s Software in Go schreiben.

Generell könntest du versuchen eine "echte" SRE-Stelle zu bekommen. Da wirst du in der Regel mehr beim Programmieren gefordert :)

Bearbeitet von Flammkuchen
Geschrieben
vor 2 Stunden schrieb Flammkuchen:

Generell könntest du versuchen eine "echte" SRE-Stelle zu bekommen. Da wirst du in der Regel mehr beim Programmieren gefordert :)

Rein aus Interesse: Was programmiert man denn so spannendes, wenn man ein "echter" SRE ist?

Geschrieben
vor 3 Stunden schrieb pr0gg3r:

Das würde ich so nicht sagen. Ich bin eher generalistisch unterwegs und stelle im Umfeld der Spezialisten immer wieder fest, dass das doch ein Skill ist, den kaum jemand hat (auch wenn es mir selbst immer selbtsverständlich vorkommt). Habe auch genug Jobangebote ;) Außedem kann man ja weg vom klassischen Generalisten in Richtung "T Shaped skill" (einfach mal danach googlen und Bilder anschauen). ...

Kann ich so unterschreiben. Danke für den Begriff "T-Shaped Skill", kannte ich noch nicht. Ich "firmiere" als Scannerpersönlichkeit. Wobei ich den Teil mit der Hochbegabung etwas überbewertet, bzw. übertrieben finde.

Geschrieben
vor 2 Stunden schrieb 0x00:

Rein aus Interesse: Was programmiert man denn so spannendes, wenn man ein "echter" SRE ist?

Du kannst die Zuverlässigkeit und Skalierung einer Applikation ja nicht nur durch Infrastruktur erhöhen, sondern eben auch innerhalb der App.

Die meisten DevOps berühren nie den eigentlichen App-Code (mich eingeschlossen), als "echter" SRE kann das schon eher vorkommen. 

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...