Java Umfangreiches Java-Tutorial

JPXr-eP9

Cadet 4th Year
Registriert
Okt. 2013
Beiträge
97
Hallo.

Ich bin auf der Suche nach einem umfangreichen Java SE Tutorial, wo alle wichtigen Themen (OOP, Collections, JDBC, Threads, etc.) behandelt werden.
Ich meine nicht eine Seite, wo mir erklärt wird, was eine Klasse oder ein Array ist, sondern wo all diese Konzepte miteinander interagieren. Wo jemand ein größeres Projekt exemplarisch bearbeitet.

Ich habe schon reichlich Erfahrung mit den Grundlagen, allerdings fehlt mir die Praxis: Wie führt man größere Projekte durch?

Kennt jemand solche Tutorials? Egal, ob als Text oder Video.

Danke!
 
  • Gefällt mir
Reaktionen: Heinrich Harrer
umask007 schrieb:
https://www.uni-trier.de/fileadmin/urt/doku/java/v80/java8.pdf
Das beste Tutotorial, was du für lau im Netz finden kannst.

Vielen Dank, allerdings ist es nichts anderes als die Java Insel.
Dort werden alle Konzepte getrennt voneinander beschrieben, wie in einem Lexikon.

Ich suche ein Tutorial/Projekt, welches jemand beispielhaft von Anfang bis Ende durchprogrammiert. Von der Aufgabenstellung, Konzeption, Anwendung möglichst vieler Java-Konzepte, bis zum Testen.

Eben ein echtes Projekt, wie man es im Arbeitsleben findet.
Das kann z.B. irgendein Spiel sein.
 
Ich habe auch mal Udemy empfohlen, aber mittlerweile kann ich von Udemy nur noch abraten:
Ist ein ziemlich dreister Saftladen.

Ich kann Pluralsight empfehlen.
Ich habe auch öfter schon gute Tutorials gesehen, die Ausschnitte aus Udacity waren.
 
Ich habe etwa jede Plattform durch.

Das größte Problem in meinem Ecosystem (JavaScript) ist, dass die meisten Anbieter nicht zeigen,
von wann der Kurs ist. Dann wird eben oft schnell mit alten Versionen (React 0.14, Node 6) gearbeitet, so dass man die Sachen nicht nachbauen kann, weil alles zusammenbricht.

Deshalb bin ich nur noch bei Youtube unterwegs.
Ich habe meine 10 Channels und schaue nur aktuelle (nur 2018) Videos an.
 
Hey,

mastaqz schrieb:
Das größte Problem in meinem Ecosystem (JavaScript) ist, dass die meisten Anbieter nicht zeigen,
von wann der Kurs ist. Dann wird eben oft schnell mit alten Versionen (React 0.14, Node 6) gearbeitet, so dass man die Sachen nicht nachbauen kann, weil alles zusammenbricht.
Muss ich dir leider recht geben. Nur leider werden die Dokus dafür auch meist sehr verzögert nachgezogen.
In den meisten Fällen wird aber das Projekt als Download bereitgestellt und dort kannst du dank NPM die richtige Version rausfinden - was nicht heißt, dass ich dir empfehlen würde mit Uralt-Versionen zu arbeiten.


@dolbik
Wenn du wirklich Programmieren lernen möchtest kann ich dir nur eins empfehlen: Praxis.
Kein Kurs wo du geleitet wirst bringt dir soviel wie ein Projekt wo du selbst die Lösung suchen musst. Da du meintest, dass du bereits reichlich "Erfahrungen mit den Grundlagen" hast, sollte das kein Problem sein.
Wenn du dir unsicher bist, such dir einen Mentor für Code-Reviews und Tipps - da profitieren immer beide von!

Wenn du dich für Best-Practice bzw. Designpatterns interessierst, kann ich dir diese Seite empfehlen: Design Patterns von Philipp Hauer
Alternativ dieses Buch von GoF.

Wie die Vorgehensweise bei einem "echten" bzw "größeren" Projekt ist, muss ich leider sagen, dass es nicht "den einen Weg" gibt.
Es gibt unterschiedliche Herangehensweisen - zuviele um sie aufzuzählen.
Beispiele die Einfluss auf die Arbeitsweise haben
- Teamgröße
- OSS / Properitär
- Anforderungen von Kunden / Eigene Anforderungen
- Art der Software (Spiele, Webseiten, Data, ...)
- Verwendete Software (VCS, CI/CD, Frameworks, ...)
- ...
Das beste ist wirklich, wenn du an einem Projekt arbeitest.

Eine Seite die ich dir für Übungen empfehlen kann: Project Euler
Dort gibt es mathematische Probleme mit unterschiedlichen Schwierigkeitsgraden. Außerdem gibt es in diversern Programmiersprachen (C, C++, Java, Python, C#, JavaScript uvm.) auch Lösungsvorschläge.

Ich hoffe ich konnte dir weiter helfen. Wenn du noch ein paar Infos brauchst frag einfach :).

Gruß
Darius
 
Crast schrieb:
Kein Kurs wo du geleitet wirst bringt dir soviel wie ein Projekt wo du selbst die Lösung suchen musst.
Stimmt, imho ist es aber trotzdem ein großer Vorteil schon vorher einmal gesehen zu haben wie ein Profi vorgeht.
Trial & Error funktioniert zwar auch ist aber extrem langwierig, es sei denn man hat wirklich eine Art Coach bei sich, der sich auskennt und einen führt.
 
  • Gefällt mir
Reaktionen: Crast
Es ist nichht nur langwierig, es ist auch frustrierend.
Ein Mentor/Coach ist meiner Ansicht nach die beste Lösung. Kann man darauf nicht zurück greifen würde ich, glaube ich jedenfalls, empfehlen sich an einem OSS-Projekt zubeteiligen und dort den Workflow anschauen.
Dort würde man auch direkt Erfahrung mit VCS und Builds-Tools asmmeln, im besten Fall auch mit CI/CD.

Aber wenn man wenig Praxis-Erfahrung hat, ist jedes größere Projekt langwierig und frustrierend.

Ein weiter Tipp der noch sehr hilfreich sein kann ist, dass es für die meisten Probleme bereits gute Lösungen gibt, man sollte sich nicht scheuen die Suchmaschine seiner Wahl zu befragen oder auf Seiten wie StackOverflow Hilfe zu suchen. Oft spart das einem Zeit und insbesondere sorgt es dafür, dass man weniger Rückschläge/negative Erlebnisse hat.

Eine theoretische Übersicht über "wie geht man bei einem solchen Projekt vor" findet man unter der Überschrift "Vorgehensmodell zur Softwareentwicklung". Modern, bzw angesagt sind "agile" Prozesse (ist jedenfalls mein empfinden). Aber auch hier gild: Es hängt vom Fall ab.


Hier noch eine kleine Aufschlüsselung von ein paar Begriffen die (bei mir) nun häufiger gefallen sind - um das suchen zu ersparen:

VCS, kurz für Version Control System, ist eine Software die sich um die Versionierung kümmert. Es erlaubt bestimmte Zustände im Entwicklungsprozess festzuhalten und ggf. dort hin zurück zuspringen - ein muss! in der Softwareentwicklung. Die zwei Größten sind wohl Git und Apache Subversion

OSS, kurz für Open Source Software, ist Software deren Quellcode offen ist und somit für jeden einsehbar zur Verfügung. Eines von sehr vielen Beispielen ist z. B. Linux.
Oft werden Platformen wie GitHub für die Veröffentlichung und Verwaltung genutzt.
Das Gegenteil ist properitäre Software.

CI, kurz für Continuous Integration, ist ein automatisierter Prozess.
CD, kurz für Continuous Delivery, ist ein automatisierter Prozess.

GoF, kurz für Gang of Four, sind die Autoren von dem Buch "Design Patterns. Elements of Reusable Object-Oriented Software".


@dolbik schau dir mal wirklich das Buch "Design Patterns" an. Ich glaube der Ansatz den die Verfolgen könnte das sein was du suchst.

Zitat von Wikipedia:
Die Beschreibung eines Entwurfsmusters durch die Gang of Four folgt folgendem Schema:

Name
und Klassifikation des Musters.

Zweck
des Musters.

Synonyme
Andere bekannte Namen des Musters.

Motivation
(Hinter-)Gründe für den Einsatz des Musters.

Anwendbarkeit
Einsatzbereiche für das Muster.

Struktur
Beschreibung der allgemeinen Struktur des Musters.

Beteiligte Akteure
Klassen, die an dem Muster beteiligt sind.

Zusammenspiel
der beteiligten Klassen.

Konsequenzen
Welche Vor- und Nachteile gibt es?

Implementierung
Praxisrelevante Tipps, Tricks und Techniken sowie Warnung vor Fehlern, die leicht passieren können.

Beispielcode
Quellcodefragment, das den Einsatz des Musters zeigt.

Praxiseinsatz
Wo wird das Muster bereits eingesetzt

Querverweise
Wie spielt das Muster mit anderen Mustern zusammen?

Generell sollte die Dokumentation eines Entwurfsmusters ausreichende Informationen über das Problem, das das Muster behandelt, über den Kontext der Anwendung und über die vorgeschlagene Lösung bereitstellen. Viele Autoren lehnen ihren Aufbau an den der Beschreibungen der Gang of Four an und adaptieren sie an ihre Bedürfnisse.
 
Zuletzt bearbeitet: (Rechtschreibung und Grammatik)
  • Gefällt mir
Reaktionen: new Account()

Ähnliche Themen

M
Antworten
17
Aufrufe
1.870
N
Antworten
3
Aufrufe
1.285
Zurück
Oben