Programieren java lernen ? wo ansetzen ?

Trimx

Lieutenant
Registriert
Mai 2007
Beiträge
602
Hi ich bin durch einen anderen beitrag ermutigt worden mir java mal beibringen zu wollen habe auch schon youtube gesehen aber das hilft mir nicht weiter könnt ihr mir sagen was für bücher ihr mir entfehlen könnt oder wo auch jemand der bisher nur user war besser in die Materie eintauchen kann ? also websiten wo Turtorials den einstieg in die welt von java einen beibringen können und mann step bei step auch kleine erfolge bekommen kann ? möchte gerne mir sowas mal bei bringen .

Musste jetzt leider ein neues Thema aufmachen da ein anderes leider geschlossen wurde wo ich aber gemerkt habe das mann viele schöne sachen machen kann die mann so niemals komerx kaufen kann
 
Für komplette Einsteiger meiner Meinung nach sehr gut geeignet ist „Sprechen Sie Java?”: Klick. Da fängst du wirklich bei null an.

Lass dir bloß nicht „Java ist auch eine Insel” für den Anfang aufschwatzen, das ist eher für Fortgeschrittene und als Nachschlagewerk gedacht (imho).

Edit: @Nilson, passt ja perfekt. :D
Ich zitiere mal aus dem Vorwort von „Java ist auch eine Insel”: „Dieses Buch darf nicht als Programmierbuch für Anfänger verstanden werden. Wer noch nie programmiert hat und mit dem Wort »Übersetzen« in erster Linie »Dolmetschen« verbindet, der sollte besser ein anderes Tutorial bevorzugen oder parallel lesen.” – demzufolge ungeeignet für den TE.
 
Jap, mir auch unverständlich, warum die Insel hier immer sofort genannt wird. Kost halt nix...

"Head First Java" soll für Anfänger recht gut geeignet sein. Kenne ich allerdings selbst nicht. Vor vielen, vielen Jahren war "Thinking in Java" mein Einstieg (gibt es auch kostenlos, mittlerweile allerdings schon etwas angestaubt).
 
Vielleicht wird die Insel immer wieder genannt, weil damit schon etliche Java oder Programmieren überhaupt gelernt haben. ;)
Es nicht zu nennen halte ich für falsch; wer damit nicht zurecht kommt kann genauso auf anderes ausweichen wie umgekehrt.

An StackOverflow führt über kurz oder lang auch kein Weg vorbei. ^^
 
Wenn er weiter ist waehre "Effective Java" eine gute Wahl. Hoffentlich bringt der Author eine Version zu Java 9 raus, wenn es schon keine zu 7/8 gab. Der D Punkt Verlag hat ganz gute Buecher, besitze selber ein paar davon. Alternativ kann man sich auch erstmals ein paar Onlineressourcen (Tutorialspoint z.B.) durchlesen.
 
Keine Ahnung. Gallileo macht aber sehr gute Bücher.
 
Trimx schrieb:
Hi ich bin durch einen anderen beitrag ermutigt worden mir java mal beibringen zu wollen
Um es gleich von vornherein zu sagen: Willst Du nur aus einer Laune heraus programmieren lernen, wirst Du scheitern. Programmieren lernen kann man nur mit langfristigen Interesse, weils einfach viel Zeit kostet und man auch gewillt sein muss, sich mit Gedankengängen vertraut zu machen, die einem bisher nicht über den Weg gelaufen sind. Mit anderen Worten: Etwas ist auch nicht ganz einfach es zu lernen.
Und man wird viele Frustmomente aushalten müssen.

Hast Du damit kein Problem und den echten Willen, steht dem aber im Prinzip nix entgegen. Und da ist letztlich auch egal, welche Programmiersprache.
Trotzdem möchte ich Java zur Disposition stellen. Mit Java macht man sicherlich nix verkehrt aber als Einführung in die Programmierung empfinde ich es als suboptimal. Da fände ich eine Skriptsprache a-la Python besser, weil man eben sofort loslegen kann und nicht erst 20 Zeilen tippen muss, um allein "Hello World" auszugeben oder ne IDE zu installieren, deren Möglichkeiten und Umfang einem erstmal erschlägt.

Skriptsprachen unterstützen mehr die explorativen Ansatz. Das herumspielen am Code usw. Man kann das ganze noch weiter treiben, in dem man eine Smalltalk-Umgebung wie beispielsweise Pharo nimmt, wobei da wiederum der Nachteil ist, dass Du wenig deutsprachiges Material findest und auch deutlich weniger Foren finden wirst, wo Du Antworten auf Fragen bekommst, so dass sowas wie Python ein annehmbarer Kompromiss ist.

Das man später dann doch eher Java macht steht dem auch nicht im Wege, weil die grundsätzlichen Konzepte sind sehr ähnlich. Man sollte aber differenzieren zwischen "programmieren lernen" und eine "Programmiersprache lernen". Und ersteres wird in Python vermutlich leichter von der Hand gehen.

Solltest Du dennoch bei Java als Anfangssprache bleiben wollen: Ja, auch das ist natürlich zu schaffen. Es ist sogar ein Schlaraffenland verglichen mit dem, womit ich mich seinerzeit abplagen musste und ich habs auch (so leidlich ;) ) geschafft.

Aber wenns angenehmere Wege gibt, dann möchte ich zumindest darauf hingewiesen haben.


Trimx schrieb:
Musste jetzt leider ein neues Thema aufmachen da ein anderes leider geschlossen wurde wo ich aber gemerkt habe das mann viele schöne sachen machen kann die mann so niemals komerx kaufen kann
Bei der Wahl der Programmiersprache kommt es natürlich auch darauf an, was man machen möchte.

Java ist wunderbar, wenn man als Programmierer angestellt arbeiten will, weils halt so verbreitet ist. Privat würde ich es nicht einsetzen. Zu umständlich, unkomfortabel, unelegant.
Ergänzung ()

Nilson schrieb:
http://openbook.rheinwerk-verlag.de/javainsel/

Eigentlich das Standardwerk für den Java einstieg.

Also wenn man schon die "Insel" nennt, dann gleich auch die 10.Auflage:
http://www.tutego.de/javabuch/Java-ist-auch-eine-Insel/10/

Ansonsten wurde ja hier schon alles Wesentliche über das Buch gesagt.
 
Wenn englisch kein Problem darstellt, sind das bereits erwähnte www.tutorialspoint.com/java und www.vogella.com/tutorials/java.html ganz gut. Gerade Tutorialspoint kann man gut Punkt für Punkt durcharbeiten. Auch ganz übersichtlich gestaltet ist http://java.meritcampus.com/core-java-topics. Java ist eine Insel ist ein gutes Buch. Und es gehört wahrscheinlich zum besten deutschsprachigen Material, das man kostenlos im Netz finden kann.
Den puren Anfänger leiten aber all diese Quellen zu wenig. Daher sind sie für jemand ohne Vorkenntnisse weniger geeignet.
Was ich persönlich empfehle ist, gerade wenn man ganz am Anfang steht, sich einen Kurs zu suchen. Nichts hilft am Anfang besser, als ein Mensch der einem die Grundlagen zeigt. Durchaus bezahlbare Kurse gibt es an den Volkshochschulen. Mit um die 300€ für eine Woche ist man da dabei. Das legt zumindest den Grundstein, auf dem man aufbauen kann. Es gibt auch private Anbieter (die meist besser als ein VHS-Kurs sind), die aber kaum bezahlbar sind.
Wenn es aber ein Buch sein soll/muss, kann ich "Von Kopf bis Fuß" empfehlen. Das leitet den Leser am Anfang gut und lässt sich flüssig lesen, da es gerade kein Nachschlagewerk ist. Es hat viele gute Bilder, um die doch etwas trockene Materie des Programmierens zu veranschaulichen. Damit gestaltet sich auch der Einstieg in die Objektorientierung leichter.
Scriptsprachen sind durchaus ein angenehmer Einstieg ins Programmieren. Leider verführt gerade die Möglichkeit des rumprobierens dazu, sich einen schlechten Programmierstil anzueignen. Das mag am Anfang vernachlässigbar erscheinen, aber wenn man sein Programm von letzter Woche nicht mehr versteht und deswegen wieder von vorne beginnt, ist einfach ärgerlich (ich sprech aus Erfahrung ;) ).
Ich selbst bin Programmierer (prozedurale Programmiersprache) und derzeit dabei mich nebenbei in Java einzuarbeiten.
 
realLeuchtturm schrieb:
Was ich persönlich empfehle ist, gerade wenn man ganz am Anfang steht, sich einen Kurs zu suchen. Nichts hilft am Anfang besser, als ein Mensch der einem die Grundlagen zeigt.
Das kann tatsächlich ziemlich hilfreich sein. Unter Umständen hat man ja auch jemand der programmiert im Bekanntenkreis. Bringt der noch zumindest ein Minimum an Erklärtalent mit, hilft das schon viel weiter.
Ansonsten ist ja noch dieses Forum stets bemüht :-)

realLeuchtturm schrieb:
Leider verführt gerade die Möglichkeit des rumprobierens dazu, sich einen schlechten Programmierstil anzueignen.
Das war nicht immer so, aber inzwischen ziehe ich solche Argumentationen in Zweifel.
Als ich angefangen hab, da war das mit BASIC (also in seiner ursprünglichen Form mit Zeilennummern etc. wie man es von den Homecomputer der 80er Jahre kannte). Damals hieß es, dass ist gaanz schlechter Stil. GOTO ist die Wurzel allen Übels etc. Mach was modernes. Nimm Pascal oder C.

Ok. Also Pascal genommen mit seinem prozeduralen Stil. Hat auch alles gut geklappt. Nur tauchten dann vermehrt OOP-Leute auf. Prozedural? Ganz schlechter Stil! Die Zukunft ist objektorientiert. Lern so zu denken. Hat nur Vorteile. Nimm C++ !!!"

Also mit C++ abgequält. Aber C++ ist wirklich Schrott. Nimm Java. Das ist jetzt der heiße Scheiß. Endlich saubere OOP ohne Fallstricke wie Mehrfachvererbung etc. Also machte ich von da an alles in Java später auch Python und Ruby, aber da kippte die Stimmung schon. OOP? Ganz schlechte Idee. Du musst funktional programmieren. Denk nur an immer öfter vorkommenden Multicore-CPUs die Du dann endlich ausnutzen kannst ohne Dir groß Gedanken machen zu müssen.
Also programmierte ich funktional.

Zwei Erkenntnisse hab ich gewonnen. Du kannst eigentlich nehmen was Du willst. Irgendwie kommt immer einer um die Ecke der sagt, dass man das so nicht macht. Aber das ist gar nicht das Wichtige. Das Wichtige ist, dass man dadurch mit vielen Paradigmen auseinandergesetzt hat und selbst für einen einschätzen kann, was gut ist und was nicht.

Das das bedeutet für mich persönlich, dass eine Art und Weise zu programmieren eben nicht per se gut ist oder schlecht, sondern es darauf ankommt, was man machen möchte. Und ich mir heute den Luxus erlauben kann, für ein Teilproblem eben auch das passende Paradigma wählen kann. Die Erfahrung habe ich aber nur, weil ich halt diesen Weg gegangen bin. Weil ich sowohl in den Dreckecken der Programmierung war als auch in den Elfenbeintürmen.

Und ja, es ist anstrengend und oftmals auch frustrierend, weil man merkt, das man in der Vergangenheit viel Sch**ß gemacht hat (wer das nicht glaubt, soll mal seinen Quellcode von vor ein paar Jahren nochmal angucken).
Aber meiner Meinung nach lohnt es sich und es ist auch nicht unbedingt nachhaltig schädlich wenn man sich ein paar schlechte Angewohnheiten einfängt.

Solange man fähig ist das auch zu erkennen und sich einzugestehen, dass man immer irgendwie dazu lernt und das dazu Fehler genauso dazu gehören wie Erfolge, ist das überhaupt kein Problem.

Dann gibts natürlich noch den Typus von Programmierer, der irgendlich nur seine Probleme lösen will. So in die Richtung Excel-Advokat der irgendwann mal auf VBA gestoßen ist. Oftmals von sogenannten richtigen Programmierern verlacht, schafft er es aber dennoch sich das Leben zu vereinfachen. Seine Lösungen sind zwar mitunter kreativ aber nicht unbedingt das, was man mit gutem Stil verbindet.

Aber mal ehrlich. Was wäre passiert, wenn man dem gesagt hätte?: Lass mal den Quatsch. Nimm C++ (oder was auch immer). Dem wäre das alles viel zu kompliziert gewesen und er wäre gar nicht zum programmieren gekommen. Der hätte dann anstelle von VBA (oder was es da sonst noch so für belächelte Sprachen gibt) einfach nix, womit er seine Probleme löst bzw. sich das Leben vereinfacht.

Insofern sollte man das mit dem guten Stil und schlechten Stil etwas gelassener sehen.

Was dann schon eher sinnvoll ist in Hinblick auf die Wahl der Programmiersprache ist, wenn es darum geht, dass man ein bestimmtes Paradigma verinnerlichen will. Dort kann es dann sinnvoll sein möglichst eine Programmiersprache zu nehmen, die sich vor allem ein Paradigma verschreibt. Weil man (bei Multiparadigmensprachen) sonst leicht in Gewohnheiten zurückfällt, so dass man das dann doch nicht wirklich lernt.

Bei Objektorientierung denk ich da z.B. an Smalltalk (bzw. Pharo als zeitgemäße und sehr aktiv gepflegte Implementation).
Beim funktionalen Paradigma erfüllt z.B. Haskell diese Aufgabe gut.

Aber bei einem Anfänger der von Tuten und Blasen keine Ahnung hat, machen Empfehlungen hinblicklich irgendeines guten oder schlechten Stils kaum Sinn. Der soll überhaupt erstmal irgendwie Anfahren lernen, bevor es darum geht nen Sportwagen schnell über die Piste zu peitschen oder ein LKW filligran in ne Parklücke zu bekommen.

realLeuchtturm schrieb:
Ich selbst bin Programmierer (prozedurale Programmiersprache) und derzeit dabei mich nebenbei in Java einzuarbeiten.
Was von guten Stil zu erzählen und dann aber Java lernen, ringt mir dann doch ein schmunzeln ab. :-)

Gruß
A.
 
andy_m4 schrieb:
Da fände ich eine Skriptsprache a-la Python besser, weil man eben sofort loslegen kann und nicht erst 20 Zeilen tippen muss, um allein "Hello World" auszugeben oder ne IDE zu installieren, deren Möglichkeiten und Umfang einem erstmal erschlägt.
Code:
public class HalloWelt {
       public static void main (String[] args) {
             System.out.println("Hallo Welt!");
       }
}

cmd >>"javac HalloWelt.java" :freak:

Wer sagt, dass man für Java eine IDE braucht? Man kommt zu Beginn auch super mit Notepad++ oder PSPad zurecht (hinterlegt man den Compiler spart man sich sogar das Kommando-Fenster).
Vorteil bei Java ist zudem dass man später einen leichten Einstieg in die Android Entwicklung findet. Zudem gibts imo mehr aktuelle Tutorials.
Gibt bestimmt auch einige Argumente die für Python sprechen. Aber deins zählt in der Form nicht dazu. Finds gut wenn man Alternativen vorschlägt, aber bitte mit sachlichen Argumenten.

andy_m4 schrieb:
Was von guten Stil zu erzählen und dann aber Java lernen, ringt mir dann doch ein schmunzeln ab. :-)
Das müsstest du auch genauer erläutern. Meinst du die knapp 100.000 werktätigen Softwareentwickler in Deutschland haben einen schlechten Programmierstil? Zumal man sich die Sprache beruflich nicht immer aussuchen kann.;)
 
Zuletzt bearbeitet:
G00fY schrieb:
Wer sagt, dass man für Java eine IDE braucht? Man kommt zu Beginn auch super mit Notepad++ oder PSPad zurecht (hinterlegt man den Compiler spart man sich sogar das Kommando-Fenster).
Du, ich bin da durchaus bei Dir. Man kommt damit zurecht. Ich mein, als ich programmieren gelernt hab (so die ersten Schritte), da hatte ich nicht mal einen eigenen Computer. Ab und an (wenn auch selten) hatte man Zugang zu einem. Ansonsten hat man Programme auf dem Papier geschrieben. Und ich hab es auch geschafft.

Die Frage ist eher, soll man das zum Normalzustand erheben, bloß weil es ja auch geht. Oder gönnt man sich geringere Hürden. Ich behaupte mal, die Hürde ist bei einer Skriptsprache a-la Python geringer als bei Java. Ob das als grundweg positiv zu werten ist, ist sicher streitbar.

Ansonsten hab ich ja eigentlich schon klar ausgedrückt, dass ansich beim lernen die Programmiersprache egal ist. Wenns denn Java sein soll, ist grundsätzlich nix dagegen einzuwenden.

G00fY schrieb:
Gibt bestimmt auch einige Argumente die für Python sprechen. Aber deins zählt in der Form nicht dazu. Finds gut wenn man Alternativen vorschlägt, aber bitte mit sachlichen Argumenten.
Python oder Skriptsprachen bietet einfach leichteren Zugang. Man braucht sich um vieles erst mal nicht zu kümmern. Wie z.B. Variablendeklarationen. Ich muss dazu sagen, dass ich grundsätzlich Variablendeklarationen eher gut finde. Aber zum experimentelle Entdeckungsreise ist es eher hinderliche Bürokratie.

Und Dein Hello World-Beispiel zeigt ja sehr anschaulich, wie bürokratisch Java sein kann. Man muss ohne große Not erstmal ne Klasse definieren und ne main-Funktion und System.out.println geht jetzt auch nicht unbedingt leicht von der Hand. Man tippt also erstmal viel und hinten raus kommt wenig Spektakuläres. Und mann versteht auch als Anfänger nicht, warum das alles so ist und was der ganze Kram bedeutet. Man schleppt ihn aber mit rum und zerstört so ein wenig die Übersichtlichkeit des Codes.

Wie gesagt, es wird einem sicherlich nicht die Chance rauben programmieren zu lernen. Aber nervig ist es schon.

G00fY schrieb:
Vorteil bei Java ist zudem dass man später einen leichten Einstieg in die Android Entwicklung findet. Zudem gibts imo mehr aktuelle Tutorials.
Und nu? Vielleicht hat er das ja gar nicht im Hinterkopf. Und ich kann mich nicht erinnern, dass der Fragesteller etwas in der Richtung geäußert hätte. Vielleicht hat er ja auch ein iPhone und will da was machen. Dann würde man ja eher argumentieren Nimm Obective-C oder besser Swift.
Aber solange es darüber keine Infos gibt, bleibt alles spekulativ und dieses Argument so ziemlich wertlos.

G00fY schrieb:
Das müsstest du auch genauer erläutern. Meinst du die knapp 100.000 werktätigen Softwareentwickler in Deutschland haben einen schlechten Programmierstil?
Java hat unbestritten seine Stärken. Die liegen vor allem darin, dass Java und die JVM sehr konserativ weiter entwickelt werden. Man hat keine Kompatibilitätsbrüche (man denke nur an das Chaos bei Python 2 -> Python 3). Es gibt sehr viele Frameworks, Dokus und ausgereifte Tools/IDEs. Java ist auch dadurch sehr verbreitet, weil es viel an den Unis gelehrt wird.

Und das sind auch alles Gründe die für einen Einsatz von Java sprechen. Das Java eine schicke Sprache ist die elegante Lösungen ermöglicht gehört aber nicht dazu. Java ist relativ beschränkt in seinen Möglichkeiten bestimmte Sachen auszudrücken. Aber auch das trägt eher zur Verbreitung von Java bei. Weil es eben relativ einfach ist fremden Code zu lesen, weils wenig Möglichkeiten gibt kreative Lösungen einzubauen. Insofern lässt sich das als Vorteil als auch als Nachteil interpretieren.

Ansonsten (auch das hab ich ja schon gesagt) finde ich ja so ne Bewertungen wie "guter Stil" oder "schlechter Stil" eher problematisch.

Gruß
A.
 
Ich zitiere mal nicht und gehe nicht auf alle deine Aussagen ein. Das geht eher in Richtung Grundsatzdiskussion und wird OT. Man merkt dass du eher aus einer ganz anderen Richtung kommst. Vermutlich wirst du auch noch nicht im professionellen Umfeld mit Java gearbeitet haben. Mit allgemeinen Aussagen wie eine bestimmte Sprache sei "relativ beschränkt" sollte man nur nicht so leichtfertig um sich werfen. Nicht weil sich jemand auf die Fuße getreten fühlen könnte, sondern weil es immer auf das Einsatzgebiet ankommt und es zB auch extrem große Business-Projekte in Java gibt und die nicht ohne Grund.
 
Ich würde mir an deiner Stelle ein Projekt überlegen, das du realisieren möchtest und ein Buch dazu kaufen welches das Thema abdeckt.

Das ist wesentlich motivierender als mit einem Hello World Programm anzufangen. Unklarheiten und weniger detailliert erklärte Themen kann man dann immer noch in einem Kompendium oder Online nachschlagen.

Sind die Grundlagen und das Verständnis dann da, kann man sein Wissen ja dann perfektionieren.

Es gibt auch Seiten wo man Java Code online ausführen kann.

z.B.:
https://www.tutorialspoint.com/compile_java_online.php
 
Zuletzt bearbeitet:
andy_m4 schrieb:
Und Dein Hello World-Beispiel zeigt ja sehr anschaulich, wie bürokratisch Java sein kann. Man muss ohne große Not erstmal ne Klasse definieren und ne main-Funktion und System.out.println geht jetzt auch nicht unbedingt leicht von der Hand. Man tippt also erstmal viel und hinten raus kommt wenig Spektakuläres. Und mann versteht auch als Anfänger nicht, warum das alles so ist und was der ganze Kram bedeutet. Man schleppt ihn aber mit rum und zerstört so ein wenig die Übersichtlichkeit des Codes.
Auch wenn ich zu deiner Meinung tendiere und auch sagen würde: "Scriptsprache ist da vielleicht einfacher", ich kann das so nicht stehen lassen. Vielleicht sollte man einem Anfänger nicht einfach ein Hello World vor den Kopf werfen sondern demjenigen auch erklären was dort passiert? Vielleicht sollte derjenige kurz erklärt bekommen das es objektorientierte Sprachen gibt und was diese ausmacht. Dazu muss man ja nicht in die Tiefe gehen. Eigentlich sollte dann der Anfänger auch kein Problem haben zu verstehen das es eine Klasse ist. (Auch wenn das static darin die Sache dann torpediert^^)
Ja, man benötigt eventl. etwas Vorwissen. Aber ist es wirklich besser Sachen zu verstecken?
In Java kann man über System.out.println zeigen wie der String auf die Konsole kommt. Ich finde das ist bei print nicht ganz so offensichtlich. Dazu kommt das es unterschiedlich je nach Version ist :)
Vielleicht muss man das drum herum in Java einfach mal nutzen um Dinge zu erklären?


andy_m4 schrieb:
Java hat unbestritten seine Stärken. Die liegen vor allem darin, dass Java und die JVM sehr konserativ weiter entwickelt werden. Man hat keine Kompatibilitätsbrüche (man denke nur an das Chaos bei Python 2 -> Python 3). Es gibt sehr viele Frameworks, Dokus und ausgereifte Tools/IDEs. Java ist auch dadurch sehr verbreitet, weil es viel an den Unis gelehrt wird.
Das man keine Kompatibilitätsbrüche hat ist ein Gerücht :) Aber man wird oft darauf vorbereitet, z.B. durch @deprecated.
Aber das man Java an den Unis lehrt weil es verbreitet ist und damit weiter verbreitet halte ich ebenfalls für ein Gerücht. Irgendwie muss das initial an die Unis gekommen sein. So schlecht zum lernen kann Java wohl nicht sein.
So beschränkt kann die Sprache nicht sein. Sonst wäre es wohl kaum eine der am weitesten verbreiteten und auch auf Servern läuft es als Java EE nicht gerade wenig. Ich würde natürlich nicht unbedingt versuchen damit einen Treiber zu schreiben. ;)
 
Das am Ende immer ein Glaubenskrieg ausbrechen muss welche Sprache besser ist.....

Ich persönlich finde man sollte die Sprache nutzen die für das gestellte Problem am besten geeignet ist.

Ich kann dir die Literatur und Video-Trainings von Rheinwerk empfehlen so habe ich mir die Grundlagen von C# angeeignet.

Je nach Lerntyp kannst du dir ja mal das passende Video-Training oder das Buch Schrödinger Lernt Java anschauen.

Die Schrödinger lernt Bücher sind wir die Kopf bis Fuß Bücher, etwas spezieller als "normale" Fachliteratur wenn du mit dem Ansatz klar kommst sind die aber super
 
Zurück
Oben