Java Quereinsteiger Roadmap und Fragen

hieloseco

Mitglied
Hallo Community,
ich bin seit ca. 10 jahre FE Entwickler (JS Full Stack) und möchte gerne mich in den Bereich BE auch weiterbilden und/oder evtl. als Full Stack arbeiten, Hauptsächlich Java Web API Entwicklung.
Zu berücksichtigen ist dass ich etwas älter und Berufstätig bin und möchte gezielt die Sache angehen und wenig mit verschiedene dinge der nicht relevant sind herum experimentieren.

Ich habe mit PHP und Symfony probiert, hat mir aber nicht so gut gefallen, Java hingegen bereitet mir spaß, allerdings die dazugehörige Tools sind für mich ein wenig abstrakt, hoffe dass von euren Erfahrung profitieren zu können, ich habe viel Recherchiert und möchte von euch wissen was way to go ist, nicht falsch verstehen ich habe sehr viel gelesen und möchte nur nicht etwas falsches interpretieren und überprüfe ob alles richtig verstanden hab, daher eure Meinung/Erfahrung aus der Industrie Einsatz interessiert mich sehr.
Was sind der PHP Pendant in Java ?
  • PHPMyAdmin für MySQL DB Oberfläche, Java Pendant?
  • Was sind die gängigste Framework in Java wie Symfony/Laravel in PHP?
  • Gibt es Package Manager wie in PHP/Composer oder JS/Nodem für Java?
  • Wird Doctrine in der Java Umfeld zwecks ORM und Data Persisting auch eingesetzt oder Hibernet übernimmt die Rolle ?
  • Reicht es für den Anfang Maven und Jankins zu lernen aus, oder gibt es Alternativen die mehr eingesetzt werden?
  • Ist vernünftig wenn ich mit Java 8 und Spring Boot 2 beginne? Ich würde z.B. ein Neueinsteiger in FE nicht empfehlen direkt mit ReactJS Hooks anfangen egal wie cool die Features sind weil sehr viele reale Projekte sind Klassen basierend, wie ist in Java?

Ich habe in Moment mit Java Syntax begonnen, die Konzepte wie ORM, Testing, OOP, MVC, CRUD sind soweit mir bekannt ( Wobei als FE Entwickler was testen betrifft naja… )
Nächste Stufe wäre dann für mich Business Logik und Microservices verstärkt zu lernen, anschließend mich mit Spring Boot 2 zu befassen.
Dann zu mocking und testing übergehen mit Mockito und Junit.

Kann danach mit der Vorgehensweise bedenkenlos in einem Unternehmen der Scrum eingesetzt wird ( Agile Umgebung ) dann arbeiten?

PS: Ich habe mir einen Roadmap (PDF im Anhang oder Link hier: Java Roadmap) im englischsprachigen Raum besorgt, würde gerne dies besser durchleuchten und Sachen daraus extrahieren die ich wirklich in alltägigen Arbeit gebrauchen könnte.


Ich bedanke mich im voraus für eure Meinung!

LG
 

Anhänge

  • Java_Roadmap.pdf
    127,1 KB · Aufrufe: 14

AndiE

Top Contributor
Als Hobby-Programmierer würde ich mal vorschlagen Spring 2 in Eclipse nutzen und die "petclinic" auufzurufen. Es ist eine App, die eine Tierklinik darstellt, und wesentliche Funktionen etc. beinhaltet. Hier würde ich erstmal versuchen, das alles zu verstehen und als nächstes eine eigene Anwendung in ähnlicher Komplexität zu erstellen. Ggf. können da Anwendungen mit JSF helfen, die im Netz und Büchern ganz gut erklärt sind. Inwieweit man da mit Scrum arbeiten kann, das ja auch Testen und Mocken beinhaltet, weiß ich nicht. Inwieweit es da Bücher gibt, weiß ich nicht( Scrum mit Spring).

Auf jeden Fall denke ich, dass die Anwendung der Beans, Platzhalter und Annotationen schon genug Neuland gegenüber PHP sind.
 

M.L.

Top Contributor
Ein paar Stichworte (mit --> markiert):
Was sind der PHP Pendant in Java ?
--> falls existent...
  • PHPMyAdmin für MySQL DB Oberfläche, Java Pendant?
  • --> PHPMyAdmin ist "nur" für MySQL, Oracle/PostgreSQL/MS SQL Server/.. bringen jeweils eigene Programme mit. Evtl. haben die verwendeten IDES (Eclipse, NetBeans, IntelliJ,...) passende Plugins.
  • Was sind die gängigste Framework in Java wie Symfony/Laravel in PHP?
  • --> JSF, Vaadin, Spring (Web) MVC, JSP / Servlets (zu-Fuss-Lösung),...
  • Gibt es Package Manager wie in PHP/Composer oder JS/Nodem für Java?
  • --> Ant (veraltet), Maven, Gradle
  • Wird Doctrine in der Java Umfeld zwecks ORM und Data Persisting auch eingesetzt oder Hibernate übernimmt die Rolle ?
  • --> nennt sich hier eher JPA, JDBC (zu-Fuss-Lösung), MyBatis, Hibernate,...
  • Reicht es für den Anfang Maven und Jenkins zu lernen aus, oder gibt es Alternativen die mehr eingesetzt werden?
  • --> dürfte für den Anfang reichen
  • Ist vernünftig wenn ich mit Java 8 und Spring Boot 2 beginne?
  • --> "Erst" mit der elementaren Syntax, danach mit den Neuerungen von Java8 (Streams, anonyme Klassen) und höher (wobei diese "nur" die "zu-Fuss-Lösungen" älterer Javaversionen erweitern. Die Lesbarkeit neueren Javacodes soll darunter jedenfalls leiden)


Kann danach mit der Vorgehensweise bedenkenlos in einem Unternehmen der Scrum eingesetzt wird ( Agile Umgebung ) dann arbeiten?
--> Probieren kann man es ja mal. Mangels relevanter Programmiererfahrung vielleicht sogar erst als Tester.
 

mihe7

Top Contributor
allerdings die dazugehörige Tools sind für mich ein wenig abstrakt,

Den Ansatz von Java kennst Du eigentlich schon von JavaScript: die Spezifikation (= abstrakt) steht im Vordergrund, die Implementierung (= konkret) soll möglichst austauschbar sein. Im JS-Umfeld würde EcmaScript der Spezifikation entsprechend, und z. B. V8, SpiderMonkey, etc. wären dann Implementierungen davon. Es spielt aber für Dich als Entwickler eine untergeordnete Rolle, welche JS-Engine zum Einsatz kommt.

Dieses Prinzip zieht sich im Java-Umfeld durch: es gibt alle möglichen Implementierungen einer Spezifikation (Java selbst eingeschlossen). So ist auch Java EE nur eine Sammlung von Spezifikationen und für jede gibt es meist diverse Implementierungen. Natürlich gibt es auch Ausnahmen: Spring z. B. ist ein konkretes Framework.

Deine Fragen bzgl. PHP sind IMO nicht direkt beantwortbar, ich versuche es mal:
  1. PHPMyAdmin ist nur ein Webclient für MySQL. Den kannst Du, wenn Du willst, natürlich weiterhin benutzen - dann musst Du Dir halt zusätzlich den benötigten Stack installieren. Ich verwende lieber das MySQL CLI oder das Workbench.
  2. Java EE und Spring, darin die jeweiligen "Komponenten"
  3. Das übernehmen in Java die Build-Tools: Maven und Gradle, wobei im EE-Umfeld eher Maven zum Einsatz kommt.
  4. Im Java-Umfeld existiert die JPA. Hibernate implementiert die JPA, genauso wie Eclipselink. Die Produkte geben natürlich noch etwas obendrauf: Du kannst diese Funktionen verwenden, verlässt dann aber den Standard.
  5. Maven ist ein Build-Tool und Jenkins ein CI-Server. Das ist ungefähr so, als ob Du fragen würdest, ob es im JS-Umfeld für den Anfang reicht, npm zu lernen.

Es ist ein ganz fürchterlicher Trend, dass jeder meint, Microservices einsetzen zu müssen. Die Notwendigkeit für und die Umsetzung von Microservices ergibt sich in meinen Augen von ganz alleine. Alles andere führt nur zu unnötiger Komplexität.
 

hieloseco

Mitglied
@AndiE
Vielen dank für die Antwort, ich arbeite seit einiger zeit mit JSF und JSP, wenn es auch meist copy pastes sind, in moderne Entwicklung werden FE Frameworks eingesetzt und Java FE ansatz ist was ich absolute nicht möchte.
Placeholder und co sind nicht wirklich Neuland für mich, Z.B. Annotation sind in Angular (Typescript) auch vorhanden sie heißen nur Decorators.
Ich möchte nicht bei uns in der Firma arbeiten, das BE ist eine reine Katastrophe, wir haben unter anderem einen Großkunde der Moloch Projekt im Einsatz hat, jeder macht was er will... java6, Solr, Guava, PIM, Hybris, JSF, Seam, SAP zeug u.v.m. im Einsatz, das FE ist auch schlecht, wir haben jQuery, AngularJS, ReactJS im einsatz und jetzt diskutieren über Einsatz von Vue.js auch noch, wohl bemerkt alles in einem Projekt und Production Mode!

@M.L.
Vielen Dank für die Antwort, hat sehr gut geholfen.
Was DB-Tools angeht muss nicht unbedingt PHPMyAdmin sein, möchte nur eine Oberfläche zur DB haben, womit arbeitest du so? Was benutzt man standardmäßig in Java Umfeld
und ja Syntax und elementaren sind wichtig aber sie waren keine wirkliche Herausforderungen gewesen.

@mihe7
Der Vergleich mit Spezifikation und Implementierung war für mich extrem gut und verständlich, vielen dank dafür !
1. PHPMyAdmin muss nicht unbedingt sein, ich werde mir MYSQL CLI und Workbench anschauen, welche davon würdest du explizit mir empfehlen wenn du eins davon einsetzen könntest ?
5. Da reden wir von einander vorbei, selbstverständlich kannst du in FE npm oder yarn einsetzen ! Das ist in Java auch nicht anders, Z.B. wir setzen auf der Arbeit Ant ein, es gibt auch Maven oder Gradle, die Frage war welche davon Industrie-Standard ist , so dass ich am Anfang den Platzhirsch lerne und schneller voran komme, später kann man die anderen auch sich anschauen wenn in der Firma eingesetzt werden.
Das gilt auch für Jenkins, wobei denke dass Jenkins überall der Platzhirsch ist.

Zu den Thema Microservice, ehrlich gesagt in Node.js Umgebung setze ich keins ein und habe mich immer noch nicht damit befassen können, da ich z.Z. in Tonnen weise Arbeit ersticke(Legacy Codes), in meiner Freizeit als Familienvater muss ich Zeit in sowas stecken da sie sehr gefragt sind, in fast jeder Stellenanzeige steht drin und ich denke Microservices und Component Based Programming sind in Zukunft relevanter, allerdings was das Thema Komplexität angeht kann ich dich verstehen, sind höchstwahrscheinlich schwerer zu entdecken, was womit kommuniziert, zur Thema Architektur, es gibt aber in Firmen doch Software Architekten die dafür zuständig sind, oder irre ich mich?


Habe ich den Part mit JPA und Hibernate richtig verstanden? JPA ist der Spezifikation und Hibernate ist der Tool. Folge Frage: Brauche ich Hibernate wenn ich Spring Boot einsetze zwecks ORM oder in Spring Boot gibt es alternative zur Hibernate?

Mein ziel ist mit Java (Nur das Backend kein JSF o.Ä.), Services zu schreiben, per REST API kommunizieren und Daten in der DB persistieren, Daten von der DB fetchen und als JSON an FE liefern. Das aber wie möglich am Anfang einfach zu halten.
Soweit ich verstanden habe dafür brauche ich folgendes:
  • Maven als Build Tool
  • Jenkins als CI Server (lernen fürs Unternehmen Einsatz, für Private lern-projekte werde ich auf Heroku Hosten)
  • MySQL CLI oder Workbench als Admin Panel
  • Sprint Boot als Web Framework
  • Docker als Container System
  • Junit als Test Framework
  • Mockito Mocking Framework
  • IntelliJ als IDE
Ist etwas hier zu viel/zu wenig oder gar ersetzbar?

Vielen Dank und LG
 

M.L.

Top Contributor
Immerhin einer, der sein Geld nicht mit Chillen verdienen will:
wir haben jQuery, AngularJS, ReactJS im einsatz und jetzt diskutieren über Einsatz von Vue.js auch noch,
Das die versch. JS-Frameworks ihre Stärken und Schwächen haben, ist ja bekannt. Aber als Kompromiss: Web Components und Micro Apps, siehe https://entwickler.de/online/javascript/angular-vue-react-web-components-579874307.html

möchte nur eine Oberfläche zur DB haben,
Es gibt kein Standardwerkzeug im Java-Umfeld. Ansonsten MySQL / PHPMyAdmin, Oracle / Oracle SQL Developer, MS SQL Server / SQL Server Management Studio, ein DB-Explorer,...
Syntax und elementaren sind wichtig aber sie waren keine wirkliche Herausforderungen gewesen.
Dann mal ein Beispiel aus einem aktuellen Thread vom 16. Juli ("Arrays"): https://www.java-forum.org/thema/arrays.185421/#post-1190792 (ein Bspl. wie man auch mit Java Probleme beliebig kompliziert bearbeiten kann)

die Frage war welche davon Industrie-Standard ist
Ant, Maven, Gradle. Wobei das aber von der Firma abhängen dürfte
Das gilt auch für Jenkins, wobei denke dass Jenkins überall der Platzhirsch ist.
könnte nach dem Ende von "Hudson" sogar stimmen
Zu den Thema Microservice
Zum Einlesen: https://www.innoq.com/de/articles/2019/01/technologien-fuer-microservices/ (und evtl. https://www.javacodegeeks.com/2019/...uous-integration-and-continuous-delivery.html )

JPA ist der Spezifikation und Hibernate ist der Tool.
JPA ist die im JDK mögliche Standardoption (also von Oracle spezifizert), Hibernate ein Alternativansatz. Wobei sich die Ideen der Frameworks untereinander beeinflussen können.
Folge Frage: Brauche ich Hibernate wenn ich Spring Boot einsetze zwecks ORM oder in Spring Boot gibt es alternative zur Hibernate?
https://start.spring.io/ -> "Search dependencies to add ": JPA, MyBatis,... sind ebenso möglich
  • Maven als Build Tool
  • --> kein Muss, erleichtert die Arbeit aber. Das obengenannte Start Spring setzt z.B. Maven ein
  • Jenkins als CI Server (lernen fürs Unternehmen Einsatz, für Private lern-projekte werde ich auf Heroku Hosten)
  • MySQL CLI oder Workbench als Admin Panel
  • Sprint Boot als Web Framework
  • --> "Spring Web Starter" um genau zu sein
  • Docker als Container System
  • --> kein Muss
  • Junit als Test Framework
  • Mockito Mocking Framework
  • IntelliJ als IDE
  • --> oder Eclipse, NetBeans (beides evtl. mit Zusatzplugins, die IntelliJ standardmässig schon dabei hat)
Ist etwas hier zu viel ...?
--> kommt auf den Zeitaufwand an, den man investieren will/kann/muss...
 
X

Xyz1

Gast
Ich verstehe alle Teile der Roadmap aber Deine Fragen nicht. :D Es wird wohl ein bis zwei Jahre dauern, ehe du vom HS FE developer zum T-Shaped (FS) BE developer wirst. Ob FS developer generell existieren frage nicht nur ich mich. o_O
Hier ist mal etwas interessantes: https://medium.com/mop-developers/we-need-t-shaped-full-stack-developers-4c62c9d757a0 :
A “Full-Sucks” developer is a person that hasn’t invested time into mastery. This kind of developer is just building software that works even if it means stitching NPM modules together into a Node.js app and copying code from stack-overflow while not caring for quality. Making it work is more important than making it perfect.
Full-suck is not a focus and specialization problem, it’s a problem of attitude.
 

mihe7

Top Contributor
Ich möchte nicht bei uns in der Firma arbeiten
LOL - beste Voraussetzungen :)

ich werde mir MYSQL CLI und Workbench anschauen, welche davon würdest du explizit mir empfehlen wenn du eins davon einsetzen könntest ?
Ganz klar Workbench. Das CLI in erster Linie für Automatisierung via Scripte. Aber wie gesagt, Du kannst als Client verwenden, was Du willst. Anderes DBMS, anderer Client.

in moderne Entwicklung werden FE Frameworks eingesetzt und Java FE ansatz ist was ich absolute nicht möchte.
Hat alles seine Vor- und Nachteile.

Z.B. wir setzen auf der Arbeit Ant ein, es gibt auch Maven oder Gradle, die Frage war welche davon Industrie-Standard ist , so dass ich am Anfang den Platzhirsch lerne und schneller voran komme, später kann man die anderen auch sich anschauen wenn in der Firma eingesetzt werden.
Naja, ant ist ja eher "make für Java". Maven ist m. E. (noch) klar der Standard im EE-Umfeld. Es würde mich aber auch nicht wundern, wenn das irgendwann Gradle übernimmt.

JPA ist der Spezifikation und Hibernate ist der Tool. Folge Frage: Brauche ich Hibernate wenn ich Spring Boot einsetze zwecks ORM oder in Spring Boot gibt es alternative zur Hibernate?
Ja, JPA ist eine Spezifikation und Hibernate bietet eine Implentierung an (mann kann aber auch die Hibernate-eigene API verwenden). Standardmäßig verwendet "Spring Data JPA" Hibernate als JPA-Implementierung. Das lässt sich aber ändern (https://www.baeldung.com/spring-eclipselink)

Mein ziel ist mit Java (Nur das Backend kein JSF o.Ä.), Services zu schreiben, per REST API kommunizieren und Daten in der DB persistieren, Daten von der DB fetchen und als JSON an FE liefern.
Das ist ziemlich einfach auch nur mit Java EE machbar: REST-Services = JAX-RS, JSON = JSON-P und/oder JSON-B, Persistenz = JPA und/oder JDBC. CDI für Injection. Das sind wieder alles APIs, gegen die Du programmierst. Mit dem microprofile gibt es dann noch einfache Lösungen zur fault tolerance.

Ist etwas hier zu viel/zu wenig oder gar ersetzbar?
Sieht IMO ok aus, wobei "brauchen" so eine Sache ist... Interessant sind vielleicht noch Flyway oder Liquibase.

Zum Thema Microservice: der von @M.L. verlinkte Artikel zeigt schön die Vielfältigkeit der Probleme. Dagegen ist nichts einzuwenden, wenn das Verhältnis zum Nutzen stimmt. Oftmals ist es leider so, dass MS-Architektur feststeht, bevor man weiß, was überhaupt entwickelt werden soll. Einfach, weil es modern ist und es jeder macht. Wenn Du darauf keinen Einfluss hast, dann stellt sich für Dich die Frage natürlich nicht.
 

mrBrown

Super-Moderator
Mitarbeiter
  • --> "Erst" mit der elementaren Syntax, danach mit den Neuerungen von Java8 (Streams, anonyme Klassen) und höher (wobei diese "nur" die "zu-Fuss-Lösungen" älterer Javaversionen erweitern. Die Lesbarkeit neueren Javacodes soll darunter jedenfalls leiden)
Anonyme Klasse sind nicht neu, das neue sind Lambdas, die jeder JS-Entwickler direkt versteht, gibts da ja als Arrow-Functions. Gleiches gilt für Streams, die sind recht ähnlich zu Arrays in JS.
Die Lesbarkein leidet nur, wenn man’s missbraucht - mir fällt allerdings kein Sprachfeature ein, für das es nicht gilt.

Dann mal ein Beispiel aus einem aktuellen Thread vom 16. Juli ("Arrays"): https://www.java-forum.org/thema/arrays.185421/#post-1190792 (ein Bspl. wie man auch mit Java Probleme beliebig kompliziert bearbeiten kann)
Für jemanden mit JS-Hintergrund dürfte sie Syntax allerdings ziemlich üblich sein, da ist funktionale Programmierung recht normal.
 

mrBrown

Super-Moderator
Mitarbeiter
BTW:
Z.B. Annotation sind in Angular (Typescript) auch vorhanden sie heißen nur Decorators.
Annotationen in Java und Decorators in TS sind allerdings völlig unterschiedliche Dinge, bis auf das '@' ;)

Annotationen sind nicht wirklich mehr, als Maschinenlesbare „Kommentare“ am Code, die irgendwer irgendwann auswerten kann und damit irgendwas machen kann.
@NotNull an einem Feld kann zB bewirken, dass a) statische Analysetools zur Buildzeit prüfen, dass kein null zugewiesen wird, b) zur Compilezeit der Code verändert wird, der Exceptions schmeißt, wenn null benutzt wird, c) zur Laufzeit Validators das jeweilige Objekt auf validität prüfen können, oder d) einfach keinerlei Auswirkung auf irgendwas haben, weil nichts benutzt wird, was sie beachtet.
 

hieloseco

Mitglied
Anonyme Klasse sind nicht neu, das neue sind Lambdas, die jeder JS-Entwickler direkt versteht, gibts da ja als Arrow-Functions. Gleiches gilt für Streams, die sind recht ähnlich zu Arrays in JS.
Die Lesbarkein leidet nur, wenn man’s missbraucht - mir fällt allerdings kein Sprachfeature ein, für das es nicht gilt.


Für jemanden mit JS-Hintergrund dürfte sie Syntax allerdings ziemlich üblich sein, da ist funktionale Programmierung recht normal.
Da kann ich nur zustimmen, ob die dinge Array, Stream oder List heißen spielt an sich keine Rolle, man muss das Konzept verstehen, dann ist easy going. Als jemand der JS und Python programmiert/beherrscht und OOP kennt ist Java und die Features nicht wirklich schwer.
 

hieloseco

Mitglied
LOL - beste Voraussetzungen :)
Da laufen nur Zombies und Autisten als BE Entwickler rum und FE ist sowas von überqualifiziert, ich bin mit meiner FE Kollege meist im Sprint der am Mittwoch anfängt, schon am Freitag oder Montag mit dem Tasks Fertig, ich programmiere den restlichen Zeit nebenbei dann Python ML und DS und er C ( Ich habe Physik und Math.. studiert bevor ich zur Informatik gewechselt habe und er war C Programmierer ), Hauptsache wir berechnen unseren Großkunde 8std. am Tag und Tasks sind erledigt und Jenkins Ampel ist auf Grün :rolleyes:
Hat alles seine Vor- und Nachteile.
Da sehe ich und Valley anders, SPA und SSR sind way to go und es gibt absolute kein Grund veraltete Konzepte weiterhin zu benutzen, es ist ein Prozess (der leider in DE sehr laaaangsam läuft :D ) und löst die veraltete Systeme/Konzepte ab.
Naja, ant ist ja eher "make für Java". Maven ist m. E. (noch) klar der Standard im EE-Umfeld. Es würde mich aber auch nicht wundern, wenn das irgendwann Gradle übernimmt.
Ich höre/lese auch dass sehr viele Gradle gerne einsetzen.
 

M.L.

Top Contributor
JS und Python programmiert/beherrscht und OOP kennt ist Java und die Features nicht wirklich schwer.
Vor dem Hintergrund sicherlich. Umgekehrt dürfte die strenge Typisierung, der höhere Formalismus beim Codieren und die Menge an Werkzeugen zum Bearbeiten von Java-Code (am Anfang) erschlagend wirken. Zum Thema Werkzeuge: Subversion und Git wären noch Kandidaten.
 

hieloseco

Mitglied
Ich verstehe alle Teile der Roadmap aber Deine Fragen nicht. :D Es wird wohl ein bis zwei Jahre dauern, ehe du vom HS FE developer zum T-Shaped (FS) BE developer wirst. Ob FS developer generell existieren frage nicht nur ich mich. o_O
Hier ist mal etwas interessantes: https://medium.com/mop-developers/we-need-t-shaped-full-stack-developers-4c62c9d757a0 :
Welche Frage verstehest du nicht, ich habe viele gestellt:D. Jedes Roadmap ist Klar und verständlich weil Informationen enthält, in Praxis werden alles was da aufgelistet sind nicht eingesetzt, ich brauche das alles nicht, ich muss filtern ergo Exformation.

FS existiert schon allerdings in DE interpretieren die Firmen wie sie wollen um Entwicklern auszunutzen, wenn du FE, BE und Devops aufgaben verstehen und umsetzen kannst dann bist du FS, das ist die Definition was in den Statten die FAANG+M festlegen und umsetzen, logischerweise bist du dann obligatorisch Generalist und kannst du nicht alles Qualitativ, Best practice und vor allem schnell umsetzen.
T-Shaped ist allerdings meiner Meinung nach Hype und wird nicht in dev so gut funktionieren.

Hier in DE da wir sehr Lahm sind was Tech Konzerne und deren Knowledge angeht kenne ich wirklich kein Unternehmen die mit Z.B. SValley Techs mithalten kann, SAP und Wirecard einwenig aber das wars auch schon, daher für mich lohnt sich in das BE auch mich weiterbilden, da es PHP mir nicht gefällt und Python nicht so sehr eingesetzt wird ( weil Tech C fehlen ) bleibt Java nur übrig, in den Staaten wäre was anders, entweder wäre ich Data Scientist / ML Programmer oder JS Specialist.
In Tech Konzerne interessiert niemand was du programmierst, in sämtlich Technical Interviews Basis Fragen sind Algorithmen Fragen, selbst die Whiteboard Tech. Interviews.
 

hieloseco

Mitglied
Vor dem Hintergrund sicherlich. Umgekehrt dürfte die strenge Typisierung, der höhere Formalismus beim Codieren und die Menge an Werkzeugen zum Bearbeiten von Java-Code (am Anfang) erschlagend wirken. Zum Thema Werkzeuge: Subversion und Git wären noch Kandidaten.
Das stimmt, aus meiner Sicht (habe erst Assembler danach Python und JS programmiert) strenge Typisierung, CI Server, Testing und OOP und generell den Syntax als Geschwätzig und manchmal kompliziert/Zeitaufwendig ergo immer Kompilieren zu müssen, aber wenn man ein ziel hat soll solche dinge ja als Herausforderung sehen.
Ich will gar nicht wissen wie ein Vollblut Java developer der auf einmal JS machen muss, Sachen wie callbacks closures promisses auf dem kopf bekommt, sich überhaupt fühlen muss, der arme :D
 

hieloseco

Mitglied
Ich bedanke mich auch an alle die bis jetzt sich die zeit genommen haben um mich bei meiner Weiterbildung mit tolle Infos zu unterstützen! Ich weiß es zu schätzen!
 

mrBrown

Super-Moderator
Mitarbeiter
Das stimmt, aus meiner Sicht (habe erst Assembler danach Python und JS programmiert) strenge Typisierung, CI Server, Testing und OOP und generell den Syntax als Geschwätzig und manchmal kompliziert/Zeitaufwendig ergo immer Kompilieren zu müssen, aber wenn man ein ziel hat soll solche dinge ja als Herausforderung sehen.
CI-Server, Testing und OOP sollten doch auch für JS-Entwickler nichts ungewohntes sein, Kompilieren kennt man mit Babel, strenge Typisierung als Python-Entwickler ;)
So viel ungewohntes ist da doch gar nicht :p


Ich will gar nicht wissen wie ein Vollblut Java developer der auf einmal JS machen muss, Sachen wie callbacks closures promisses auf dem kopf bekommt, sich überhaupt fühlen muss, der arme :D
Klappt völlig problemlos :)

Zumindest die drei genannten Dinge dürften für Java-Programmierer nicht so schwieg (Promises noch am ungewohntesten, ist Abe ähnlich zu CompletableFuture)
 

hieloseco

Mitglied
CI-Server, Testing und OOP sollten doch auch für JS-Entwickler nichts ungewohntes sein, Kompilieren kennt man mit Babel, strenge Typisierung als Python-Entwickler ;)
So viel ungewohntes ist da doch gar nicht :p



Klappt völlig problemlos :)

Zumindest die drei genannten Dinge dürften für Java-Programmierer nicht so schwieg (Promises noch am ungewohntesten, ist Abe ähnlich zu CompletableFuture)
Nicht unbedingt, nicht jedes Unternehmen setzt CI Server ein, OOP vermeiden meisten FE Entwickler warum auch, dafür gibt es halt FW die sehr gut Unterstützung, darüberhinaus wie man beim ReactJS sieht die Tendenz geht Richtung Hooks und nicht Klassen. Python ist sowohl als auch Stark/Schwach typisiert. Für testen hat man meistens keine Zeit oder klappt es nicht so gut.

In JS wird nichts Kompiliert, Babel ist ein Transpiler und kein Compiler, er transpiliert ES6+ zu normalen JS für Brwoser und generiert kein executable code. Kompilierung findet allerdings im Browser statt, Parser >AST >Interpreter( Profiler Hackt ein und je nachdem entscheidet ob das kompiliert wird oder Interpretiert ) oder Compiler(optimized code) > Bytecode. Da sollte man aber auch nicht den call stack und memory heap vergessen, so funktioniert JS Engine. ;)
Das geht aber Richtung deep diving...
Ich glaube ich habe das ganze was Java BE betrifft richtig verstanden und mache erst mal schluss mit Recherche und Theorie und verarbeite die infos und fange mal an mit Java wenn die Zeit mir es erlaubt.
 

mrBrown

Super-Moderator
Mitarbeiter
nicht jedes Unternehmen setzt CI Server ein, OOP vermeiden meisten FE Entwickler warum auch, dafür gibt es halt FW die sehr gut Unterstützung, darüberhinaus wie man beim ReactJS sieht die Tendenz geht Richtung Hooks und nicht Klassen.
[...]Für testen hat man meistens keine Zeit oder klappt es nicht so gut.
Deshalb sagte ich „sollte“ :)

Python ist sowohl als auch Stark/Schwach typisiert.
Nein, Python ist stark typisiert. Python ist allerdings anders als Java dynamisch typisiert ;)

In JS wird nichts Kompiliert, Babel ist ein Transpiler
Selbstbeschreibung von Babel: ;)
https://babeljs.io/ hat gesagt.:
Babel is a JavaScript compiler.

Interpreter( Profiler Hackt ein und je nachdem entscheidet ob das kompiliert wird oder Interpretiert ) oder Compiler(optimized code)
Zumindest das passiert auch in der Hotspot-VM, wirklich kompiliert zu Maschinencode wird dort auch erst zur Laufzeit, wenn es sich lohnt - ist genauso ein JIT-Compiler wie die meiste JS-Engines ;)


Aber worauf ich eigentlich hinaus wollte: die Unterschiede und Probleme, die man da in der Theorie sieht, stellen sich meist in der Praxis als gar nicht so groß raus. Ich würd einfach mal anfangen mit, durchaus auch direkt mit Spring Boot 2 und Java 8. Die Konzepte im Tooling dürften keine großen Hindernisse sein, Dependencymanagement, Buildtool etc nutzt man mit JS ja auch. Die Sprache muss man halt lernen - aber das klappt einfach am besten wenn man sie einfach nutzt. Als einigermaßen Erfahrener Entwickler dürfte auch der direkt Einstieg mit Spring oder Java EEbkein große Problem sein.
 

hieloseco

Mitglied
Das mit Babel kenne ich auch, technisch gesehen wird nichts kompiliert, aber soll man nicht pingelig sein als Entwickler bin dankbar das sowas überhaupt entwickelt worden ist.
Beim Python ehrlich gesagt gibt auch sehr viele Diskussionen, richtige Nerds bestehen auch drauf dass nur Haskel Stark Typisiert ist, who knows!
Ich habe mir soeben diesen Kurs geholt und wenn ich einwenig dazu komme, setzte ich den Projekt auf und lege los, Praxis ist alles.;) Folge Fragen kommen bestimmt.
Mit dir sich austauschen macht spaß :) Schöne Woche wünsche ich euch!
 

mihe7

Top Contributor
Da sehe ich und Valley anders, SPA und SSR sind way to go und es gibt absolute kein Grund veraltete Konzepte weiterhin zu benutzen, es ist ein Prozess (der leider in DE sehr laaaangsam läuft :D ) und löst die veraltete Systeme/Konzepte ab.
Das lässt sich ständig beobachten: es kommt etwas neues raus und alles andere gilt als "veraltet". Ich sehe das etwas entspannter: es gibt verschiedene Ansätze, jeder hat Vor- und Nachteile.

Wir haben zehn Jahre alte JSF-Anwendungen im Einsatz, die mit minimalem Aufwand entwickelt und gewartet werden können: die Kunden sind zufrieden, wir sind zufrieden. Es gibt absolut keinen Grund, die veralteten Konzepte nicht weiter zu benutzen.
 

M.L.

Top Contributor
199,99 Euro.... Nicht das Udemy gelegentlich preisreduzierte/kostenlose Kurse anbieten würde (wobei die 30-Tage-Geld-zurück Garantie wohl stimmen dürfte, dann aber ohne Zertifikat-Bescheinigung)
Es gibt absolut keinen Grund, die veralteten Konzepte nicht weiter zu benutzen.
Allerdings besteht dann die Gefahr das die Leute, die ehemals wussten "wie der Hase läuft", irgendwann Mangelware werden und die Altsysteme doch gegen etwas Neueres eingetauscht werden wollen. Beispiel: COBOL
 

mihe7

Top Contributor
Allerdings besteht dann die Gefahr das die Leute, die ehemals wussten "wie der Hase läuft", irgendwann Mangelware werden und die Altsysteme doch gegen etwas Neueres eingetauscht werden wollen. Beispiel: COBOL
Das stimmt zwar auch, die unmittelbare Frage für mich ist aber: brauche ich einen anderen Ansatz? Welches Problem löse ich damit und was kostet mich der Spaß?
 

hieloseco

Mitglied
Udemy Kurse bekommt man normalerweise um die 10€, Angebote sind Acc. gebunden daher die anzeige mit dem reg.preis, Zertifikate kannst du auch bekommen, es gibt auch sehr viele andere Anbietern wie freeCodeCamp die Zertifikate anbieten, in Java Umfeld hier NRW kann man direkt bei Oracle für ca. 200€ Zertifikat erwerben, auf der Arbeit habe ich auch Angebote von der Arbeitgeber gehabt Z.B. Hybris Zertifikat, ich habe es nicht gemacht weil meiner Erfahrung nach irrelevant sind, ich habe nie in meiner Kariere einen typischen Vorstellungsgespräch gehabt der Zertifikate oder Uniabschluss im Vordergrund standen, CV an HR oder HH geschickt mit Referenzen inkl. Github Code, entweder danach einen Testaufgabe geschrieben oder Vorort mit meinem Laptop ein Projekt gezeigt und das warst.
COBOL Ersetzung hat aber mit Entwickler weniger zutun (Falls ich dich richtig verstanden habe) manche Sprachen und deren Architektur/Einsatz sind halt nicht Optimal genug um mithalten zu können, Anforderungen steigen/neue Technologien werden erfunden und wir brauchen neue Werkzeuge die dies besser umsetzen können. Wichtig sind Riesen Konzerne die in den USA Israel und China zuhause sind, die geben den Ton vor und was kleine Firmen oder Unis Einsetzen interessiert niemand.
 

M.L.

Top Contributor
stimmt
Angebote sind Acc. gebunden daher die anzeige mit dem reg.preis
Hmm... Udemy - JSF mit CDI : "Du hast diesen Kurs am 29. August 2017 gekauft. " und "Aktueller Preis: 49,99 €"
oder Java Programming Masterclass for Software Developers : "...31.Januar '18", "194,99 € " Damals waren es 'nur' rund 10 Euro/Kurs
CV an HR oder HH geschickt mit Referenzen inkl. Github Code (..) meinem Laptop ein Projekt gezeigt und das wars.
Das ist sicher auch eine Idee. Aber für die Allgemeinheit wäre die Erfolgsquote dieser Vorgehensweise vielleicht nicht ganz uninteressant.
 

hieloseco

Mitglied
@M.L.
Udemy bietet auch immer wieder solche Angebote an oder wenn man bei Udemy einen neuen Acc. erstellt bekommt man Generell 90% Rabatt, andere Möglichkeit wäre dann Kurshersteller direkt anschreiben oder auf seiner Seite auf Rabatt-Link zu gehen, Falls das nicht bekannt sein sollte hier ein Beispiel:
Regulär auf Udemy:
aber auf seiner Seite:
Es gibt auch sehr viele andere Alternativen Youtube Eingeschloßen die wirklich Top Qulitative Project based Kurse anbieten, oder per Editor und code challenge wie codecademy und co.
Wenn aber man sehr Traditionell ist dann holt sich einen JSF oder jQuery Buch das dürfte in manche Unternehmen für die nächste 20 Jahre ausreichen :D (Scherz)
 
X

Xyz1

Gast
Wenn aber man sehr Traditionell ist dann holt sich einen JSF oder jQuery Buch
Ach das ist heute doch schon mitm Handy möglich:

haha - und das ist sogar besser als manches Buch :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Workaround für Java-Quereinsteiger Java Basics - Anfänger-Themen 9
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben