KampfKatze Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 Hey, bin gerade dabei mir Java anzueignen, doch wie lernt man wirklich effektiv die Sprache? Kann man es mit, wie man es aus dem Englisch Unterricht kennt, Vokabeln lernen vergleichen? Oder doch etwa learning by doing? Wie habt ihr den effektiv gelernt? Gruß Sent from my iPhone using Fachinformatiker.de mobile app Zitieren
wisdomsoz Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 Also habe Java im Studium gemacht, du lernst es nur durch machen. Kann dir die Tage mal paar Übungen hochladen bzw. Materialien. Du musst halt nur die Logik verstehen, irgendwann hast du den Griff raus. KampfKatze reagierte darauf 1 Zitieren
Whiz-zarD Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 Suche unter Google nach "coding katas" und versuche sie zu bearbeiten. Eine Liste findest du z.B. hier KampfKatze reagierte darauf 1 Zitieren
KampfKatze Geschrieben 3. Januar 2017 Autor Geschrieben 3. Januar 2017 Also habe Java im Studium gemacht, du lernst es nur durch machen. Kann dir die Tage mal paar Übungen hochladen bzw. Materialien. Du musst halt nur die Logik verstehen, irgendwann hast du den Griff raus.Gerne Suche unter Google nach "coding katas" und versuche sie zu bearbeiten. Eine Liste findest du z.B. hierVielen DankSent from my iPhone using Fachinformatiker.de mobile app Zitieren
KampfKatze Geschrieben 3. Januar 2017 Autor Geschrieben 3. Januar 2017 (bearbeitet) Verstehe verstehe die englischen Erklärungen überhaupt nicht und zwar: What is the output of this Code: int result = 0; for (int i = 0; i < 5; i++) { if (i == 3) { result += 10; } else { result += i; } } System.out.println(result); Ich weiß das 17 rauskommen, aber ich weiß nicht wie man drauf kommt. Die englische Erklärung verstehe ich nicht. Ich würde es so erklären: i entspricht 0, wenn i kleiner als 5 ist wird um 1 hoch gezählt, bis zur 5. Wenn aber i 3 entsprechen, was es ja irgendwann tut werden 10 ausgegeben. Und weiter verstehe ich nicht. Gruß (Des spinnt komplett rum, macht anstatt 1 gleich 2 Absätze rein...) Sent from my iPhone using Fachinformatiker.de mobile app Bearbeitet 3. Januar 2017 von KampfKatze Zitieren
Whiz-zarD Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 (bearbeitet) Der Code ist nicht vollständig. Der Kopf der For-Schleife ist nicht vollständig. Und was machst du gerade? Bis jetzt sehe ich nur, dass wenn der Zähler i gleich 3 ist, auf das Ergebnis 10 addiert wird, ansonsten 1. Bearbeitet 3. Januar 2017 von Whiz-zarD Zitieren
KampfKatze Geschrieben 3. Januar 2017 Autor Geschrieben 3. Januar 2017 (bearbeitet) vor 13 Minuten schrieb Whiz-zarD: Der Code ist nicht vollständig. Der Kopf der For-Schleife ist nicht vollständig. Und was machst du gerade? Habs editiert, sieht zwar grauenhaft aus aber die App spinnt irgendwie. Mache gerade Übungen zu Schleifen und for each etc Bearbeitet 3. Januar 2017 von KampfKatze Zitieren
Whiz-zarD Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 (bearbeitet) Und wo genau liegt das Problem? Gehen wir mal die Schleife durch: i result ------------------------------------ 0 result += 0 => result = result + 0 => result = 0 + 0 = 0 1 result += 1 => result = result + 1 => result = 0 + 1 = 1 2 result += 2 => result = result + 2 => result = 1 + 2 = 3 3 result += 10 => result = result + 10 => result = 3 + 10 = 13 4 result += 4 => result = result + 4 => result = 13 + 4 = 17 Auf result wird pro Schleifendurchlauf immer i dazu addiert. Die Ausnahme ist, wenn der Zähler i bei 3 ist. Dann wird 10 draufaddiert. Der += operator ist nur eine Abkürzung result += i ist das selbe wie result = result + i Bearbeitet 3. Januar 2017 von Whiz-zarD KampfKatze reagierte darauf 1 Zitieren
KampfKatze Geschrieben 3. Januar 2017 Autor Geschrieben 3. Januar 2017 Ach Hab es verstanden, also wird praktisch wenn jetzt rauskommt = 3 und beim nächsten Durchgang 4 immer das miteinander addiert und somit kommt man auf 7, sprich bei += 10 wären es dann 17 und dann kommt bsp. 5 beim nächsten dann wird das wiederrum mit der 17 addiert. Okay passt. Und da result mit 0 deklariert wurde wird mit 0 + 0 begonnen, weil i auch 0 ist, logisch. Dann wird weiter auf 1 gezählt und das dann wiederrum + 0 = 1 Bei 2 wären es dann +2 = 3 Irgendwann wird 10 draufgerechnet sprich + 3 in dem Fall dann wären es 13.Und da nochmal um 1 hoch gezählt wird haben wir dann zum Schluss 4 + 13 = 17Hab ich es so verstanden richtig? Sent from my iPhone using Fachinformatiker.de mobile app Zitieren
Whiz-zarD Geschrieben 3. Januar 2017 Geschrieben 3. Januar 2017 (bearbeitet) Einfacher geht es kaum noch. Ich versuche es aber mal. Du hast eine For-Schleife. Im Kopf stehen folgende Informationen: Die Zählervariable heißt i => int i = 0 i wird mit 0 initialisiert => int i = 0 Die Schleife läuft so lange, wie i kleiner 5 ist => i < 5 Pro Schleifendurchlauf wird i um 1 erhöht => i++ Das bedeutet, du hast 5 Schleifendurchläufe bei jedem Schleifendurchgang wird folgende Logik angewendet: if (i == 3) { result += 10; } else { result += i; } D.h. wenn i gleich 3 ist, dann wird auf result 10 addiert. Ansonaten i. Jetzt gehen wir die Durchläufe Schritt-für-Schritt durch: Durchlauf: i = 0, result = 0 i ist nicht 3, also wird auf result 0 addiert. result ist 0; also: result = result + i = 0 + 0 = 0 Durchlauf: i = 1, result = 0 i ist nicht 3, also wird auf result 1 addiert. result ist 0; also: result = result + i = 0 + 1 = 1 Durchlauf: i = 2, result = 1 i ist nicht 3, also wird auf result 2 addiert. result ist 1; also: result = result + i = 1 + 2 = 3 Durchlauf: i = 3, result = 3i ist 3, also wird auf result 10 addiert. result ist 3; also: result = result + 10 = 3 + 10 = 13 Durchlauf: i = 4, result = 13 i ist nicht 3, also wird auf result 4 addiert. result ist 13; also: result = result + i = 13 +4 = 17 Beim 6. Durchlauf hätte i den Wert 5 und somit entspricht i nicht mehr der Bedingung, dass es kleiner als 5 ist und bricht die Schleife ab. result ist dann 17 und wird in der Konsole ausgegeben. Bearbeitet 3. Januar 2017 von Whiz-zarD KampfKatze reagierte darauf 1 Zitieren
ateso Geschrieben 19. Januar 2017 Geschrieben 19. Januar 2017 On 03.01.2017 at 5:18 PM, wisdomsoz said: Also habe Java im Studium gemacht, du lernst es nur durch machen. Kann dir die Tage mal paar Übungen hochladen bzw. Materialien. Du musst halt nur die Logik verstehen, irgendwann hast du den Griff raus. @wisdomsoz könntest du mir bitte, bei Gelegenheit, auch die Unterlagen zu Java vom Studium zusenden?? An ateso@outlook.de Vielen Dank Gruß Ateso Zitieren
jk86 Geschrieben 27. Januar 2017 Geschrieben 27. Januar 2017 (bearbeitet) Am 3.1.2017 um 16:50 schrieb KampfKatze: bin gerade dabei mir Java anzueignen, doch wie lernt man wirklich effektiv die Sprache? Kann man es mit, wie man es aus dem Englisch Unterricht kennt, Vokabeln lernen vergleichen? Ja und nein. Ja, weil es eine Handvoll Vokabeln gibt, die man einfach auswenig lernen muss. Zum Beispiel, dass man float für Zahlen mit Nachkommastellen verwendet. Ja und nein, weil man keine Sprache (weder eine real existierende Sprache wie Englisch, noch eine Programmiersprache) beherrscht, wenn man einfach alle verwendeten Wörter und ihre Übersetzung auswendig kennt. Grammatik, Aussprache und die ganze Logik einer Sprache spielen auch eine Rolle. Gut, Aussprache spiellt bei Programmiersprachen keine Rolle. Die Syntax ist aber enorm wichtig. Und die Logik. Mit Logik meine ich, wie man letztendlich denkt. Beispiel: Im Deutschen wird die Zahl 97 Siebenundneunzig gesprochen, also 7 + 90. Im Englischen wären es aber ninety-seven (90 + 7). Wenn ein Mensch, der mit Englisch aufgewachsen ist und Deutsch lernt, das erste Mal die Zahl 97 auf Deutsch diktiert bekommt, wird er wahrscheinlich 79 schreiben, weil er gewohnt ist, dass die Zehnerstelle zuerst genannt wird. Noch abgefahrener wird es im Französischen, da ist 97 nämlich quatre vingt dix sept (4 * 20 + 10 + 7) - zumindest bei mir immer wieder Anlass zu "wtf?"-Momenten, aber irgendwie auch raffiniert gelöst. Die Zahlen allein sind letztendlich alle die gleichen - aber sie werden komplett anders gedacht. Auf Programmiersprachen übertragen muss man auch die Logik dahinter verstehen. Möglicherweise noch stärker als in einer gesprochenen Sprache. Grammatische Fehler machen auch Muttersprachler, die sind verzeihbar. Der Computer hingegen verzeiht nichts! Was ist der Unterschied zwischen do und while und wann wende ich was an - beides sind doch Schleifen? Wann ist etwas innerhalb des Gültigkeitsbereichs? Wie erzeuge ich ein Objekt aus einer Klasse? Worauf zeigt der Zeiger? Wozu ist überhaupt der Garbage Collector da und wie wird das in anderen Sprachen gelöst? Mit dem reinen Vokabellernen alleine kommt man da nicht weiter. Ich hab mehrmals erfolglos versucht, C und C++ zu lernen. Erst als ich begriffen habe dass da eine komplette Denkweise dahintersteht, in die man sich reinfuchsen muss, bin ich über die ersten 50 Seiten der Lernbücher hinausgekommen. Bearbeitet 27. Januar 2017 von jk86 thereisnospace, KampfKatze und Thanks-and-Goodbye reagierten darauf 3 Zitieren
ignidrake Geschrieben 27. Januar 2017 Geschrieben 27. Januar 2017 Also habe Java im Studium gemacht, du lernst es nur durch machen. Kann dir die Tage mal paar Übungen hochladen bzw. Materialien. Du musst halt nur die Logik verstehen, irgendwann hast du den Griff raus.Hi, kannst du vielleicht ne Link zu Übungen auch hier schreiben?Ich würde die auch liebendgerne anschauen Zitieren
wisdomsoz Geschrieben 30. Januar 2017 Geschrieben 30. Januar 2017 Sry für die späte Antwort, ich werde es die Tage hochladen! LG Zitieren
Thanks-and-Goodbye Geschrieben 30. Januar 2017 Geschrieben 30. Januar 2017 vor 57 Minuten schrieb wisdomsoz: [...] ich werde es die Tage hochladen! Und dabei bitte die Urheberrechte berücksichtigen. Danke. mapr reagierte darauf 1 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.