Fachwissen-Java-Spring Boot,Maven, usw ???

thor_norsk

Bekanntes Mitglied
Guten Tag,
ich hätte gerne gewusst, ob (Spring Boot + Maven + Git) ausreichend sind, um als Backend-Entwickler arbeiten zu können?
Muss man Java Script, HTML, CSS auch beherrschen? Oder Grundlagen sind ausreichend?
Da ich festgestellt habe, dass Spring Boot sehr umfangreich ist, und möchte gerne durch viele Online-Kurse viele Bereiche kennen lernen.
Die nächste Frage wäre, Scrum auch sinnvoll, bzw notwendig ?
Danke!
 
Als Backend Entwickler reichen in der Regel wenig Kenntnisse zu HTML, CSS und Java Script. Scrum ist im beruflichen Umfeld wichtig, aber da muss man vorab nicht viel lernen. Wenn ein Team nach Scrum vorgeht, dann wird man schon geführt und kommt so schnell rein - auch ohne irgendwelche Kurse.
 
ich hätte gerne gewusst, ob (Spring Boot + Maven + Git) ausreichend sind, um als Backend-Entwickler arbeiten zu können?
Von Gradle solltest du vielleicht noch gehört haben.
Andererseits: Gradle ist so dermaßen umfangreich, daß dauert bis man da drin ist. Ich kann dir jedenfalls sagen, daß Bücher da nicht allzuweit helfen. Das muß man einfach machen.
Ich muß aber sagen: Es lohnt sich durchaus, sich damit zu beschäftigen. Es ist schon ziemlich geil, ein Repo einfach herunterzuladen und aus der Konsole heraus bauen zu können. Kein IDE-spezifischer Quatsch, keine Bibliotheken die du dir selber noch irgendwo zusammenklauben mußt, selbst das Java-SDK kannst du dort festlegen und mußt es nicht nochmal selber irgendwo installiert haben. Und du mußt nichtmal Gradle selbst installiert haben, da es mit einem eigenen Wrapper läuft.
 
Ich weiß nicht wie es in anderen Firmen ist aber von einem Backend-Entwickler erwarte ich richtig gute DB-Skills, denn da bleibt die meiste Zeit liegen. Mit ein paar Kenntnissen von JPA-Annotations wäre ich da nicht zufrieden.
 
Da wir jetzt schon Datenbanken genannt bekommen haben:
Das ganze Tooling im Bereich
  • Software Entwicklung (Sourcecodeverwaltung, Code Analysetools, ...)
  • Backend Betrieb (Docker & Co bis hin zur Cloud, diverse Software, ....)

Und auf sowas würde ich mich eher konzentrieren als auf Frontend Dinge.
 
Danke!
Ich möchte auf jeden Fall ein Projekt mit Spring Boot (Backend) , und Angular, TypeScript(Frontend) entwickeln. um zu verstehen wie Full Stack funktioniert. Später werde ich nach und nach wie Konrad beschrieben hat, die wichtige Sachen lernen.
 
Ich habe einen Online-Kurs gekauft, der Dozent wird alles erklären. Ich werde eine E-Commerce ... entwickeln. Sagen wir so, ich werde es versuchen.😂
 
Das hört sich doch nach einem vernünftigen Plan an. Da wünsche ich Dir viel Spaß und Erfolg.

Und dass da noch viel mehr kommt, ist natürlich klar aber wichtig ist, dass man anfängt und Schritt für Schritt voran kommt. Und ich denke, da hast Du einen guten Ansatz gefunden. Ich selbst würde nicht zwei Dinge auf einmal machen (Spring Boot Backend mit Java und dann Frontend mit Angular / TS) aber Dein Ziel ist ja explizit FullStack, d.h. du wirst da nicht wirklich drumherum kommen und es gibt eigentlich keine wirkliche Alternative (die in meinen Augen Sinn macht).
 
Eine Frage habe ich noch ? Kann man das fertige Produkt auf eigenem Server laufen lassen ? Ich habe mehrere Linux-Server (Virtuell) ?
Zum Beispiel ich habe eine Online-Shop und soll auf meinem Server laufen. Ich möchte mir verdeutlichen wie ein Unternehmen alles auf eigene Server laufen lässt.
 
Anstelle das auf einem Server laufen zu sehen, würde ich da auf Docker setzen und das in Docker Container verpacken. Das ist ist (im Groben) so, wie es mittlerweile auch in Unternehmen gemacht wird. Da zwar mit Kubernetes / Openshift noch mal eine Komplexitätsstufe on Top, aber Docker reicht für den Einstieg.
 
Du kannst es problemlos auf einem Linux Server laufen lassen. So wie Du es auf dem Entwicklungsrechner aufrufen kannst, kannst Du es auch problemlos auf einem Linux Server starten.

So wie @LimDul schon erwähnte wird aber hier oft auf eine Virtualisierung gesetzt. So ist eine Lösung weit verbreitet, dass man es in einem Container verpackt um es dann mit Docker und Co auszuführen. Dies hat viele Vorteile wie z.B. Kapselung der Lösung aber auch die Möglichkeit, vorhandene Tools zum Deployment / Betrieb zu nutzen.

Wenn Du die Linux VM nutzt, dann wirst Du merken, dass es hier viele Dinge gibt, die Du machen musst:
  • die notwendigen Dateien müssen kopiert werden.
  • Du willst Standard Operationen durchführen: Start, prüfen ob es läuft, Stop, ...
  • Du willst ein Monitoring
  • Daten vom Betrieb müssen gesichert werden
  • ...

Aus meiner Sicht macht es aber auch Sinn, dass man gewisse Dinge auch manuell durchführen kann. Dass man versteht, das die Spring Boot Anwendung am Ende braucht. Dass man sich mit den möglichen Konfigurationen beschäftigt.

Was Du dann am Ende brauchst oder nicht brauchst ist dann egal. Du hast eine Grundlage mit Hilfe dessen Du dann beliebige Tools einsetzen kannst. (Ich habe Entwickler kennengelernt, die etwas entwickelt haben und am Ende ist etwas entstanden, dass diese nicht verstanden haben. Sei es ein Docker Image von einem Maven Quarkus Projekt oder bei Visual Studio irgendwelche "magischen MSI".

Nach meiner Erfahrung ist es halt oft so, dass Firmen eine bestehende Infrastruktur haben mit bestimmten Prozessen und da gliedert man sich schlicht ein (soweit möglich).
 
Aus meiner Sicht macht es aber auch Sinn, dass man gewisse Dinge auch manuell durchführen kann. Dass man versteht, das die Spring Boot Anwendung am Ende braucht. Dass man sich mit den möglichen Konfigurationen beschäftigt.

Was Du dann am Ende brauchst oder nicht brauchst ist dann egal. Du hast eine Grundlage mit Hilfe dessen Du dann beliebige Tools einsetzen kannst. (Ich habe Entwickler kennengelernt, die etwas entwickelt haben und am Ende ist etwas entstanden, dass diese nicht verstanden haben. Sei es ein Docker Image von einem Maven Quarkus Projekt oder bei Visual Studio irgendwelche "magischen MSI".
Das kann ich nur unterschreiben. Es ist oft essentiell zu wissen, wie was funktioniert um bei Problemen dann auch zu wissen wo man schauen muss. Deswegen auch mein Hinweis, Docker reicht - wenn man direkt mit kubernetes anfängt ohne die Grundlagen der Container zu verstehen, kopiert man nur lustig Konfigurationen hin und her und versteht nicht was man tut. Deswegen klein Anfangen.

Insbesondere ist das auch für das ganze Thema wichtig. Niemand erwartet von einem Berufseinsteiger all das was hier beschrieben wird. Erwartet wird aber die Bereitschaft Dinge zu lernen und sich damit zu beschäftigen.
 
Ich arbeite mit Oracle VM. Ich interessiere mich selber dafür. Docker muss ich noch lernen.
Ich habe Weihnachten mein ganzes Geld ausgegeben für Online-Kurse 🤣 Docker, Spring Boot, Hybernate Professional , Cloud, usw.. wie gesagt viel zu tun🤣
 
Außerdem habe ich aus VBox, Docker gemacht. 🤣 3 x Rechner: 1 Rechner ist fast immer im Betrieb, 2 Rechner als Ersatz , 3 Rechner im Schrank für alle Fälle. Ich werde 9 x Festplatten clonen, dann habe ich 3 x das gleiche für jeden Rechner
 
Spaß bei Seite, ich möchte eigentlich einmal sehen wie Full Stack mit Java & Angular & Typescript funktioniert. Ich würde am liebsten nur Backend Entwickler werden. Ich habe jemanden kennengelernt, er war Projektmanager, er meinte entweder Backend oder Frontend, aber keine halbe Sachen. Er meinte alle Bewerber können angeblich beides und können es nicht. Er meinte konzentriere dich auf Backend oder Frontend.
Irgendwie finde ich er hatte recht, das ganze ist im Moment einfach zu viel zum lernen.
Danke für eure Unterstützung.
 
Java Backend rein schlagwort-mässig ( Quelle: Twitter/X (<- was immer man von der Plattform aktuell hält), "Sebastian Sigl", Tweet vom 11.12.23) :

"Backend Development Arsenal 2023:

Languages:
🔧 Java
🔧 Python
🔧 ...

Frameworks:
🌐 ...
🌐 Spring Boot (Java)
🌐 ...

Databases:
💾 PostgreSQL
💾 MySQL
💾 MongoDB
💾 Redis
💾 Oracle
💾 MS SQL Server
💾 Cassandra
💾 DynamoDB
💾 CockroachDB

ORMs:
🗃️ Hibernate (Java)
🗃️ ...

Microservices:
📦 Docker
📦 Kubernetes
📦 Istio
📦 ...

Cloud Providers:
☁️ AWS
☁️ Azure
☁️ GCP
☁️ IBM Cloud

API Design:
🔌 REST
🔌 GraphQL
🔌 gRPC
🔌 SOAP

DevOps Tools:
🛠️ Jenkins
🛠️ GitHub Actions
🛠️ GitLab CI/CD
🛠️ Ansible
🛠️ Terraform

Monitoring & Logging:
📊 Prometheus
📊 Grafana
📊 ELK Stack
📊 Datadog

What else? 👇"
 
Man sollte sich nur von dem Gedanken verabschieden davon alles in aller Tiefe zu kennen. Sehr viel meiner Arbeit besteht darin Google zu bedienen 🙂

Man kennt in der Regel die Bereiche, wo man aktiv ist intensiv (Bei mir JavaEE/Spring, unsere eigenen Frameworks, Docker). Und beim Rest, der für die Arbeit relevant ist (Bei mir Vaadin, Hibernate, etc.) hat man genug Grundwissen um damit klarzukommen und sich bei Bedarf in gewisse Punkte schnell einzuarbeiten. Und vom Rest, der für die Arbeit nicht relevant ist, hat man schon mal was gehört und kann es zuordnen.
 
Meine Goldene Formel für Backend mit Java: Java EE + Spring Boot + Hibernate + Cloud(AWS) + Dokcer + VBox + Git / GitHub + Spring.
Damit hat man Alles was man braucht für den anfang. Allerdings mache ich mehr wegen Python sorgen. Python übernimmt den ganzen Markt. ich denke wenn ich mit den oben genannten sagen fertig bin, werde ich auch Python lernen.
 
Paar Sachen haben mir bei Python nicht gut gefallen, wie z.B. Geschweifte Klammern durch Einrückungen zu ersetzen, oder noch schlimmer str() - Methode zur Typ Umwandlung. Java ist viel intelligenter. Ich denke die Leute lernen Python, weil Java zu schwer ist😂 .
 
Ja, aber wenn es um darum geht was effektives zu entwickeln braucht man C & Assembler.
Gewagte These.

Vielleicht sollte man erstmal eine Main Stream Sprache und die dazugehörigen Technologien und Konzepte beherrschen, dann kann man, wenn man Zeit hat Assembler und C lernen.

Ich wage auch die These: Man kann hier im Forum auch Beiträge bearbeiten, dann muss man nicht in 5 Minuten hundert Postings schreiben. Und der Thread bleibt übersichtlich.
 
Guten Morgen,
ist es richtig, dass man mit Hilfe der Annotationen Spring Boot Methoden aufrufen kann, die etwas tun ???
Z.B. @GetMapping("/students") , Server seitig aufgerufen , die auf Anfragen der User aus dem Browser reagieren ?
 
Hi,

Annotationen rufen per se nix auf. Du kannst damit eine Methode auszeichnen, die dann in der Lage ist entsprechende HTTP Aufrufe zu bearbeiten.

In deinem Beispiel wird ein GET Endpunkt registriert.

Das ist extrem mächtig und ich empfehle dir entsprechende spring Doku zu lesen.
 
Kurzer Exkurs zu Annotationen
Annotationen sind erst mal nix anderes als "Tags" oder "Marker" die man an verschiedene Stellen setzen kann. Sie selber tun nichts, können aber von verschiedenen Dingen ausgewertet werden. Insbesondere kann man sie zur Laufzeit auswerten (siehe z.B. als Einstieg https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/AnnotatedElement.html oder https://www.baeldung.com/java-get-field-annotations)

Im Falle von Spring, wenn die Anwendung gestartet wird, sannt das Spring-Framework die gesamten Klassen nach Annotationen um damit dann Dinge zu tun. Klassen, die z.B. mit @Component annotiert sind, deren Instanzen werden in den ApplicationContext gepackt, um sie an andere Stelle wieder zu injection (@Autowired).
 
Lern erst einmal Java und SQL. Und dann such dir einen Job in dem Bereich. Der ganze Rest der hier empfohlen wurde ist absolut übertrieben und wirst du auch nie und nimmer lernen können ohne beruflichen Alltag.

Ich könnte noch Terraform, Ansible mit Azure hinzufügen zur Liste der Sprachen und Tools die man angeblich drauf haben muss als Entwickler aber wie willst du das ernsthaft lernen was damit möglich ist als Hobby Entwickler? Dafür braucht man einen beruflichen Alltag, mit Kollegen die einem auch helfen können wenn man mal nicht weiterkommt. Da kann dann auch mal ein Sysadmin-Kollege ganz nützlich sein, wenn DevOps Themen wie Azure/AWS anstehen.
 
Good day,
I would like to know if (Spring Boot + Maven + Git) are sufficient to work as a backend developer?
Do you also have to know Java Script, HTML, CSS? Or are the basics sufficient?
Because I have discovered that Spring Boot is very comprehensive, I would like to learn more about it through online courses.
The next question would be, is Scrum useful or necessary?
Thanks!
Hello,

Spring Boot, Maven, and Git are the foundations for backend developer use and include the essential features of backend development, such as building and maintaining applications, workflow, and version control.

In-depth knowledge of JavaScript, HTML, and CSS is important for front-end development. This helps to understand full-stack development and improves collaboration with front-end developers.

Scrum is very useful in most modern software development environments because it encourages effective teamwork and project management. Knowing Scrum practices can certainly increase your team's ability to work effectively.

Good luck!
 
Ja, aber wenn es um darum geht was effektives zu entwickeln braucht man C & Assembler.
Im Enterprise-Bereich benötigst Du kein C.

Java ist DIE Lösung, um große Enterprise Software zu entwickeln.

C benötigt man im Bereich Embedded bzw. bare metal (kleine Chips, aber nicht mal ein Betriebssystem sondern nur ein Softwarestack zum Beispiel Blootooth).

C++ geht auch in die Richtung.

Assembler braucht man eigentlich gar nicht mehr, ist komplett durch C ersetzt.
 

Zurück
Oben