Ich möchte Java lernen

_so_far_away_

Mitglied
Hallo, ich bin ein Student und studiere im zweiten Semester Informatik. Im ersten Semester habe ich Java gelernt und musste ein Projekt abgeben. Leider habe ich es nicht geschafft, da ich nicht wusste, wie ich vorgehen sollte. Dennoch möchte ich mein Studium erfolgreich abschließen und mich gerne intensiver mit Java beschäftigen. Haben Sie vielleicht einige Tipps für mich, wie ich dabei am besten vorgehen kann? Vielen Dank im Voraus
 
Spielt das eine wichtige Rolle? Ich bin männlich und wohne seit fast fünf Jahren in Deutschland. In dieser Zeit habe ich mein Abitur gemacht und arbeite während meines Studiums etwa 25-30 Stunden pro Woche, um meinen Lebensunterhalt hier zu finanzieren. Leider habe ich dadurch nicht so viel Zeit, um immer auf dem neuesten Stand zu bleiben und bin deshalb etwas im Stoff zurückgeblieben.
 
Wenn Du Java lernen willst, dann sind die Bücher:
  • Java von Kopf bis Fuss
  • Schrödinger lernt Java
sehr gut geeignet.

Zur Vertiefung / für Übungen wäre ggf. Captain Ciaociao erobert Java interessant

Wenn es mehr darum geht, wie man ein Projekt angeht, dann ist das immer gleich:
a) Fachliche Seite verstehen / analysieren
b) Notwendige Features ermitteln und diese priorisieren / sortieren
c) Die Features der Reihe nach angehen.

Wenn Du da mehr Details nennst, woran es scheitert, dann kann man das auch gerne weiter erläutern.
 
Wenn Du Java lernen willst, dann sind die Bücher:
  • c
  • Schrödinger lernt Java
sehr gut geeignet.

Zur Vertiefung / für Übungen wäre ggf. Captain Ciaociao erobert Java interessant

Wenn es mehr darum geht, wie man ein Projekt angeht, dann ist das immer gleich:
a) Fachliche Seite verstehen / analysieren
b) Notwendige Features ermitteln und diese priorisieren / sortieren
c) Die Features der Reihe nach angehen.

Wenn Du da mehr Details nennst, woran es scheitert, dann kann man das auch gerne weiter erläutern.
vielen Dank
 
Dann wäre es villeicht interessant an was für ein Projekt du arbeitest und wo genau deine Probleme sind.
Es geht um einem Karten Spiel.
--Man hat 2 Fragensorten.
-->Einmal Sujet-Fragen( beeinflussen keine Indizien)
-->einmal Points-Fragen. (beeinflussen die Indizien)
--Die Fragen können nur mit JA oder Nein beantwortet sein.
-->Je nach der Antwort werden folgenden Indizien Beeinflusst sein:
°Das Volk,
°Die Partei,
°Das Geld
°und Die Armee.
--Die Indizien haben den Anfangswert 50 und man darf nicht 0 oder weniger Punkten bei irgendeinem Indizien haben.
--Man hat insgesamt 20 Sujet-Fragen und 20 Points-Fragen
--Jedoch werden nur 16 Fragen(jeweils 8 Sujet- und Points-Fragen) zufällig ausgegeben.
--Das Ende wird nur von den Sujet-Fragen beeinflusst sein.
--Die Points-Fragen haben die Aufgabe dem Spieler im Spiel zu halten oder ihn rauszuwerfen


}}} Mein Problem ist es, dass ich nicht weiß, wie ich schlau, die Indizien zum Ändern bringen kann und wie ich das alles mit GUI darstellen kann. Wir müssen es mit JavaFX graphisch darstellen{{{
 
Es geht um einem Karten Spiel.
--Man hat 2 Fragensorten.
-->Einmal Sujet-Fragen( beeinflussen keine Indizien)
-->einmal Points-Fragen. (beeinflussen die Indizien)
--Die Fragen können nur mit JA oder Nein beantwortet sein.
-->Je nach der Antwort werden folgenden Indizien Beeinflusst sein:
°Das Volk,
°Die Partei,
°Das Geld
°und Die Armee.
--Die Indizien haben den Anfangswert 50 und man darf nicht 0 oder weniger Punkten bei irgendeinem Indizien haben.
--Man hat insgesamt 20 Sujet-Fragen und 20 Points-Fragen
--Jedoch werden nur 16 Fragen(jeweils 8 Sujet- und Points-Fragen) zufällig ausgegeben.
--Das Ende wird nur von den Sujet-Fragen beeinflusst sein.
--Die Points-Fragen haben die Aufgabe dem Spieler im Spiel zu halten oder ihn rauszuwerfen


}}} Mein Problem ist es, dass ich nicht weiß, wie ich schlau, die Indizien zum Ändern bringen kann und wie ich das alles mit GUI darstellen kann. Wir müssen es mit JavaFX graphisch darstellen{{{
Ich weiß, dass es dumm klingt. Ich selbst bin mit mir sehr unzufrieden und möchte das alles nachholen, um nie wieder solche dämlichen Fragen zu stellen
 
Ich weiß, dass es dumm klingt. Ich selbst bin mit mir sehr unzufrieden und möchte das alles nachholen, um nie wieder solche dämlichen Fragen zu stellen
Nein, das ist am Anfang durchaus normal. Und im Unterricht wird - nach meiner Erfahrung - in erster Linie die Sprache selbst beigebracht, aber eben keine wirkliche Vorgehensweise, wie man sowas angeht. (Und wenn owas Stoff ist, dann wird man mit UML und Co erschlagen und hat dann Formalismen aber keine saubere Herangehensweise!)

Eine Möglichkeit ist (ich stelle jetzt einen agilen Ansatz vor - es gibt aber diverse andere Möglichkeiten):
a) erst einmal identifizieren, was für Features es gibt. Features können hier z.B. User Stories sein. Du beschreibst einzelne Schritte, die in der Software möglich sind.
"Als <Spieler> möchte ich <Points Fragen richtig beantworten können> damit <ich meine Indizien verbessen kann>."
Das ist ein typischer Aufbau für eine User Story: "Als ... möchte ich ... damit ..."

b) Wenn man das hat, dann sortiert man das. Da sind dann Abhängigkeiten wichtig. So ist die User Storie vom Spieler, der Fragen beantwortet klar nach einer Story "Als Admin möchte ich Fragen erfassen, damit Spieler diese später beantworten können."

Wenn Du dann sowas hast, dann gehst Du das im Detail durch. Du nimmst, da Du alleine bist, nur die oberste Story. Und dann musst Du überlegen:
c) Abnahmekriterien: Was muss gelten, damit die Story als abgenommen gilt. Beispiel:
"Als Admin möchte ich Fragen erfassen, damit Spieler diese später beantworten können."
-> Es gibt zwei Arten von Fragen (s.o.)
-> Jede Frage besteht aus einem Text und der Antwort (Ja / Nein)
-> Fragen werden gespeichert in einer Datei.
-> Fragen können aus der Datei geladen und angezeigt werden

d) Dann setzt Du das um.
-> Du schreibst eine Klasse Question mit den notwendigen Feldern.
-> Du schreibst eine Klasse, die die Fragen verwaltet, es gibt Methoden zum hinzufügen, speichern und laden. (Da nicht spezifiziert wurde, wie gespeichert wird, kannst Du da was nutzen, das Du willst. Binary Serialisierung? JSON? XML? Ganz Dir überlassen!)

Und so gehst Du die User Stories durch. Nach jeder abgeschlossenen User Story kannst Du überlegen: Gibt es änderungen? Evtl. wird eine User Story nicht mehr gebraucht? Oder es wird eine verändert? Oder es gibt neue? Die Reihenfolge ist evtl. anders?


Wenn man diesen agilen Ansatz so nicht durchexerzieren möchte, dann kann man auch einfach Datenbasiert heran gehen:
-> Was für Daten brauchst Du so? Dann hast Du die Fragen und die Verwaltung der Fragen. Du hast Indizien mit irgendwelchen Werten. Du hast ein Spiel und in dem sind die Liste der unbeantworteten Fragen, eine gewisse Anzahl Spieler, Jeder Spieler hat Indizien, ....
-> Dann implementierst Du die Daten selbst. Das sind dann erst einmal reine Entity Klassen die noch kein Verhalten groß haben.

-> Und dann fügst Du nach und nach Verhalten hinzu: Fragen speichern / laden z.B. Dann dass ein Spiel erzeugt wird. Dass Spieler irgendwas machen können ...

Am Ende, wenn das Spiel so funktionieren würde (Das sollte immer per Unit Tests sicher gestellt sein!), dann baust Du die Oberfläche. Die Daten, die Das Spiel so hat, werden da dann angezeigt und User Events werden dann umgewandelt in entsprechende Aktionen auf deinem Model (So nennt man das, was wir vorher aufgebaut haben).

Das ist so ein einfaches Vorgehen. Das ist auch etwas, das ich in dem JAdventure versucht habe etwas aufzuzeigen. Evtl. schaust Du Dir das auch einmal an. Es ist bei weitem nicht fertig und ich habe auch keine Ahnung, ob es gut ist. Aber Du kannst es Dir anschauen (und mir dann auch gerne Deine Meinung sagen. Ich brauche keinen Honig um mein Maul geschmiert - sachliche Kritik ist mir lieber: Das ist für dich absolut unbrauchbar, weil ......)
 
intensiver mit Java ... JavaFX
Generell erwartet der Java Compiler die Einhaltung der formellen Syntax (im Minimalfall: alle Methoden-/Variablen-Definitionen innerhalb wenigstens einer Klasse, static void main-Methode). Schlagwörter wie User Stories, UML, Schichtenaufteilung, Clean Code, ... dienen dem Menschen zum einfach(er)en Schreiben / Erweitern / Ändern /... des Codes.

Für JavaFX könnte noch die IDE von Interesse sein: JavaFX Installation

Und der Java-Code muss nicht zwingend der neuste und aktuellste (aktuell Java 20. Java 8 sollte im Minimalfall genügen) sein, siehe Bericht bei Informatik Aktuell
 
Ich weiß, dass es dumm klingt. Ich selbst bin mit mir sehr unzufrieden und möchte das alles nachholen, um nie wieder solche dämlichen Fragen zu stellen
Dämliche Fragen werden immer wieder kommen. Je mehr man weiß desto mehr sieht man, was man alles nicht weiß. Also gewöhn dich besser dran. 😉
Zu den Büchern von Konrad würde ich noch "Entwurfsmuster von Kopf bis Fuß" hinzufügen, aber das lies erst wenn du mit Java von Kopf bis Fuß durch bist. Für Programme mit mehr als 100 Codezeilen sollte man schon gewisse Strukturen kennen, da ist das sehr hilfreich.

Haben Sie vielleicht einige Tipps für mich, wie ich dabei am besten vorgehen kann?
Mein Prof sagte: Programmieren lernt man nur dadurch, daß man programmiert. Und Recht hat er damit gehabt. Insofern ist so ein Spiel schon ein guter Anfang.
 
Hallo, ich bin ein Student und studiere im zweiten Semester Informatik. Im ersten Semester habe ich Java gelernt und musste ein Projekt abgeben. Leider habe ich es nicht geschafft, da ich nicht wusste, wie ich vorgehen sollte. Dennoch möchte ich mein Studium erfolgreich abschließen und mich gerne intensiver mit Java beschäftigen. Haben Sie vielleicht einige Tipps für mich, wie ich dabei am besten vorgehen kann? Vielen Dank im Voraus
Hallo, was dabei helfen kann wenn du nicht weiß wie du vorgehen weillst, wie und wo man anfängt ist es empfehlenswert, wie mein Lehrer es immer predigt ein Diagramm zu erstellen. ob dies mit Stift und Papier oder online (app.diagrams.net empfiehlt sich) zu erstellen. Zu deinen Wissenslücken, schreib dir stichpunktartig auf was du nicht kannst und arbeite die Punkte ab Tag für Tag ein Punkt. Und da oder verwendest du Yt, Bücher, hier das Forum, einfach irgentwelche seiten oder auch was dir schnell und genaue Antworten liefert ne KI. Und zur der KI, diese kann dir deinen Lernprozess sehr vereinfachen. Zum einen durch das erklären von bestimmten Sachen, wenn dein Code nicht klappt, du wissen möchtest wie du etwas machen musst (Vorgehensweise) , was man zum programmieren von xy benötigt, nach Programmier Ideen(Auch passend zu dem was du lernen möchtest oder was du intensivieren/üben möchtest.), Lösungen und sonst was. Allerdings eben nicht von ihr alles vorschreiben lassen, außer du kommst nd weiter und möchtest NUR ein Bsp oder eine Lösung zum Lernen. Aber sonst integriere diese in deinen Lern Stil zur Verbesserung deines Lernprozesses. Hoffe dies kann die weiterhelfen, bin allerdings so vom java wissen ein absoluter Anfänger daher kann ich dir da nd weiterhelfen 🙂
 

Zurück
Oben