Neues Lern-Projekt gesucht

werdas34

Bekanntes Mitglied
Hallo,

ich überlege zurseit welches Thema ich als nächstes tiefer bearbeite. Damit meine ich sowas wie Server/Cleint schreiben Parallelität mit Threads und so.

Also welche Themen ich schon mal bearbeitet habe:
Grundlagen und Objektorientierung, Lambda, Server/Client, Webserver, Threads, Generics, JUnit Testf

Aufgrund eines Thread kam ich auf die Idee ein Schach-Spiel als Konsolen Programm zu programmieren. Aber da ist kein neues Thema was ich lernen könnte drin. Ist bisschen Objektorientierung. Außer man macht GUI. Aber GUI ist nicht so das meine. Aber langsam glaube ich, dass ich wirklich mit GUI anfangen muss?
Oder gibt es noch andere Themen, in die ich einsteigen könnte?

Falls GUI das nächste sinnvolle Thema wäre, auf was muss ich achten? Swing oder AWT?
Wird heutzutage, im professionellen Bereich, viel mit Scencebuilder gearbeitet?

Oder an die Experten, die viele Projekte bearbeitet haben. Gibt es irgendwelche Sachen, die ihr sehr oft verwendet und es nicht schadet wenn man sich damit sehr gut auskennt? Z.B. Map, ist ein Thema was ich oft als Antwort lese.

Wenn ihr spontan konkrete Projekt-Ideen habt, könnt ihr sie auch schreiben.

Danke für Antworten auf einen etwas anderen Thread.

mfg werdas34
 
K

kneitzel

Gast
Wenn du doch schreibst, dass GUI nicht so Dein Ding ist, dann gibt es doch genug andere Themen. Datenbanken z.B. angefangen von JDBC hin zu diversen Libraries...

Das ganze JEE Thema könnte man etwas angehen ...

Oder man übt einfach, in dem man ein Projekt Mal von Anfang bis Ende durchzieht.
Muss ja nicht ständig etwas Neues dazu kommen ...

Oder man meistert das, was man meint zu können. Begriffe wie Clean Code, Pattern, ....

Möglichkeiten gibt es extrem viele. Was du machen willst musst du selbst entscheiden....
 

mihe7

Top Contributor
Gibt es irgendwelche Sachen, die ihr sehr oft verwendet und es nicht schadet wenn man sich damit sehr gut auskennt? Z.B. Map, ist ein Thema was ich oft als Antwort lese.
Algorithmen und Datenstrukturen sind Grundlagen...

Eine Map ist einfach eine Abbildung von Schlüsseln, die per Definition eindeutig sind, auf Werte, wobei jedem Schlüssel höchstens ein Wert zugeordnet ist (aka Dictionary). Eine Map bietet also ganz Allgemein die Möglichkeit, Einträge einzufügen, zu löschen und (über den Schlüssel) zu suchen. Das Interface Map macht keine Zusicherungen bzgl. der Ordnung der Einträge, Implementierungen können das natürlich nachholen.

Die Java-Docs (gerne auch in neuerer Version) sind hier Pflichtlektüre. Dort siehst Du auch, dass verschiedene Implementierungen angeboten werden, die natürlich unterschiedliche Eigenschaften haben.

Du kannst Dir eine Map also als eine Art im Hauptspeicher verwaltete Mini-Datenbank vorstellen. Diese Funktionalität wird insbesondere im Zusammenhang mit HashMaps oder EnumMaps gerne genutzt, um z. B. if-Statements oder switch-Konstrukte zu vermeiden, d. h. fest in den Quelltext kodierte Verzweigungen werden durch eine solche dynamische Datenstruktur ersetzt.

Schau Dir Algorithmen (z. B. Sortierverfahren, Hashverfahren) und Datenstrukturen (Stack, Queue, Ringbuffer, Map, Bäume) an. Wenn Dir dazu dann kein Anwendungsfall einfällt, um das am "lebenden Objekt" auszuprobieren, frag einfach nochmal nach, da findet sich schon was :)
 

White_Fox

Top Contributor
Wenn die Grundlagen sitzen (oder du das zumindest von dir glaubst), dann lies dich etwas in Entwurfsmuster ein. Das Buch "Entwurfsmuster von Kopf bis Fuß"/"Head first Design Pattern" kann ich dir da sehr empfehlen.

Wenn du dann so ein bisschen ein Gefühl dafür bekommen hast, was für Gebilde man mit Klassen und Interfaces bauen kann (und vor allem, was der Unterschied zwischen Softwareentwicklung und Programmieren ist), schreib ein Programm. Irgendeins, daß du gut gebrauchen könntest. Du glaubst nicht was du damit auf einmal alles zum Einsatz bringen mußt. Meiner bisherigen Erfahrung nach der lehrreichste Weg.
 

werdas34

Bekanntes Mitglied
Danke für die vielen hilfreichen Antworten.

Werde mich nun mit Pattern und Algorithmen/Datenstrukturen befassen. Hat den Vorteil, da das auch für andere Programmiersprachen hilfreich sein kann.

Die Frage, die ich mir stelle ist, wie lerne ich das am besten bzw wie gehe ich das am besten an.
Klar ist: üben, implementieren und nochmal üben , implementieren
Bei Algorithmen z.B. Sortierverfahren, könnte man zum Beispiel mehrere bekannte Verfahren(Merge, Quick, Select, Insertion, Bucket, Radix, ...) einfach implementieren. Sehe ich als recht einfach an, da meist der Pseudocode mit dabei ist. Gibts da bessere Ansätze?
Datenstrukturen ist recht klar. Diese implemenjtieren und dann ganz viele Methoden dazu implementieren. Es ist wahrscheinlich sinnvoller nicht die vorgefertigten Klassen zu nutzen, oder?
Bei Pattern habe ich jetzt keinen richtigen Ansatz.
Einfach die Pattern in Java umzusetzen?

Ich weiß, wenn ich die Dinge alle iin einem Projekt anwenden würde, wäre es sinnvoller, aber mir fällt momentan nichts ein, was ich brauchen könnte. :D
 

M.L.

Top Contributor
Werde mich nun mit Pattern und Algorithmen/Datenstrukturen befassen. Hat den Vorteil, da das auch für andere Programmiersprachen hilfreich sein kann.
Aber dabei nicht vergessen, dass es Vorgehensweisen gibt, die in einer Programmiersprache leicht zu implementieren sind, in einer anderen PS dagegen entweder gar nicht oder nur über Umwege. Klassikerbeispiel: Pointer / Referenzen in C++ und Implementierung einer doppelt verketten Liste im Vergleich zu Java https://www.geeksforgeeks.org/doubly-linked-list/

Es ist wahrscheinlich sinnvoller nicht die vorgefertigten Klassen zu nutzen, oder?
Man sollte eine Klasse (oder allgemeiner ein Framework) nicht nur benutzen können, sondern auch die Hintergründe kennen.

Bei Pattern habe ich jetzt keinen richtigen Ansatz.
Einfach die Pattern in Java umzusetzen?
Ganz so einfach ist es nicht, nur ein Zitat aus dem Thread "Brauche Erklärung UML 2.5...." : "(..)dass die Abbildung UML <-> Java nicht bijektiv ist. Das einfachste Beispiel sind die Assoziationen: die UML unterscheidet Assoziation, Aggregation und Komposition. In Java sehen alle Beziehungen von der Struktur identisch aus. (..)" Quelle: https://www.java-forum.org/thema/br...dern-als-java-code.184916/page-3#post-1185127
 

mihe7

Top Contributor
Hat den Vorteil, da das auch für andere Programmiersprachen hilfreich sein kann.
Ja, das ist Hintergrundwissen, das man immer brauchen kann. Es kommt durchaus vor, dass man selbst Datenstrukturen (z. B. Bäume, Graphen, ...) implementieren muss.

Bei Algorithmen z.B. Sortierverfahren, könnte man zum Beispiel mehrere bekannte Verfahren(Merge, Quick, Select, Insertion, Bucket, Radix, ...) einfach implementieren. Sehe ich als recht einfach an, da meist der Pseudocode mit dabei ist. Gibts da bessere Ansätze?
Klar, nur anhand der Beschreibung umsetzen (also erstmal ohne Pseudocode).

Datenstrukturen ist recht klar. Diese implemenjtieren und dann ganz viele Methoden dazu implementieren. Es ist wahrscheinlich sinnvoller nicht die vorgefertigten Klassen zu nutzen, oder?
"Ganz viele Methoden" brauchst Du gar nicht; es genügt in der Regel, das Einfügen, Löschen, Suchen und ggf. Iterieren umzusetzen. Natürlich ohne die den Datenstrukturen entsprechenden Klassen aus der Standardbibliothek, sonst ist es ja witzlos.

Bei Pattern habe ich jetzt keinen richtigen Ansatz.
Einfach die Pattern in Java umzusetzen?
Man muss hier ein wenig aufpassen, dass man ihnen nicht mehr Bedeutung beimisst, als sie haben. Es geht nicht darum, möglichst viele Entwurfsmuster einzusetzen, denn wo es kein Problem gibt, braucht es auch keine Lösung.

Eine Zeit lang gab einen riesigen Hype um Design Patterns, der in meinen Augen fürchterliche Ausmaße angenommen hat (für jeden Unsinn, und sei er noch so gewöhnlich, muss bzw. musste ein Pattern her. Mein Vorschlag wäre das Parameter Passing Pattern gewesen: übergebe Werte per Parameter an eine andere Methode...)

Voraussetzung ist also, dass man ein Problem hat, das sich mit einem solchen Muster lösen lässt und für das es keine bessere Lösung gibt. So hat z. B. das Singleton Pattern zugunsten Dependency Injection (nicht zu verwechseln mit DI Frameworks) massiv an Bedeutung verloren, weil es in der Regel genügt, einfach nur eine Instanz einer Klasse zu erzeugen anstatt in dieser Klasse sicherzustellen, dass nur eine Instanz erzeugt werden kann.

Es geht also nicht (nur) darum, das Pattern in Java umzusetzen, sondern zu verstehen, wann sich ein Problem für welches Problem eignet.

Beispiel: Du möchtest einmal die Gesamtgröße und einmal die Anzahl der Dateien in einem Verzeichnis (inkl. Unterverzeichnisse) ermitteln. Natürlich könntest Du alle Dateiinfos in eine Collection einlesen und anschließend auswerten, das ist aber ggf. sehr speicherlastig. Du könntest auch während des Einlesens zählen oder die Größe ermitteln, also entweder zwei Methoden schreiben, die das entsprechende Ergebnis liefern oder das Ergebnis für beides mit einer Methode ermitteln. Das ist aber auch nicht schön, denn jetzt bist Du auf diese beiden Dinge festgelegt. Willst Du später die Besitzer ermitteln, musst Du den bestehenden Code umschreiben. Hier bieten Dir die Entwurfsmuster mehrere Möglichkeiten an, z. B. Iterator oder Visitor.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
B Erste Schritte nio oder io für neues Projekt Java Basics - Anfänger-Themen 1
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
C Neues Objekt mit Beziehung zu bereits bestehendem Objekt Java Basics - Anfänger-Themen 4
T Erste Schritte Totaler Noob in Java will was neues lernen Java Basics - Anfänger-Themen 22
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
F Verweis oder neues Objekt? Java Basics - Anfänger-Themen 8
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
F Neues Objekt oder nur ein Verweis? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
L OOP Neues Objekt bei jeder Eingabe erstellen (Objekte speichern?) Java Basics - Anfänger-Themen 10
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
P Array reversed in ein neues Array Java Basics - Anfänger-Themen 5
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
I Neues Klassenobjekt nicht "ansprechbar" Java Basics - Anfänger-Themen 5
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
M Neues Objekt? Java Basics - Anfänger-Themen 6
K Neues Bild bei eingabe bestätigung erscheinen Java Basics - Anfänger-Themen 21
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
M Neues Fenster Java Basics - Anfänger-Themen 2
S Innerhalb eines Fensters ein neues erschaffen Java Basics - Anfänger-Themen 7
D aus einem einzeiligen String ein neues Objekt erstellen Java Basics - Anfänger-Themen 5
K neues Fenster mit Button öffnen Java Basics - Anfänger-Themen 17
D Neues Frame öffnen Java Basics - Anfänger-Themen 7
M Neues Objekt erstellen Java Basics - Anfänger-Themen 3
P neues Objekt Java Basics - Anfänger-Themen 4
J Neues Forum Thema erstellen mit java(httpclient) Java Basics - Anfänger-Themen 11
D Neues Objekt in Methode erstellen möglich? Java Basics - Anfänger-Themen 5
M Neues Fenster öffnen altes schützen Java Basics - Anfänger-Themen 10
S mit clickevent neues formular öffnen Java Basics - Anfänger-Themen 2
K Neues Fenster Öffnen? Java Basics - Anfänger-Themen 18
F jTable - neues Element vorher auf existenz Prüfen Java Basics - Anfänger-Themen 7
B neues Objekt erzeugen Java Basics - Anfänger-Themen 7
E Neues Java Fenster öffnen Java Basics - Anfänger-Themen 4
D Neues ContentPane öffnen Java Basics - Anfänger-Themen 3
B neues Problem! Java Basics - Anfänger-Themen 14
G JSP ohne neues Fenster aufrufen. Java Basics - Anfänger-Themen 8
S neues Objekt benennen Java Basics - Anfänger-Themen 3
I Probleme bei "Neues Spiel" Java Basics - Anfänger-Themen 3
P Neues Fenster ueber Hauptfenster Java Basics - Anfänger-Themen 4
T Möchte ein neues Objekt erzeugen mit Wert von anderem Objekt Java Basics - Anfänger-Themen 9
L Wie kann ich auch in einem ActionListener ein neues java Pro Java Basics - Anfänger-Themen 8
gurgi mit button neues Frame öffnen Java Basics - Anfänger-Themen 7
G Neues File mit vorgegebenen Einstellungen erstellen? Java Basics - Anfänger-Themen 7
G neues Objekt der Klasse eines anderen Objekts Java Basics - Anfänger-Themen 3
T Panel entfernen, neues hinzufügen Java Basics - Anfänger-Themen 2
D neues Fenster in GUI Java Basics - Anfänger-Themen 2
S Methode soll ein neues Objekt vom Typ Class XYZ Java Basics - Anfänger-Themen 7
G neues String Array in super() übergeben Java Basics - Anfänger-Themen 3
S vom button ein neues fenster öffnen Java Basics - Anfänger-Themen 1
L neues Fenster und Hauptfenster sperren Java Basics - Anfänger-Themen 11
N Open Source für Anfänger, neues Projekt-> Interesse? Java Basics - Anfänger-Themen 36
I Neues Spiel starten Java Basics - Anfänger-Themen 9
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
S Problem neues Objekt erzeugen Java Basics - Anfänger-Themen 4
M removeAll() und neues Hinzufügen Java Basics - Anfänger-Themen 2
A neues Objekt in main methode erstellen Java Basics - Anfänger-Themen 2
N Wie öffne ich ein neues Applet? Java Basics - Anfänger-Themen 4
G neues Paket importieren Java Basics - Anfänger-Themen 2
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
R Spieleprogrammierung Menüeintrag "Neues Spiel" Java Basics - Anfänger-Themen 2
G Neues Bild bei MouseOver Java Basics - Anfänger-Themen 2
X GUI: neues Panel in einer Applikation anzeigen lassen Java Basics - Anfänger-Themen 2
R Gui + neues Fenster Java Basics - Anfänger-Themen 8
bernd Neues JFrame erzeugen? Java Basics - Anfänger-Themen 8
S Neues Fenster/Panel nach Knopfdruck Java Basics - Anfänger-Themen 2
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
S in einem PopUp ein neues Popup erzeugen? Java Basics - Anfänger-Themen 5
J neues gui hinzugefügt .... jetzt gehts nicht mehr Java Basics - Anfänger-Themen 10
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
C externe jar einbinden in Eclipse-Projekt Java Basics - Anfänger-Themen 2
B non-modular dependency in modularem Projekt verwenden Java Basics - Anfänger-Themen 3
S Kleines Java-Projekt; Kassenprogramm Java Basics - Anfänger-Themen 7
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
J Projekt neu übersetzen Java Basics - Anfänger-Themen 3
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
B Quicksort in Verbindung mit einem Projekt Java Basics - Anfänger-Themen 1
S Video Projekt Java Basics - Anfänger-Themen 28
A Hilfe bei Java Projekt Java Basics - Anfänger-Themen 4
B Grundsatzfragen zu meinem neuen Projekt Einnahmen-Ausgaben App Java Basics - Anfänger-Themen 8
C Projekte in 2 versch. Arbeitsbereichen: auf ein Projekt verweisen (ohne Fehler zu bekommen) Java Basics - Anfänger-Themen 8
D Gemeinsames Projekt Java Basics - Anfänger-Themen 13
J Veranstaltungs Projekt Java Basics - Anfänger-Themen 2
K Java Projekt Hilfe Java Basics - Anfänger-Themen 5
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben