Java Quereinsteiger Roadmap und Fragen

Bitte aktiviere JavaScript!
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

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.
 
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.
 
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.
 
@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
 
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/04/microservices-for-java-developers-continuous-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...
 
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.
 
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.
 
  • --> "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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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
 
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!
 
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)
 
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.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben