Buch für Anfänger gesucht - Java / JavaFX

Diskutiere Buch für Anfänger gesucht - Java / JavaFX im Bücher, Tutorials und Links Bereich.
W

White_Fox

@L0oNY
Das ist ja ein Buch aus dem Jahr 2006 :oops:... sicherlich überholt!
Für Anfänger dennoch empfehlenswert, finde ich. 2006 hin oder her. Da genau diese Frage hier so gefühlt alle zwei Wochen wiederkehrt:

 
W

Werniman

Ich mache zur Zeit eine berufliche Weiterbildung (6 Monate lang für Java 8 SE inkl OCP-Prüfung) und stehe vor dem selben Problem wie der Threadersteller. In diesem Rahmen haben wir Teilnehmer natürlich die ebooks ausgetauscht, die wir besitzen, so dass ich diverse Bücher antesten konnte. Gehts nach unserem Dozenten, reicht sowieso die Java-Api zum Lernen, aber für einen Anfänger ist die Java-Api das Worst case scenario zum Lernen. Für einen Anfänger ist die Java-Api das, was der Duden für einen angehenden Schriftsteller ist: Man lernt vielleicht die Rechtschreibung einzelner Wörter (=Syntax der Befehle), aber wie man sie im Zusammenspiel einsetzt, lernt man davon nicht.
Von der "Java-Insel" bin ich persönlich nicht wirklich begeistert. Die ganz einfachen Themen sind noch halbwegs begreifbar beschrieben, aber spätestens wenns dann ein bißchen in die Tiefe geht (wie z.B. Exception Handling), dann wechselt der Schreibstil dann aus Sicht eines Anfängers doch merklich zu einem "Technik-Bla-Bla". Sprich: ein Begriff wird erklärt und dazu werden 3 neue (ebenfalls unbekannte) Begriffe benutzt. Das ist in gewisser Weise ein Schneeballeffekt.

Ich persönlich mag es, wenn in Büchern mit praktischen Beispielen geeignet wird, unter denen ich mir etwas vorstellen kann. Insofern bin ich inzwischen bei 3 Büchern hängengeblieben. Das bereits von meinem Vorredner erwähnte "Java von Kopf bis Fuß" (von Kathy Sierra & Bert Bates), "Java Alles-in-einem-Band für Dummies" von Arnold V. Willemer (wer hat da gerade gelacht ?) und "Schrödinger lernt Java". Wobei das Schrödinger-Buch schon irgendwie gewöhnungsbedürftig ist...durch die vielen verschiedenen Fonts strengt das Lesen irgendwie sehr an.
 
T

tommysenf

Da du ja eh vor hast den OCP zu machen kann ich dir nur wärmsten die OCP Exam Guides von Kathy Sierra und Bert Bates empfehlen. Sie haben einen eher klassischen Ansatz gegenüber den Head First Büchern und trotzdem machte es mir im Gegensatz zu den meisten Lehrbüchern Spaß sie zu lesen. Es sind vielleicht nicht die perfekten Einsteigerbücher, dafür haben sie ja Head First, aber eine sinnvolle Vertiefung des Grundlagenstoffes. Nebenbei gehören die Autoren auch dem Team an welches die Zertifizierungsprüfungen entwickelt...
 
J

JavaDaHood

Habe mir jetzt das Buch Schrödinger programmiert Java 2.te Ausgabe zugelegt.;)
 
W

Werniman

Ich hoffe, da sind die Fehler der ersten Ausgabe korrigiert worden. Da waren nämlich inbesondere in den Codebeispielen mehrere kleine Fehler drin, bei denen man sich fragte, ob der Autor den Code nicht selbst ausprobiert hat.

Was ich mal als generellen Kritikpunkt an sehr vielen Büchern/Videotutorials anmerken muss, ist die Unfähigkeit vieler Autoren, sich in ihren Beispielen sinnvolle Variablennamen einfallen zu lassen. Insbesondere finde ich es verwirrend, wenn dann Variablennamen genutzt werden, die zu Verwechslungen. Wenn ich beispielsweise ein Objekt "Mensch" anlegen will, dann definiere ich dieses Objekt so, dass seine verschiedenen Parameter (wie Name, Alter,Gewicht usw) auch in Variablen gespeichert werden, deren Name auf ihren Inhalt hindeuten. Ich würde also die die Variable, die mal das Alter beinhalten soll, nicht "name" nennen. Genau DAS scheinen viele Autoren aber mit Hochgenuss zu praktizieren. Da wundert man sich dann als Anfänger, warum statt dem Alter, das man abrufen will, plötzlich "Peter Müller" zu lesen ist usw.
 
W

Werniman

Ich hoffe, da sind die Fehler der ersten Ausgabe korrigiert worden. Da waren nämlich inbesondere in den Codebeispielen mehrere kleine Fehler drin, bei denen man sich fragte, ob der Autor den Code nicht selbst ausprobiert hat.

Was ich mal als generellen Kritikpunkt an sehr vielen Büchern/Videotutorials anmerken muss, ist die Unfähigkeit vieler Autoren, sich in ihren Beispielen sinnvolle Variablennamen einfallen zu lassen. Insbesondere finde ich es verwirrend, wenn dann Variablennamen genutzt werden, die zu Verwechslungen mit anderen Programmbestandteilen führen. Wenn ich beispielsweise ein Objekt "Mensch" anlegen will, dann definiere ich dieses Objekt so, dass seine verschiedenen Parameter (wie Name, Alter,Gewicht usw) auch in Variablen gespeichert werden, deren Name auf ihren Inhalt hindeuten. Ich würde also die die Variable, die mal das Alter beinhalten soll, nicht "name" nennen. Genau DAS scheinen viele Autoren aber mit Hochgenuss zu praktizieren. Da wundert man sich dann als Anfänger, warum statt dem Alter, das man abrufen will, plötzlich "Peter Müller" zu lesen ist usw.
 
W

White_Fox

Was ich mal als generellen Kritikpunkt an sehr vielen Büchern/Videotutorials anmerken muss, ist die Unfähigkeit vieler Autoren, sich in ihren Beispielen sinnvolle Variablennamen einfallen zu lassen. Insbesondere finde ich es verwirrend, wenn dann Variablennamen genutzt werden, die zu Verwechslungen. Wenn ich beispielsweise ein Objekt "Mensch" anlegen will, dann definiere ich dieses Objekt so, dass seine verschiedenen Parameter (wie Name, Alter,Gewicht usw) auch in Variablen gespeichert werden, deren Name auf ihren Inhalt hindeuten. Ich würde also die die Variable, die mal das Alter beinhalten soll, nicht "name" nennen.
Sowas hab ich noch nie gesehen, egal wie schlecht das Tutorial war, und ich hab doch schon das ein oder andere Tutorial durchgearbeitet. Du hast nicht zufällig ein Beispiel dafür?
 
W

Werniman

Ein Beispiel: Gerade bin ich dabei, ein Videotutorial aus der Reihe "Java leicht gemacht - Der umfassende Java Einsteigerkurs A-Z" durchzuarbeiten und bin beim Teil "Generics". Der Kommentator hat gerade die gängigen Bezeichnungen erklärt: T=Type, V=Value, K=Key, E=Element usw und fährt sofort mit einem Beispiel fort:

Code:
public class Generics<T>{
    //Eigenschaften/Attribute
    private T value;
    
    //Konstruktoren
    public Generics(T value){
    this.setValue(value);
    }
....
}
Gerade erklärt er, dass es da verschiedene Bezeichnungen gibt und T für ein beliebiges Objekt steht,es aber auch noch V (für value), K (für key) und E (für elements) gibt. Aber warum bitte gibt man dann bitte einer Variablen für T ausgerechnet den namen value ? Sowas finde ich eher verwirrend. Man käme ja auch nicht auf die Idee, einer Int-Variable den Namen "Text" zu geben.
Ähnliche Beispiele habe ich (gerade bei den vielen Youtubevideos) schon öfters gesehen. Da bekommen dann beispielweise int-Variablen auch einen fast identischen Namen (z.B. int1,int2 usw), was dann spätestens beim Anlegen von Methoden,die irgendwas erzeugen sollen, für komplette Verwirrung sorgt, wenn man deren Namen aus den einzelnen Bestandteilen zusammenschustert. Neulich hatte ich da beispielsweise einen Fall, wo jemand eine Methode, die irgendwas errechnete, allen Ernstes "IntInt2Int" nannte. Wer bitte soll denn da noch mitkommen ?
 
T

temi

Ein Beispiel: Gerade bin ich dabei, ein Videotutorial aus der Reihe "Java leicht gemacht - Der umfassende Java Einsteigerkurs A-Z" durchzuarbeiten und bin beim Teil "Generics". Der Kommentator hat gerade die gängigen Bezeichnungen erklärt: T=Type, V=Value, K=Key, E=Element usw und fährt sofort mit einem Beispiel fort:

Gerade erklärt er, dass es da verschiedene Bezeichnungen gibt und T für ein beliebiges Objekt steht,es aber auch noch V (für value), K (für key) und E (für elements) gibt. Aber warum bitte gibt man dann bitte einer Variablen für T ausgerechnet den namen value ? Sowas finde ich eher verwirrend. Man käme ja auch nicht auf die Idee, einer Int-Variable den Namen "Text" zu geben.
Ähnliche Beispiele habe ich (gerade bei den vielen Youtubevideos) schon öfters gesehen. Da bekommen dann beispielweise int-Variablen auch einen fast identischen Namen (z.B. int1,int2 usw), was dann spätestens beim Anlegen von Methoden,die irgendwas erzeugen sollen, für komplette Verwirrung sorgt, wenn man deren Namen aus den einzelnen Bestandteilen zusammenschustert. Neulich hatte ich da beispielsweise einen Fall, wo jemand eine Methode, die irgendwas errechnete, allen Ernstes "IntInt2Int" nannte. Wer bitte soll denn da noch mitkommen ?
Finde ich eigentlich ganz OK so. Da der Typ von T nicht bekannt ist und die Beispielklasse auch keine explizite Funktion hat ist "value" ein gängiger Bezeichner.

Edit: "IntInt2Int" ist allerdings tatsächlich etwas seltsam.
 
M

Meniskusschaden

Das V benutzt man soweit ich weiß nur in Verbindung mit K, um deutlich zu machen, dass es um Schlüssel/Wert-Paare geht. Das ist in diesem Beispiel nicht so, deshalb finde ich T schon sinnvoll und üblich.
 
mihe7

mihe7

Gerade erklärt er, dass es da verschiedene Bezeichnungen gibt und T für ein beliebiges Objekt steht,es aber auch noch V (für value), K (für key) und E (für elements) gibt.
Das sind die offiziellen Benennungskonventionen für Typparameter (https://docs.oracle.com/javase/tutorial/java/generics/types.html)

Aber warum bitte gibt man dann bitte einer Variablen für T ausgerechnet den namen value ?
OK, da hätte er besser ein anderes Beispiel gewählt.
 
J

JavaDaHood

Ich hoffe, da sind die Fehler der ersten Ausgabe korrigiert worden. Da waren nämlich inbesondere in den Codebeispielen mehrere kleine Fehler drin, bei denen man sich fragte, ob der Autor den Code nicht selbst ausprobiert hat.
Wenn du mir die Stellen im Buch sagst, dann schaue ich gerne nach.;)

Was ich mal als generellen Kritikpunkt an sehr vielen Büchern/Videotutorials anmerken muss, ist die Unfähigkeit vieler Autoren, sich in ihren Beispielen sinnvolle Variablennamen einfallen zu lassen. Insbesondere finde ich es verwirrend, wenn dann Variablennamen genutzt werden, die zu Verwechslungen führen. Wenn ich beispielsweise ein Objekt "Mensch" anlegen will, dann definiere ich dieses Objekt so, dass seine verschiedenen Parameter (wie Name, Alter,Gewicht usw) auch in Variablen gespeichert werden, deren Name auf ihren Inhalt hindeuten. Ich würde also die die Variable, die mal das Alter beinhalten soll, nicht "name" nennen. Genau DAS scheinen viele Autoren aber mit Hochgenuss zu praktizieren. Da wundert man sich dann als Anfänger, warum statt dem Alter, das man abrufen will, plötzlich "Peter Müller" zu lesen ist usw.
Blau ergänzt, damit der Satz Sinn ergibt.;)

Da stimme ich dir zu, da ich weiß was du meinst!
Sowas hasse ich auch, habe mich aber langsam schon daran gewöhnt.:rolleyes:
Mist, habe zwar schon knapp 200 Seiten gelesen (noch lange nicht alles verstanden:rolleyes:), aber finde jetzt auch den Code im Buch nicht der mir unverstädlich ist.:confused:

Seite 171 "Tschüss sagen mit Methoden" ist aber ein gutes Beispiel!
Hier wird ein Parameter mit "name" angegeben. Dieser Parameter hat aber, wie ich es von Variablen her kenne keine Werte-Zuweisung. Dennoch kann System.out.println("Tschüss " + name); z.B. Tschüss Schrödinger ausgeben.
Wer die Möglichkeit hat per Onlinebibliothek, der kann ggf. einen Screenshot von S171/172 machen und hier veröffentlichen.
Danke!
 
J

JavaDaHood

Ich versuche mal nur den Code hier abzutippen.
Java:
package.de.galileocomputing.schroedinger.java.kapitel05.methoden;
public class TschuessSager {
    public static void main (String[] args) {
        sagTschuess("Schrödinger");
        sagTschuess("Bossingen");
    }
    public static void sagTschuess(String name) {
        System.out.println("Tschüss " + name);
    }
}

//in deiner Methode

public static void sagTschuess(String name) {
    if(name !=null && name.startsWith("Boss")) {
        System.out.println("Auf Wiedersehen , Herr " + name);
    } else {
        System.out.println("Tschüss " + name);
    }
}
 
T

temi

Ich versuche mal nur den Code hier abzutippen.
Java:
package.de.galileocomputing.schroedinger.java.kapitel05.methoden;
public class TschuessSager {
    public static void main (String[] args) {
        sagTschuess("Schrödinger");
        sagTschuess("Bossingen");
    }
    public static void sagTschuess(String name) {
        System.out.println("Tschüss " + name);
    }
}

//in deiner Methode

public static void sagTschuess(String name) {
    if(name !=null && name.startsWith("Boss")) {
        System.out.println("Auf Wiedersehen , Herr " + name);
    } else {
        System.out.println("Tschüss " + name);
    }
}
Passt doch alles. Der Parametername ist meiner Ansicht nach gut gewählt. Was vermisst du hier?

Die Zuweisung des Wertes an einen Parameter erfolgt beim Aufruf der Methode
 
Zuletzt bearbeitet:
W

Werniman

Das "Tschüss Schrödinger"-Beispiel ist doch m.E. noch ganz gut gewählt und (zumindest für meinen Geschmack) recht einfach zu verstehen.

Schrödinger wird noch komplizierter..über Kapitel 7 zerbreche ich mir inzwischen seit 4 Tagen den Kopf, weil der Autor hier sofort übers Ziel hinausschießt und ein Bespiel ins Feld führt,das für einen Anfänger, der gerade erst die Sache mit der Vererbung oder den Interfaces gelernt hat, viel zu umfangreich sind. Das ist auch so´n Punkt, über den ich mich mit schöner Regelmäßigkeit aufrege: man merkt den Autoren (egal ob von Büchern oder von irgendwelchen Videos) an, welches Thema ihnen persönlich gut liegt. Dann werden nämlich die Beispiele plötzlich mächtig groß und die Erklärungen mächtig kurz.
 
Zuletzt bearbeitet:
T

temi

Das "Tschüss Schrödinger"-Beispiel ist doch m.E. noch ganz gut gewählt und (zumindest für meinen Geschmack) recht einfach zu verstehen.

Schrödinger wird noch komplizierter..über Kapitel 7 zerbreche ich mir inzwischen seit 4 Tagen den Kopf, weil der Autor hier sofort übers Ziel hinausschießt und ein Bespiel ins Feld führt,das für einen Anfänger, der gerade erst die Sache mit der Vererbung oder den Interfaces gelernt hat, viel zu umfangreich sind. Das ist auch so´n Punkt, über den ich mich mit schöner Regelmäßigkeit aufrege: man merkt den Autoren (egal ob von Büchern oder von irgendwelchen Videos) an, welches Thema ihnen persönlich gut liegt. Dann werden nämlich die Beispiele plötzlich mächtig groß und die Erklärungen mächtig kurz.
Zu dem von dir genannten kann ich jetzt nichts sagen, aber ich kann dir sagen, dass ich das Konzept des Interfaces, als es mir zum ersten Mal begegnet ist, auch nicht verstanden habe (bzw. den Sinn des Ganzen). Das kam erst später, als ich mich auch mit Entwurfsmustern beschäftigt habe.

Vermutlich wird es kein Buch geben, dass alles so erklärt, das es jeder versteht. Dafür gibt es dann dieses Forum :)
 
Zuletzt bearbeitet:
Thema: 

Buch für Anfänger gesucht - Java / JavaFX

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben