Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

O'Reilly Bücher gelten mitunter zu den besten Büchern, sind aber durchaus nicht immer leicht zu verstehen.

Ich habe zu den "Entwurfmustern" ein ähnliches aus dem Addison Wesley Verlag. Ich denke mit diesem Buch kannst Du nicht viel falsch machen.

Zu "Java 6" sehe ich etwas das Problem, dass es sich um ein reines Übungsbuch handelt, evtl solltest Du hier auch ein Buch dazu bestellen bzw ein anderes wählen, was Dich in die Thematik der OOP einführt

Phil

Geschrieben

Zu "Java 6" sehe ich etwas das Problem, dass es sich um ein reines Übungsbuch handelt, evtl solltest Du hier auch ein Buch dazu bestellen bzw ein anderes wählen, was Dich in die Thematik der OOP einführt

Das ist aber eigentlich auch so gewollt. Ich hab hier neben mir das "Handbuch der Java Programmierung" (2008, Addison-Wesley) liegen, das ja einen sehr umfangreichen Überblick über alles Mögliche und eine gute Einführung in die OOP gibt. Mein Ansatzpunkt ist ein anderer: Zum Einen will ich Übungen, die Gelerntes festigen (selbst was ausdenken macht keinen Spaß) und zum Andern will ich gern tiefer ins Detail gehen, daher das Buch zu Design Pattern.

Hast du sonst Alternativ-Vorschläge? Wie gesagt, ich möchte kein reines Lehrbuch.

Geschrieben

Also wenn Du das nur üben willst, dann ist es eine gute Wahl (auch wenn ich es jetzt nicht kenne). Für die Theorie würde ich Dir ggf noch den Balzert bzw Sedgewick empfehlen (also wenn Du wirklich Konzepte lernen willst, weil es reine Lehrbücher sind)

Phil

Geschrieben

Aus Wikipedia:

Sedgewick promovierte an der Stanford University bei Donald Ervin Knuth. Seine Ph.D.-Arbeit behandelte den Algorithmus quicksort.

Freak. :D

Mir hat das in der Berufsschule schon gereicht :rolleyes:

Aber Danke für die Hinweise. Ich muss da bloß aufpassen, dass es nicht zu heftig wird. Ich bin erst im 1. Lehrjahr, zwar lern ich schnell, aber zuviel neue Theorie in sich reinschaufeln, is immer hart find ich.

Geschrieben

Freak. :D

Mir hat das in der Berufsschule schon gereicht :rolleyes:

Mist und ich dachte, ich könnte ihn Dir so unterschieben :old

Aber ich muss sagen, wenn es einen interessiert, sind seine Bücher wirklich super.

Phil

Geschrieben

Allerdings, aber ich bin für sowas oft zu ungeduldig.

Was mich aber noch sehr interessieren würde, wäre eine Art Nachschlagewerk - ein Handbuch für diverse, immer wieder auftretende Problemfälle bei der Programmierung. Hab mir genau sowas vor nicht allzu langer Zeit für C# bestellen lassen.

Zugegeben, für C# gibts auch nicht so eine toll dokumentierte API, aber manchmal sind Beispiele einfach notwendig um zu kapieren, wie dieses oder jenes funktioniert.

Gibts da was?

Geschrieben

Was mich aber noch sehr interessieren würde, wäre eine Art Nachschlagewerk - ein Handbuch für diverse, immer wieder auftretende Problemfälle bei der Programmierung.

Du wirst sicher keine Literatur finden, die Dir für Problem x die Lösung y liefert, denn die Probleme muss man immer im Zusammenhang sehen

Hab mir genau sowas vor nicht allzu langer Zeit für C# bestellen lassen.

Zugegeben, für C# gibts auch nicht so eine toll dokumentierte API, aber manchmal sind Beispiele einfach notwendig um zu kapieren, wie dieses oder jenes funktioniert.

Also für die MS Sprachen gibt es die MSDN Library:

MSDN: Microsoft Developer Network (Deutschland) - .NET Framework, Visual Studio, Silverlight, Windows 7 und vieles mehr | MSDN Online

und für Java die Sun Doku

Overview (Java 2 Platform SE v1.4.2)

Phil

Geschrieben

Ja, ich hätte wetten können, dass jetzt der Link zur MSDN Seite kommt. Dies jetzt zu diskutieren würd zu weit führen und gehört hier auch gar nicht mehr rein, aber ich find sie im Vergleich zur API von sun einfach nur total schlecht, mager und unübersichtlich.

Anyway, das C# 2008 Codebook bietet genau das, was ich meinte. Mal als Beispiel: "Ermitteln, ob ein Jahr ein Schaltjahr ist -> Seite 160" oder "TextBox auf Zahleneingabe beschränken -> Seite 670" usw. Ohne da groß herum probieren und googlen zu müssen, gibts für jeden x-beliebigen Kleinkram Hilfestellung.

Fand ich eigentlich gut.

Geschrieben

Anyway, das C# 2008 Codebook bietet genau das, was ich meinte. Mal als Beispiel: "Ermitteln, ob ein Jahr ein Schaltjahr ist -> Seite 160" oder "TextBox auf Zahleneingabe beschränken -> Seite 670" usw. Ohne da groß herum probieren und googlen zu müssen, gibts für jeden x-beliebigen Kleinkram Hilfestellung.

Also das ist doch analog zu Java !? Schaltjahrprüfung ist z.B. Div und Mod Operationen. Bei der Textbox gibt es nur String, die Du dann konvertieren musst und bei Problemen eben eine Warnung ausgibst. Ich sehe da nicht so das Problem. Die Properties / Methoden der GUI (Swing / AWT) Komponenten kann man in der Doku nachlesen

Phil

Geschrieben

Das waren auch nur triviale Beispielfälle. Mir fällt jetzt auch grad nichts ein, wo kein Einwand von dir kommen könnte in der Art von "das macht man so und so". Aber vielleicht ist es auch einfach ein bisschen zu bequem, für alles Mögliche vorgefertigte Lösungsansätze - gesammelt in einem hübschen, dicken Buch - haben zu wollen :floet:

Außerdem gibts ja noch dieses Forum.:cool:

Geschrieben
Aber vielleicht ist es auch einfach ein bisschen zu bequem, für alles Mögliche vorgefertigte Lösungsansätze - gesammelt in einem hübschen, dicken Buch - haben zu wollen :floet:

Außerdem gibts ja noch dieses Forum.:cool:

Newsgroups und Foren denke ich sind da die besten Anlaufstellen, denn meistens sind ja es als Anfänger nur die Fragen "Wie geht das oder jenes".

Aber wäre doch vielleicht einmal ein netter Gedanke, den Du selbst als kleines Webprojekt o.ä. umsetzen könntest

Phil

Geschrieben

meist ist ja bei solchen sachen nur die frage "nach was such ich eigentlich".

Ich kann dein Problem voll und ganz nachvollziehen. Was du auf jedenfall tun koenntest ist dein "Problem" in dem C# Buch nachzuschlagen und dann bei google nach dem equivalent fuer Java suchen.

So mach ich es zumindest wenn ich weis wie ich das in PHP loesen wuerde :)

Weil du bist nicht der erste der diese Sorge hat :P

Ted

Geschrieben

Hallo Ulfmann,

ich habe beide von dir erwähnten Bücher hier zu hause liegen, das Java 6 Übungsbuch jedoch nur als Leihgabe der FH-Bibliothek, weshalb ich es bisher auch nur mal durch geblättert habe. Ich weiß bei diesem Buch allerdings nicht so recht was ich von davon halten soll, es gibt eine kurze Erklärung der Themen und anschließend eine Reihe von Übungsaufgaben.

Ich halt einfach mal mein Finger rein und such dir mal eine raus:


Eine für das Graphics-Objekt vordefinierte Eigenschaft ist die

[I]clip-rectangle[/I]-Eigenschaft. Definieren Sie in Analogie zur Klasse

[I]JComponentmitpaintundohneclipBounds[/I] aus Aufgabe 4.5 eine Klasse

[I]JComponentmitpaintundclipBounds[/I], die für das Neuzeichnen einer

Komponente, nachdem die Größe des Fensters abgeändert wurde, das

Clip-Rectangle nutzt.

Für die Klassennamen kann ich übrigens nichts, die standen dort genau so auch in dem Java6 Übungsbuch.

Das andere Buch hingegen kann ich dir aber uneingeschränkt empfehlen, jeder der früher oder später mal vor hat Programme im größeren Maßstab zu schreiben muss einfach ein Buch über Entwurfsmuster gelesen haben! So was gehört einfach zum Repertoire eines jeden Programmierers - also kaufen! - unabhängig von anderen möglichen Büchern ;)

Geschrieben

Cool, danke Leute!

@ Sofus: Sowas is eigentlich genau, was ich brauche. Sinnvoller wäre natürlich ein Projekt, welches derartige praktische Bezüge beinhaltet, aber dabei stoß ich einfach noch zu oft an meine Grenzen und weiß nicht weiter. Deshalb sind solche abgegrenzten "Szenarien" wie du es zitiert hast ganz interessant. Immerhin muss ich mir sowas zum großen Teil selbst beibringen und was gibts da besseres als solche Übungen?

@ afo: Ich wusste nicht, dass es exakt das gleiche Buch als Java-Pendant gibt. Nun ist ja die Frage, ob es überhaupt Sinn macht, sich das auch noch anzuschaffen. Ich hab das Inhaltsverzeichnis mal überflogen und offenbar isses wirklich nichts anderes als das Buch für C#. Aber danke trotzdem!

Geschrieben

An dieser Stelle möchte ich einfach mal mein absolutes lieblings Buch im Bereich der Java-Programmierung erwähnen, weil ich das Gefühl habe, dass dieses Buch zu unrecht etwas vernachlässigt wird. Jeder hat irgendwie das Handbuch der Java-Programmierung, ich übrigens auch :D, allerdings finde ich dieses Buch gar nicht so toll - zum Nachschlagen ja - zum lesen und lernen eher nein.

Aber kaum einer kennt Java lernen mit BlueJ von David J. Barnes und Michael Kölling.

Ok was ist so toll an dem Buch?

- Naja zum einen fängt es ganz von vorne an, ich selbst habe das Buch zu einer Zeit gelesen wo meine Programmierkenntnisse in Java, naja sagen wir "gut" waren, trotzdem kam bei diesem Buch keine Langeweile auf.

- Das Buch hält sich an den "Object First"-Ansatz, ist also komplett Objektorientiert, so wie ich es bis jetzt noch in keinem anderen Buch finden konnte.

- Außerdem beschäftigt sich das Buch neben der reinen Programmierung auch mit softwaretechnischen Aspekten, wie zum Beispiel Refactoring, Kohäsion, Kopplung oder Abstraktion. Nun gut die Begriffe werden jetzt nicht gerade tiefschürfend behandelt, aber man lernt, dass es neben dem reinen Programmieren auch noch andere Dinge für das Erstellen von Software gibt die wichtig sind.

- Erreicht wird das ganze durch ein projektorientiertes Vorgehen. Man hat nicht einfach irgendwelche Programmcodeschnipsel die das gezeigte verdeutlichen sollen, sondern man hat eine Aufgabe (Projekt) das in Software umgesetzt werden soll, anhand dessen die Programmierung mit Java Stück für Stück erklärt wird. Ein nettes Beispiel ist das Erstellen eines textorientierten Adventures aus Kapitel 7.

Ach und noch eins, das Buch lässt sich wunderbar flüssig und angenehm einfach lesen. So, nun aber genug der Werbung, für alle die auf dieses Thema stoßen und bei denen ich Interesse wecken konnte, schaut euch das Buch einfach mal an - @Ulfmann ob das Buch auch für dich infrage käme kann ich schlecht sagen, ich glaub du suchst lieber etwas weiterführendes.

Geschrieben

Ja eigentlich schon. Wie eingangs erwähnt will ich eigentlich nicht noch ein Grundlagenbuch - obwohl es sich durchaus brauchbar anhört, was du darüber sagst.

Sinn und Zweck dieses Threads sollte ja sein, dass hier ein paar gute Literatur Tipps zusammen getragen werden können (was ja gut funktioniert).

Geschrieben

Aber kaum einer kennt Java lernen mit BlueJ von David J. Barnes und Michael Kölling.

Ich kann nur jedem von BlueJ abraten, denn es spiegelt nicht wirklich einen OOP Ansatz wieder, es ist eine massive Vereinfachung der OOP Strukturen. Wenn man Java lernt/übt, dann bitte komplett ohne solche Tools.

Phil

Geschrieben

Um das Buch jetzt nicht vollständig unter deiner Kritik untergehen zulassen, hier ein Rettungsversuch:

Das Buch beschäftigt sich mit der Programmierung in Java an sich, BlueJ ist da nur Mittel zum Zweck und jeder der ein paar Grundkenntnisse in Java besitzt kann die Aufgaben natürlich auch ohne BlueJ lösen.

@flashpixx Trotzdem würde mich natürlich interessieren wieso du meinst das BlueJ den OOP-Ansatz nicht wieder spiegelt oder gar vereinfacht.

Geschrieben

@flashpixx Trotzdem würde mich natürlich interessieren wieso du meinst das BlueJ den OOP-Ansatz nicht wieder spiegelt oder gar vereinfacht.

BlueJ erzeugt den strukturierten anhand der vom Benutzer eingegeben Diagramme. Der Anfänger muss sich im Grunde kaum, um das eigentliche Codedesign kümmern, weil ihm das durch BlueJ entsprechend vorgegeben wird. Es ist genau für mich ähnlich dazu, dass ich einen Anfänger nie mit Eclipse arbeiten lassen würde, da durch die Syntaxergänzung er nicht wirklich mehr programmiert, sondern davon ausgeht die GUI liefert ihm schon passende Vorschläge.

Ich denke gerade bei Anfängern ist es wichtig, dass sie einen Basissatz an Strukturen lernen und das kann ich mit solchen Tools nicht. Ich kann ja mich auch nicht einfach an einen Porsche setzen und los fahren, wenn ich noch nicht mal Auto fahren kann. Wenn man große Softwareprojekte hat, dann ist eine graphische Unterstützt absolut sinnvoll, aber da haben die Programmierer die entsprechende Erfahrung von Design Patterns.

Was bringt es, wenn ein Anfänger ein "Hello World" Programm per Drag 'n' Drop zusammen stellt, aber die Basisbefehle nicht wirklich lernt, weil ihm durch die GUI hier ein falsches Bild vermittelt wird. Ich würde jedem Anfänger dazu raten, dass er sich einen Editor mit Syntaxhighlighting besorgt und seine Codes zuerst vollkommen autark erstellt und auf der Konsole kompiliert, damit er ein Gefühl für die Komplexität erhält

Phil

Geschrieben

@flashpixx So wirklich widersprechen kann ich dir da nicht, denn ich bin auch kein Freund von Programmen, in denen sich Anfänger per Drag and Drop erste Ergebnisse zusammen klicken können. Deswegen finde ich deine Empfehlung für einen Editor mit Syntax highlighting ohne großen Schnickschnack genau richtig.

Doch BlueJ ist eigentlich genau Das. Ich sehe hier keine Möglichkeit mir Code zusammen zu klicken, wenn ich den Button "Neue Klasse" verwende werde ich aufgefordert den Namen meiner Klasse ein zugeben und bekomme dann eine leider nicht ganz leere java-Datei, dies kann man aber in den Templets für neue Klassen leicht ändern. In der Standardeinstellung müsste man jetzt den Gnzen Rumpf der Klasse löschen.

Für alle die BlueJ nicht kenne hier die automatisch erzeugte Klasse bei der Eingabe "Nachricht" als Klassennamen:


/**

 * Beschreiben Sie hier die Klasse Nachricht.

 * 

 * @author (Ihr Name) 

 * @version (eine Versionsnummer oder ein Datum)

 */

public class Nachricht

{

    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen

    int x;


    /**

     * Konstruktor für Objekte der Klasse Nachricht

     */

    public Nachricht()

    {

        // Instanzvariable initialisieren

        x = 0;

    }


    /**

     * Ein Beispiel einer Methode - ersetzen Sie diesen Kommentar 

     * mit Ihrem eigenen

     * 

     * @param  y    ein Beispielparameter für eine Methode

     * @return        die Summe aus x und y

     */

    public int beispielMethode(int y)

    {

        // tragen Sie hier den Code ein

        return x + y;

    }

}

Jetzt kann man natürlich eine weitere Klasse zum Beispiel "PrivateNachricht" anlegen und dann in der grafischen Oberfläche ein Vererbungspfeil von PrivaterNachricht zu Nachricht ziehen. Was in dem Code von PrivaterNachricht lediglich dazuführt, dass im Kopf der Klasse ein extends Nachricht angefügt wird. Die Klasse an sich schreibt man aber völlig selbst ohne irgendwelche Einschränkungen hinsichtlich der Möglichkeiten die die Sprache Java bietet. Der Eigentlich Vorteil von BlueJ liegt aber darin Java-Anweisungen interaktiv ausführen zu können, ähnlich wie in der Python-Konsole. Zu finden ist das Ganze unter "Ansicht" -> "Direkteingabe anzeigen" - Ein Beispiel: Mit '>' sind Eingaben und ohne '>' sind Ausgaben der Direkteingabe gemeint.

> 4 +4

8 (int)

> true && false

false (boolean)

> double x = 0.1 + 0.1 + 0.1;

> x == 0.3

false (boolean)

> import java.util.*;

> new Scanner("12 13 14")

<object reference> (Scanner)

Die Referenz von Scanner kann man jetzt per Drag and Drop in die Objektleiste ziehen, wo man nun per Rechtsklick auf das Objekt alle Methoden die dieses Objekt zur Verfügung stellt angezeigt bekommt. Jetzt kann man nach belieben unterschiedliche Methoden aufrufen, zum Beispiel hasNextInt() oder nextInt(). Auch der momentane Zustand des Obejktes lässt sich so untersuchen, ruft man nextInt() auf kann man genau verfolgen wie sich die private Instanzvariable position des Scanner-Objektes verändert. Alles Dinge die dabei helfen sollen das Verhalten und das Benutzen von Objekten zu verstehen. Aus diesem Grund wurde auch BlueJ ausschließlich für die Lehre geschrieben.

BuleJ ist zwar kein Buch, kann aber trotzdem nützlich sein bei dem Versuch seine ersten eigenen Klassen näher zu Untersuchen und interaktiv mit ihnen zu interagieren. Main-Methoden sind dabei überflüssig.

Geschrieben

@Sofus: Wirklich umfangreiche Antwort. Ich sehe das wirklich aus der Sicht des Tutors und es fängt meistens bei den Sichtbarkeiten von Klassen, Variablen und Methoden an.

Als Beispiel Eclipse: Ich kann dort verschiedene SDKs einbinden, aber die meisten Anfänger scheitern schon daran, wenn sie einmal selbst in der Konsole kompilieren sollen => warum geht das nicht? (weil z.B. Pfad Angaben fehlen usw)

BlueJ ist letztendlich eine IDE wie Eclipse, so dass es bei BlueJ in ähnlicher Weise gilt wie für Eclipse. Ich bin (leider) der Meinung, dass man Anfänger das Schwimmen ohne Schwimmflügel beibringen sollte, d.h. JDK und SDK per Hand installieren, Pfade anpassen und dann mit einem Editor von Null beginnend anfangen. Gerade in Klausuren fällt es auf, dass viele zwar lauffähige Programme abgeben, aber auf einem Blatt Papier keinen Code reproduzieren können.

Phil

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...