# Hilfe beim Einstieg



## EyYo (27. Sep 2011)

Hallo,
ich möchte mit Java anfangen. Das SDK habe ich mir gerade installiert doch dann kommt schon das erste Problem, ich soll bei oracle meine Anschrift eingeben, kann ich das SDK auch ohne die Aktivierung des Kontos verwenden und somit die Anschrift nicht angeben ?

Welchen Editor nehme ich am besten als Einsteiger ? Ich bin erst 14 und habe keinerlei Erfahrung mit Java, ich habe bisher nur ein bisschen mit VB 2008 hantiert, aber in Visual Studio klickt man ja mehr als man programmiert 

Ich würde mich über Hilfe freuen.


----------



## Gast2 (27. Sep 2011)

Das JDK kannst du auch ohne Registrierung herunterladen.
Ich habe damals in der Uni mit dem Java-Editor angefangen, du bekommst damit schon etwas Hilfe was syntaxhighlighting angeht etc.
Die ersten Schritte solltest du aber auf der Konsole machen.


----------



## njans (27. Sep 2011)

Also du solltest das JDK installieren. 
Als Editor empfehlen sich NetBeans oder Eclipse. In jedem Fall solltest du dir Grundkenntnisse im Programmieren zulegen, also mal Galileo Computing :: Java ist auch eine Insel – anschauen


----------



## Asgar13 (27. Sep 2011)

Zu empfehlen sind die Editoren, auch IDEs genannt:

1. Eclipse
2. Netbeans
3. Idea

gibt natürlich auch andere. (Die meisten in diesen Forum haben eclipse, wenn ich es so richtig weiß)

Zum Thema:

Nimm lieber das JDk, statt das SDK.


----------



## obb (27. Sep 2011)

Gerade für Anfänger kann ich wärmstens eine Kombination aus Notepad++ und javac (der Konsolencompiler im JDK) empfehlen. Ich finde es ist anfangs recht ratsam mit primitiven Werkzeugen zu programmieren, da man so die Hintergründe ein bisschen besser versteht, als jemand der gleich mit einer aufgeblähten IDE loslegt.​Edit: Solltest Du aus der Linux-Ecke kommen, kann ich Dir auch den GCJ empfehlen. Damit kannst Du deine Java-Programme direkt in Binärcode kompilieren, was vielleicht ein bisschen mehr Spaß macht, als deine Programme immer mit java xyz über die Konsole aufzurufen.​


----------



## Tomate_Salat (27. Sep 2011)

Ich hab direkt mit Eclipse angefangen und es hat mir nicht geschadet . Wie man über die Konsole kompiliert und/oder jar-files erstellt ist nett zu wissen, aber imho nicht essentiell (wer macht das heute noch händisch oO?). Die IDE nimmt einem zwar ein wenig was ab, reizt aber auch zum weiterlernen an. Eben weil man direkt sieht, welche Methoden man noch verwenden könnte oder welche Klassen es noch gibt.


----------



## vanny (27. Sep 2011)

Ich finde auch, dass man zum Java lernen keine Console/Texteditor -Kenntnisse benötigt, da kann man heutzutage ruhig mit ner schicken IDE anfangen.

Wenn man es benötigt, dann kann man sich sowas auch im Nachhinein aneignen.


----------



## obb (28. Sep 2011)

> Wie man über die Konsole kompiliert und/oder jar-files erstellt ist nett zu wissen, aber imho nicht essentiell (wer macht das heute noch händisch oO?).


Also das sollte in meinen Augen wirklich jeder können, der sich mit Programmierung befasst. Absolute Basics!


----------



## Spacerat (28. Sep 2011)

Asgar13 hat gesagt.:


> Nimm lieber das JDk, statt das SDK.


???:L Hätte da gerne mal den Unterschied erfahren. Akaik ist das, auf was du dort SDK beziehst das Java SDK oder kurz das JDK. Obwohl da gab es glaub' ich auch noch Unterschiede in den Versionsnummern. So ist z.B. die Bezeichnung "Java SDK 7" das Komplementär zum "JDK 1.7".


----------



## Dit_ (28. Sep 2011)

Absolute Basics kurzgefasst:
1. Öffne Konsole
2. Erstelle Datei HalloWelt.java
3. Schreibe Programmcode in die Datei, am besten Editor(Windows) benutzen, dieser bietet überhaupt keine Hilfsmittel ist genau das was man am anfang braucht...
4. Abspeichern
5. Schließen
6. gebe in der Konsole 
	
	
	
	





```
javac HalloWelt.java
```
7. gebe in der Konsole 
	
	
	
	





```
java HalloWelt.java
```
8. FERTIG


OK du beherrschst jetzt die absolute Basics. 
Lade Eclipse runter und verschwende keine Zeit mit der Konsole. Gerade am Anfang muss Programmieren Spass machen...


----------



## obb (28. Sep 2011)

Jo genau! Bloß keine Gedanken über Zusammenhänge machen. Wen interessiert schon wie der Code zur ausführbaren Datei wird? Hauptsache ich hab mir schnell mein Programm zusammengeklickt, alle Stellen die rot unterstrichen waren mit dem Quickfix behandelt und auf "Run" geklickt. Jetzt kann ich mir auf die Schulter klopfen und so tun als hätte ich auch nur den blassesten Schimmer von dem was ich da gerade gemacht habe.​Programmieren sollte wirklich Spaß machen. Das tut es meines Erachtens auch mit einem normalen Editor, der Syntax-Highlighting mitbringt. Dennoch finde ich es gut, wenn man sich gerade am Anfang die Zeit nimmt, anfallende Fehler von Hand zu beheben. Der Lerneffekt ist so einfach weitaus größer und man bekommt ein besseres Gefühl dafür übersichtlichen und gut strukturierten Code zu schreiben.​*Fazit:* Man macht sich einfach mehr Gedanken über das was man da genau tut. Und das ist an sich doch keine schlechte Sache oder?​


----------



## diggaa1984 (28. Sep 2011)

naja, ich finde ma muss nich unbedingt den Urschleim auf der Konsole üben .. programmieren im Editor, der nix unterstreicht und nur Highlighting besitzt ist dahingegen völlig ok  .. da sieht man ja immer erst beim Compilieren die Fehler und nicht schon während der Eingabe (ich hatte dazu Scintilla, und habe es auch immernoch für Miniprogramme, wo ich mir sicher bin das die sich in 10min runterschreiben und nich dolle anspruchsvoll sind).

Bezüglich der Buildprozesse finde ich es wichtiger sich mit Tools wie Maven zu beschäftigen, die einem da viel Arbeit abnehmen, das ist mehr wert als rumgehacke auf der Konsole  .. man muss das Rad ja nicht neu erfinden ... allerdings ist auch immer die Frage, wie komplex das Projekt ist und ob der Einsatz solcher Tools lohnt.


----------



## frapo (28. Sep 2011)

Dit_ hat gesagt.:


> Absolute Basics kurzgefasst:
> ...
> 7. gebe in der Konsole
> 
> ...



Klassisches Eigentor 

Die Zeile 7 muss 
	
	
	
	





```
java HalloWelt
```
 heißen.



Dit_ hat gesagt.:


> OK du *beherrschst jetzt die absolute Basics*.
> Lade Eclipse runter und verschwende keine Zeit mit der Konsole. Gerade am Anfang muss Programmieren Spass machen...



Eben an obigem sieht man, wie wichtig es für Anfänger ist nicht einfach nur stumpf auf eine nette IDE zu setzen :toll:


----------



## Asgar13 (28. Sep 2011)

Spacerat hat gesagt.:


> ???:L Hätte da gerne mal den Unterschied erfahren. Akaik ist das, auf was du dort SDK beziehst das Java SDK oder kurz das JDK. Obwohl da gab es glaub' ich auch noch Unterschiede in den Versionsnummern. So ist z.B. die Bezeichnung "Java SDK 7" das Komplementär zum "JDK 1.7".



Difference between JDK & SDK! - Java 
Und keine Registrierung.


----------



## frapo (28. Sep 2011)

Asgar13 hat gesagt.:


> Difference between JDK & SDK! - Java
> Und keine Registrierung.



Also der Thread in dem Link ist von 2007.., damals lief das ganze noch unter Sun. Da hat sich seitdem ja einiges geändert. 

Zwischen JDK und SDK dürfte es 'mittlerweile' keinen Unterschied mehr geben(die haben doch eh nie parallel existiert, soweit ich mich erinnere?), da SDK schlichtweg nicht zum Download angeboten werden 

Siehe Java SE Downloads

Ach ja, musste mich bei einem Download gerade übrigens nicht registrieren.


----------



## babuschka (28. Sep 2011)

Es ist zwar jedem selbst überlassen ob er sich direkt eine IDE holt oder zuerst mit einem Editor und Javac loslegt, in den meisten Lehrbüchern wird aber geraten ersteres erst nach dem Durcharbeiten der Grundlagen zu machen.

Hat sicherlich alles seine Vor- und Nachteile, ich für meinen Teil werde noch ein paar Wochen bei Notepad++ bleiben und dann in Richtung Eclipse gehen.


----------



## Asgar13 (28. Sep 2011)

frapo hat gesagt.:


> Also der Thread in dem Link ist von 2007.., damals lief das ganze noch unter Sun. Da hat sich seitdem ja einiges geändert.
> 
> Zwischen JDK und SDK dürfte es 'mittlerweile' keinen Unterschied mehr geben(die haben doch eh nie parallel existiert, soweit ich mich erinnere?), da SDK schlichtweg nicht zum Download angeboten werden
> 
> ...



Habe heute ein JDK aufgesetzt musste mich nicht registrieren.


----------



## Tomate_Salat (28. Sep 2011)

@obb:
Wer sich für eine Sprache interessiert, wird sich früher oder später auch die Hintergründe dazu ansehen. Aber mal ernsthaft: javac [dateiname] kann man sich binnen Sekunden anlesen, darüber brauchen wir eigentl. nicht disktutieren. Wieviele Anfänger können mit einer IDE umgehen und kennen QuickFix? Die Realität schaut so aus: viele Anfänger haben lange Probleme eine Exception zu lesen+auszuwerten. Eine IDE ist für Anfänger oft eindeutiger. BTW: ich glaube nicht, dass der Anfänger sein Hirn ausschaltet, sobald er die IDE startet. Letzendlich lernt man Programmieren durch Programmieren und das kann man imho am besten mit einer IDE.


----------



## Dow Jones (28. Sep 2011)

Na, ich schätze mal mit _Grundlagen_ ist doch nicht das starten eines Programms in der Konsole gemeint. Es geht doch eher um das Wissen über Packages, imports und static Methoden. Und später über Exceptions, Listener und all den anderen Kram halt, den einem die IDE auf Mausklick hin in den Code einfügt. Wer seinen Code mit einem simplen Texteditor schreibt muss sich mit solchen Dingen zwangsläufig mal eben auseinandersetzen bevor er sein erstes "Hallo Welt" fabriziert. Und eben dieses grundlegende Wissen hilft einem bisweilen beim weiteren Verständnis der Sprache. Daher halten es viele Leute (mich eingeschlossen) für sehr nützlich wenn man sich schon frühzeitig wenigstens eine rudimentäre Vorstellung davon verschafft.
Wenn man sich andererseits in erster Linie darauf verlässt das die IDE den eigenen Code schon so anpassen wird das er läuft - naja, mag funktionieren, ist aber nicht so "gut" wie selber zu wissen wie es geht. Man neigt dann aus Bequemlichkeit ja eher dazu das erlernen der Grundlagen immer weiter aufzuschieben.

Schlussendlich wird dir aber freilich jeder Ratgeber denjenigen Ratschlag geben, der seiner persönlichen Erfahrung nach am zweckdienlichsten ist - und daran ändert sich auch durch lange Debatten nichts. Dabei ist es eigentlich egal ob du nun mit Netbeans oder dem Notepad anfängst, zumindest ist keins von beiden ein irreversibler Fehler.


----------



## Spacerat (28. Sep 2011)

frapo hat gesagt.:


> Also der Thread in dem Link ist von 2007.., damals lief das ganze noch unter Sun. Da hat sich seitdem ja einiges geändert.
> Zwischen JDK und SDK dürfte es 'mittlerweile' keinen Unterschied mehr geben(die haben doch eh nie parallel existiert, soweit ich mich erinnere?), da SDK schlichtweg nicht zum Download angeboten werden


Mittlerweile ist gut... es gab' bis auf die Namensgebung soweit ich weis nie einen. Seit dem JDk1.2 gibt es das, weil Java seitdem auch den Namen "Java Platform 2" hat, die Versionsnummern aber bis heute noch 1.x sind. Unterschiede gibt es afaik nur in den Paketen Java2 SE, EE und ME.
Und dem Link folgend gibt es ja auch keine eindeutige Erklärung und die Seite von Sun existiert auch nicht mehr.


----------



## Dit_ (28. Sep 2011)

obb hat gesagt.:


> Jo genau! Bloß keine Gedanken über Zusammenhänge machen. Wen interessiert schon wie der Code zur ausführbaren Datei wird? Hauptsache ich hab mir schnell mein Programm zusammengeklickt, alle Stellen die rot unterstrichen waren mit dem Quickfix behandelt und auf "Run" geklickt. Jetzt kann ich mir auf die Schulter klopfen und so tun als hätte ich auch nur den blassesten Schimmer von dem was ich da gerade gemacht habe.​Programmieren sollte wirklich Spaß machen. Das tut es meines Erachtens auch mit einem normalen Editor, der Syntax-Highlighting mitbringt. Dennoch finde ich es gut, wenn man sich gerade am Anfang die Zeit nimmt, anfallende Fehler von Hand zu beheben. Der Lerneffekt ist so einfach weitaus größer und man bekommt ein besseres Gefühl dafür übersichtlichen und gut strukturierten Code zu schreiben.​*Fazit:* Man macht sich einfach mehr Gedanken über das was man da genau tut. Und das ist an sich doch keine schlechte Sache oder?​



stimmt alles,
ich wollte nur eins sagen.
Solche Sachen kann man einfach nachlesen und wenn es sein muss auszuprobieren, Sache von 3 minuten. Der Vorschlag über längere Zeit damit zu arbeiten ist... na ja... Außerdem sagen manche, dass Assemler & Co wirklich Basics ist... Also wie tief soll man da als Anfänger gehen?
Also ich weiß wirklich nicht welche Vorteile bringt es einem, zu wissen, wie man über die Konsole *.java komplieren kann. Außer wenn man über Putty auf dem einem VServer was schnell ausprobieren möchte, aber wer sowas macht hat schon Grundwissen... glaube ich.


----------



## Xeonkryptos (28. Sep 2011)

Ich kann meinen Vorredner nur Recht geben. Es gibt verschiedene Meinungen, was besser ist bezüglich dem Erst-Compilieren durch die Konsole, aber wenn man ehrlich ist, nach 2-3x compilieren mit der Konsole hat man das raus und kann dann schnell sich eine nette IDE suchen, die das selbständig macht.

Zu empfehlen habe ich zu Anfang keine der ganz großen IDEs wie Eclipse oder Netbeans sie sind. Ich empfehle hingegen Notepad++, welches Text-Highlighting hat, den JavaEditor, da dieser für die Schulen und Universitäten gemacht wurden, die nicht zu viel wie Eclipse, etc bieten, aber dennoch genug, um sich mit allen wichtigen Dingen eigenständig zu beschäftigen. JavaEditor bietet Text-Highlighting, eine Anzeige der Blöcke, finde ich bei größeren Programmen, so wie großen Verschachtelungen nicht gelungen, aber für einen Anfänger vollkommen ausreichend, eigenes compilieren und Methodenvorschläge für die Punktnotation, aber halt keine Codecompletion, kein Einrücken, keine Fehlerbehandlung während dem eigenen "Schreiben" (Alles Dinge, die man selbst erstmal erlernen sollte!).

Alles in allem ist es gut für Anfänger und zu empfehlen, bevor man sich dann an Eclipse und den Rest heranwagt.


----------



## frapo (28. Sep 2011)

Spacerat hat gesagt.:


> Mittlerweile ist gut...



Drum hatte ich mein 'mittlerweile' auch in einfache Gänsefüßchen gesetzt


----------



## Dow Jones (28. Sep 2011)

Dit_ hat gesagt.:


> Außerdem sagen manche, dass Assemler & Co wirklich Basics ist... Also wie tief soll man da als Anfänger gehen?


Die Einstellung das _Assembler wirklich Basic_ ist habe ich ja schon lange nicht mehr gehört. 
Aber wenn ich so darüber nachdenke ist das eigentlich eine - vom theoretischen Standpunkt her - interessante Frage: Ab welchem Stadium, wenn überhaupt, sollte ein Java-Neuling wissen was ein Bit ist? :reflect:
Doch das sollten wir nicht hier erörtern, das führt dann doch zu weit weg vom eigentlichen Sinn dieses Threads.



Dit_ hat gesagt.:


> Also ich weiß wirklich nicht welche Vorteile bringt es einem, zu wissen, wie man über die Konsole *.java komplieren kann.


Vermutlich herzlich wenig. Aber um das kompilieren in der Konsole geht es uns doch auch nicht. Ich selber befürchte halt das es bei Verwendung einer ausgewachsenen IDE zu Szenarien wie diesem kommen kann:

1) Neuling lässt sich von IDE einen Coderahmen erzeugen
2) Neuling tippt sein Hello-World in die fertige _static void main_ methode
3) Neuling möchte sein Programm erweitern indem er - wie er es irgendwo gelesen hat - eine zweite Methode und ein paar Variablen zu seiner Klasse hinzufügt
4) Das Programm läuft nicht. Die IDE sagt das die Methoden und Variablen _static_ sein müssen. Neuling hört auf IDE und verwendet überall static.
5) Programm läuft, Neuling freut sich

=> Neuling hat gelernt das man vor alle Variablen und Methoden _static_ schreiben muss und wird dies in Zukunft auch immer machen. Das scheint die Java-Syntax ja so vorzugeben. 

Das mag anfangs ja klappen, aber spätestens wenn Neuling mal Klasseninstanzen verwenden möchte wird er Probleme bekommen. Er hat irgendwo gelesen das er [c]myInstance.doSomething()[/c] schreiben soll, aber das läuft nicht. Wieder hat die IDE einen Ratschlag parat: Es muss [c]MyClass.doSomething()[/c] heissen. Der Code lässt sich damit auch tatsächlich kompilieren, nur tut das Programm nicht was es tun soll. Neuling ist ratlos und frustriert. Und ob er dann noch auf die Idee kommt mal nachzuforschen was _static_ bedeutet..? :rtfm:

Naja, so in dem Stil könnte die Geschichte weitergehen. Oder auch nicht; möglicherweise traue ich dem "gemeinen Java Neuling" ja auch nur zu wenig zu. Doch ich denke es besteht eine gute Chance solche Situationen zu vermeiden wenn man sich gleich zu Beginn schon vorstellen kann was _static void main_ eigentlich bedeutet.


----------



## vanny (28. Sep 2011)

Ich als Anfänger wäre jetzt verwirrt ^^ aber schönes Beispiel Jones :lol:

Mal ehrlich, Java lernen heißt für mich, sich mit dem Thema zu beschäftigen, Tutorials oder Bücher zu lesen und den Stoff umzusetzen.
Zumindest war es bei mir so und ich hab auch direkt mit eclipse angefangen, bzw. eher mit der trockenen Theorie, so dass ich schon wusste, was es mit der main auf sich hat, bevor ich auch nur eine Zeile Code geschrieben hatte.
Als ich dann in eclipse beim Erstellen der Klasse einfach das Häkchen bei "create main" einchecken konnte fand ich das schon echt nett und ich mache es heute noch so

Nunja wie überall zählt wohl auch hier in erster Line RTFM:rtfm: (oder besser die API)

Gruß Vanny


----------



## Spacerat (28. Sep 2011)

Bravo vanny! Jeder wie er am besten kann. Es sei denn man belegt einen Java-Kurs, da sollte man mitziehen.


> Assemmbler ist wirklich Basic


Das lest noch mal in Ruhe und lasst es euch auf der Zunge zergehen... :lol: ...ok, man weis ja, wie es gemeint ist


----------



## Gassst (29. Sep 2011)

Tomate_Salat hat gesagt.:


> viele Anfänger haben lange Probleme eine Exception zu lesen+auszuwerten. Eine IDE ist für Anfänger oft eindeutiger.


Genau, sieht man ja regelmäßig an den Threads wie
"Hilfe, eclipse unterkringelt mir das Rot!!!!????"
oder
"Java ist kaputt, Fehlermeldung lautet: 'Unresolved compilation error: xyz'"

Deine Einschätzung geht also arg an der Realität vorbei.


----------



## TheRealSpikee (29. Sep 2011)

Dit_ hat gesagt.:


> 7. gebe in der Konsole
> 
> 
> 
> ...



Daran sieht man ja das DU die Basics perfekt berherschst.

Warscheinlich hättest du auch mal mit Notepad und CMD anfangen sollen ...

@TO
Man merkt dir dein Alter an : die Registrierung ist WERBUNG ...

*wie oft muss man das diesen Kindern eigentlich noch sagen ... ?*


----------



## Tomate_Salat (29. Sep 2011)

Gassst hat gesagt.:


> Deine Einschätzung geht also arg an der Realität vorbei.



Ich lese wesentlich mehr Threads, in denen Exceptions entweder komplett ignoriert werden (also nicht gepostet) oder die immer wiederkehrende Frage: "wieso gibt das eine NPE?" (am besten noch ohne Source) als die Frage nach: "Eclipse unterkringelt mir das Rot".

Oder habe ich etwa behauptet, dass sich mit einer IDE ein Anfänger niemals ein Problem haben wird?


----------



## darekkay (29. Sep 2011)

Dow Jones hat gesagt.:


> 4) Das Programm läuft nicht. Die IDE sagt das die Methoden und Variablen _static_ sein müssen. Neuling hört auf IDE und verwendet überall static.
> 5) Programm läuft, Neuling freut sich



Haha, das erinnert mich tatsächlich an meine ersten (Selbst-)Versuche 

Aber das liegt weniger an der IDE, als an der Voreiligkeit, die ich beim Lernen neuer Sprachen habe. Ich habe 2-3 Jahre in Delphi programmiert, habe mir dementsprechend auch nur die (Syntax-)Basics von Java angeschaut und war dann ready to go. Solche Peinlichkeiten muss man in dem Fall durchmachen. 
Und es gibt glaube noch mehr Beispiele für Probleme mit notepad+javac, sodass ich immernoch Eclipse MIT entsprechendem Lehrbuch empfehlen würde. Wer wirklich lernt, wofür static steht, der wird nicht auf die blöde Idee kommen, einfach alles static zu machen. Und wer nur seine Uni-Hausaufgabe lösen will, der wird ohnehin die ganze Aufgabe mit allen 5.5 Punkten des Bettelns hier posten.


----------



## tuttle64 (29. Sep 2011)

Ob mit oder ohne IDE anfangen, da kann man lange darüber diskutieren und auch geteilter Meinung sein. 

Als Java Einsteiger habe ich auch direkt mit Eclipse begonnen und zwar begleitet durch die Tutorials in meiner Signatur. Als Anfänger habe ich nicht alles verstanden, aber begleitet durch die Videos habe ich sämtlichen Code zum Laufen gebracht. Danach ist mein Interesse an Java gestiegen und habe mir einige gute Bücher gekauft resp. als PDF vom Web geholt. Zur Zeit bereite ich mich auf den Sun Certified Java Programmer (SCJP), mittlerweile auf Oracle Certified Java Programmer umgetauft, vor.

@Dow Jones: Deinem Szenario kann ich leider nicht zustimmen. Ein heutiger Anfänger gehört ja meistens zur Google-Generation und wird nach java static suchen und u.a. auf diesen Link stossen: http://www.java-forum.org/stichwort-static/1353-bedeutet-static.html


----------



## Tomate_Salat (29. Sep 2011)

darekkay hat gesagt.:


> Wer wirklich lernt, wofür static steht, der wird nicht auf die blöde Idee kommen, einfach alles static zu machen.



dito. Außerdem ist nicht die IDE(sei es Notepad++ oder Eclipse) zuständig dafür, dass der Programmierer die Sprache lernt. Dafür gibt es entsprechende Fachlektüre. Aber ok: Gegenbeispiel: 
Parameter sollte man immer final behandeln (vllt gibt es Ausnahmen, aber diese sind mir nicht bekannt). Stellt man Eclipse richtig ein, dann setzt es beim Speichern immer das fehlende final vor die Parameter. Somit ist der Entwickler gezwungen, diese *immer* auch als final zu behandeln. Vllt gewöhnt er sich dadurch nicht an, final vor die Parameter zu schreiben, aber er gewöhnt sich an, wie man mit den Parametern zu arbeiten hat. (Ja, ich bin mir im klaren: wohl kein Anfänger wird sich die IDE so einstellen)


----------



## Crian (29. Sep 2011)

Ich finde, man sollte nicht zu spät auf eine gute IDE wechseln. Wenn man sich schon "gemütlich" anderweitig eingerichtet hat, lernt man sonst die vielen, gewaltigen Vorteile vielleicht gar nicht mehr schätzen, weil man irritiert ist, da alles ungewohnt ist.


----------



## Gasssst (29. Sep 2011)

Tomate_Salat hat gesagt.:


> Ich lese wesentlich mehr Threads, in denen Exceptions entweder komplett ignoriert werden (also nicht gepostet) oder die immer wiederkehrende Frage: "wieso gibt das eine NPE?" (am besten noch ohne Source) als die Frage nach: "Eclipse unterkringelt mir das Rot".


Richtig, aber inwiefern hat das _irgendetwas_ mit IDE vs. keine IDE zu tun? Das ist jawohl ein Problem beider Gruppen gleichermaßen. Wenn du Exceptions schon als Beispiel anführen willst, dann eher _gegen_ die IDE, da du wenn du mit der Konsole arbeitest die Exceptions oder Compilerfehlermeldungen gar nicht übersehen kannst, während du die Eclipse Konsole überhaupt nicht benutzen/lesen musst, wenn du nicht willst.



> Stellt man Eclipse richtig ein, dann setzt es beim Speichern immer das fehlende final vor die Parameter. Somit ist der Entwickler gezwungen, diese immer auch als final zu behandeln. Vllt gewöhnt er sich dadurch nicht an, final vor die Parameter zu schreiben, aber er gewöhnt sich an, wie man mit den Parametern zu arbeiten hat.


Nichts für ungut, aber das ist genau der falsche Weg. Wenn die Parameter automatisch final gemacht werden ist der Lerneffekt genau gleich Null, ähnlich zu dem anderen Beispiel Felder statisch zu machen, wenn Eclipse das so vorschlägt. Sich daran gewöhnen, und vielleicht später imitieren, tut ein Anfänger dann womöglich - Java lernen tut er allerdings *so* nicht.


----------



## Tomate_Salat (29. Sep 2011)

Gasssst hat gesagt.:


> Richtig, aber inwiefern hat das _irgendetwas_ mit IDE vs. keine IDE zu tun? Das ist jawohl ein Problem beider Gruppen gleichermaßen. Wenn du Exceptions schon als Beispiel anführen willst, dann eher _gegen_ die IDE, da du wenn du mit der Konsole arbeitest die Exceptions oder Compilerfehlermeldungen gar nicht übersehen kannst, während du die Eclipse Konsole überhaupt nicht benutzen/lesen musst, wenn du nicht willst.


Mir geht es darum, dass du während der Entwicklung schon siehst, wo Fehler auftauchen werden und wo nicht. Damit spart man sich die x-tausend fehlgeschlagenen Compilier-vorgänge und man kann sich mehr auf seine Fachliteratur konzentrieren. Um die NPE und ihre Freunde kommen beide Parteien nicht herum, da hast du recht.



> Nichts für ungut, aber das ist genau der falsche Weg. Wenn die Parameter automatisch final gemacht werden ist der Lerneffekt genau gleich Null


Sehe ich nicht so. Der Entwickler wird später wahrscheinlich die finals niemals händisch setzen (was in Zeiten der IDE auch nicht nötig ist), aber er wird die Parameter so behandeln. Damit ist schon einiges gewonnen.


----------



## xehpuk (29. Sep 2011)

Dow Jones hat gesagt.:


> Es geht doch eher um das Wissen über Packages, imports und static Methoden. Und später über Exceptions, Listener und all den anderen Kram halt, den einem die IDE auf Mausklick hin in den Code einfügt. Wer seinen Code mit einem simplen Texteditor schreibt muss sich mit solchen Dingen zwangsläufig mal eben auseinandersetzen bevor er sein erstes "Hallo Welt" fabriziert.


Wie verhindern IDEs die Aneignung dieses Wissens? Packages sind nichts weiter als Ordner (oder?), imports werden auch in der IDE benötigt (nur beim Einbinden über die Code Completion wird der import automatisch gesetzt) und einen Zusammenhang zwischen static und IDEs sehe ich auch nicht.
Zu Exceptions ist zu sagen: Gut, dass man try-catch oder throws über einen Quickfix bekommt. Alles andere wäre unproduktiv.

Der Unterschied zwischen "IDE-Kringeln" und Fehlermeldungen von javac auf der Konsole ist doch nur, dass man bei der Konsolenausgabe erst im Quelltext nach der betroffenen Stelle suchen muss (wieder Zeitverlust).


----------



## darekkay (29. Sep 2011)

Ich finde auch nicht, dass man mit "man sollte erstmal die Grundlagen mit einem Texteditor lernen, da die IDE vieles automatisch macht" argumentieren sollte. Es ist sogar ein Argument FÜR eine IDE - denn was habe ich davon, wenn ich am Anfang alles per Hand importiere, wenn ich später ohnehin täglich mit meiner IDE arbeiten werde und Strg+Shift+O (oder gar auto-import beim Speichern) mein bester Freund sein wird. Es ist ja nicht so, dass man für den Fall, "man würde irgendwann auf eine IDE verzichten müssen", aufgeschmissen sein wird, da dieser Fall eben niemals eintreten wird. Und ich werde auch niemals zum Vergnügen kommen, javac.exe direkt aufzurufen - wozu denn auch? Ich weiß, was es macht, und das ist das Einzige, was ich darüber wissen muss und will.

Java lernen + IDE benutzen > Java lernen + keine IDE benutzen > IDE benutzen


----------



## Asgar13 (30. Sep 2011)

Bevor der Krieg zwischen IDE und cmd/shell ausbricht eine Frage.

:question: 	Liest der TO das hier noch?


----------



## obb (30. Sep 2011)

Hoffentlich nur die Pro-Konsole-Beiträge!


----------



## vanny (30. Sep 2011)

Spacerat hat gesagt.:


> Bravo vanny! Jeder wie er am besten kann. Es sei denn man belegt einen Java-Kurs, da sollte man mitziehen. ...



Den versteh ich jetzt nich!?


----------



## Ark (30. Sep 2011)

darekkay hat gesagt.:


> Ich finde auch nicht, dass man mit "man sollte erstmal die Grundlagen mit einem Texteditor lernen, da die IDE vieles automatisch macht" argumentieren sollte. Es ist sogar ein Argument FÜR eine IDE - denn was habe ich davon, wenn ich am Anfang alles per Hand importiere, wenn ich später ohnehin täglich mit meiner IDE arbeiten werde und Strg+Shift+O (oder gar auto-import beim Speichern) mein bester Freund sein wird. Es ist ja nicht so, dass man für den Fall, "man würde irgendwann auf eine IDE verzichten müssen", aufgeschmissen sein wird, da dieser Fall eben niemals eintreten wird.


Hast du denn so gelernt, wie du es hier gerade für richtig hältst? Fühlst du dich auch sicher in der Anwendung der Sprache? Ich will damit nicht behaupten, dass dein Ansatz komplett falsch wäre. Aber falls du selbst nicht so (oder zumindest so ähnlich) gelernt hast, wie du es gerade vorschlägst, solltest du sehr vorsichtig sein. Ich bin der Meinung, dass man solche Lernprozesse (wie hier: Lernen einer Programmiersprache) selbst durchgemacht haben muss, da man wohl nur aus eigener, unmittelbarer Erfahrung sagen kann, ob ein Lern- bzw. Lehransatz taugt oder nicht. Wenn man etwas nicht selbst so lernen kann (weil man es z.B. schon gelernt hat), sollte man wenigstens andere gefragt haben, die auf entsprechende Weise lernen mussten.

Ich selbst musste mir z.B. VHDL beibringen, und das machte ich (mangels Zeit) sogleich in einer passenden IDE, die mir viele Codeteile generiert hat. Das war ein wesentliches Problem für mich, denn da mir die IDE das "Denken in der Sprache VHDL" abnahm, konnte ich nicht lernen, worauf es beim Schreiben von VHDL-Code wirklich ankommt. Selbst einfachste Sachen habe ich (trotz IDE) nur unter großen Anstrengungen hinbekommen, obwohl (a) mir völlig klar war, was ich erreichen wollte, (b) ich wusste, auf welche Knackpunkte ich achten musste (Hardware ist nun einmal etwas anderes als Software) und (c) ich ähnliche Konstrukte bereits aus Software-Programmiersprachen (von Assembler bis Java) kannte.

Darum mein Fazit (aus eigener Erfahrung): Lerne (solche Sachen) aus unmittelbarer Erfahrung. Auch die Drecksarbeit gehört dazu, wenngleich sie mühselig ist. Es ist normal, wenn man nicht alles auf Anhieb kann. Aller Anfang ist schwer. Aber wenn man nicht anfängt, kann man den Weg nicht finden.

Und chinesische Schriftzeichen zu schreiben, lernt man nicht, indem man sie nur anguckt.

Ark


----------



## darekkay (30. Sep 2011)

Ark hat gesagt.:


> Ich selbst musste mir z.B. VHDL beibringen, und das machte ich (mangels Zeit) sogleich in einer passenden IDE, die mir viele Codeteile generiert hat. Das war ein wesentliches Problem für mich, denn da mir die IDE das "Denken in der Sprache VHDL" abnahm, konnte ich nicht lernen, worauf es beim Schreiben von VHDL-Code wirklich ankommt.



Und was ist daran schuld gewesen:
a) Die IDE
b) Deine "Schlampigkeit" (nicht böse gemeint)

Du gibst der IDE die Schuld, weil du keine Zeit hattest, die Sprache richtig zu lernen?

Ich habe meine Meinung bereits zusammengefasst:
*Sprache lernen + IDE > Sprache lernen + keine IDE > IDE*

Ich habe gleich mit Eclipse angefangen. Wieso sollte ich denn auch per Hand alle nötigen Imports eintragen, die meine IDE selbstständig macht? Wieso sollte ich mühselig das Programm immer und immer wieder kompilieren, um nacheinander alle Compilierfehler angezeigt zu bekommen, wenn mir meine IDE diese noch vor dem Compilieren anstreichen kann?

Was du als "Drecksarbeit" bezeichnest, sehe ich einfach nur als Zeitverschwendung an. Es kommt natürlich auf die Person an. Wenn diese den einfachen Weg nimmt und das Lernen der Sprache aufgibt, weil ihm die IDE ja "alles abnimmt", dann ist die Person selbst schuld, und nicht die IDE. Ich persönlich möchte schließlich die Sprache lernen, und keine Zeit mit bsp. Tippfehlern verschwenden, die mir ein normaler Texteditor nicht sofort anzeigt.

Das einzig Negative an der IDE selbst, was mir einfällt, wäre der riesige Umfang für einen Neuling, der noch niemals programmiert hat. Hier müsste das entsprechende Lehrbuch mitdenken, und auf den ersten paar Seiten die allerwichtigsten Funktionen beschreiben (Projekt erstellen, Pakete anlegen, Klassen hinzufügen, "play" drücken). Hat man dann erstmal die Grundlagen drauf, kann man sich langsam in die zahlreichen Funktionen, die eine IDE bietet, einarbeiten.


----------



## Ark (1. Okt 2011)

darekkay hat gesagt.:


> Und was ist daran schuld gewesen:
> a) Die IDE
> b) Deine "Schlampigkeit" (nicht böse gemeint)
> 
> Du gibst der IDE die Schuld, weil du keine Zeit hattest, die Sprache richtig zu lernen?


Normalerweise setze ich beim Lernen mehr auf Qualität als auf Quantität. Meine Erfahrung hat mir bisher Folgendes gezeigt (mal am Beispiel erklärt): Nehmen wir mal an, ich lerne in einem Jahr etwas im Bereich Mathematik und eine Fremdsprache (z.B. Japanisch). Wenn ich das erste halbe Jahr nur für Mathe und das zweite halbe Jahr nur für Japanisch lerne, werde ich am Ende des Jahres für Mathe ein besseres Verständnis haben als für Japanisch, selbst wenn ich im zweiten Halbjahr nicht mehr aktiv etwas für Mathe mache. Wenn ich dagegen sowohl für Mathe als auch für Japanisch über das ganze Jahr parallel lerne (also gleiche Menge Lernstoff wie in der ersten Alternative, aber über längeren Zeitraum verteilt), werde ich am Ende des Jahres sowohl in Mathe als auch in Japanisch ein besseres Verständnis entwickelt haben, als es bei ersten Alternative je möglich wäre. Warum? Weil das Gras nicht schneller wächst, wenn man daran zieht.

Nun zurück zum konkreten Fall: Ich entschied mich (entgegen meiner gerade angeführten Erfahrung) dazu, doch nur viel oberflächlich zu lernen, weil mir, wie gesagt, schlicht die Zeit fehlte, um ein tiefes Verständnis dafür zu entwickeln. Dies führte dazu, dass ich zwar zunächst viel aufnahm, aber sehr schnell an eine gewisse Grenze stieß, die ich eben nicht mehr mit Quantität, sondern nur noch mit Qualität überwinden würde. Wie gesagt: normalerweise würde ich so nicht vorgehen, aber damals war das Wann wichtiger als das Wie. Mir war auch klar, dass es mich so auf lange Sicht mehr Zeit kosten würde, als wenn ich es gleich "richtig" gemacht hätte.

Die IDE kann nichts dafür, dass ich mich aus Zeitgründen gezwungen sah, diesen (auf kurze Sicht besseren, aber auf lange Sicht schlechteren) Weg zu gehen. Was ich aber (in Bezug auf das Thema hier) dazu sagen will: ich bin beide Wege gegangen, und ich habe für mich festgestellt, dass mich der lange und mühsame Weg weiter bringt als der kurze und einfache. Warum ich mich für den einen oder anderen Weg entscheide, spielt dabei keine Rolle. Was zählt, ist die Erfahrung beim Lernen, und die muss jeder selbst machen, denn wie du ja schon richtig bemerkt hast: Es kommt auf die Person an.

Ark


----------



## darekkay (1. Okt 2011)

Ok, ich geb's auf - ich kann deinen Vergleichen keinen Inhalt entnehmen, der zu dem Thema "IDE oder keine IDE" passt. Das Lernen an sich hat mit diesem Thema rein gar nichts zu tun. Für die ersten Kapitel, die du dir durchliest, brauchst du noch nicht mal einen Computer. Möchtest du dein gelerntes Wissen anwenden, dann kannst du entweder deine Zeit mit Dingen verschwenden, die dir später sowieso die IDE abnimmt, oder du lässt sie dir gleich abnehmen - und zwar ohne jegliche Auswirkung auf das Aneignen von Wissen, was immernoch unabhängig von dem Programm stattfindet. Und du kannst nicht im Ernst behaupten, du lernst mehr Sinnvolles, Berufsrelevantes, wenn du einen Texteditor nimmst.

Oder es mit deinem Beispiel auszudrücken: wenn du gleichzeitig Java und Eclipse lernst, wirst du "am Ende mehr Wissen über beides haben, als es bei ersten Alternative je möglich wäre. Warum? Weil das Gras nicht schneller wächst, wenn man daran zieht." Selfowned?


----------



## frapo (1. Okt 2011)

@darekkay
Vielleicht solltest Du so langsam einfach mal ruhigere Töne anschlagen. Gegenüber Ark jetzt 'komisch' zu werden, muss einfach nicht sein.

Du hast Deine völlig legitime eigene Meinung und von dieser möchtest Du auch nicht abrücken - musst Du ja auch nicht. Leute die hier für Anfänger(und auch nur zum Anfang!) die Konsole empfehlen, haben ihre ebenso berechtigten Gründe, wie Du mit Deiner IDE-Empfehlung - akzeptiere doch bitte einfach das es andere Meinungen und Erfahrungen gibt. Es geht hier schließlich nicht um Religion und das Bekehren.



darekkay hat gesagt.:


> Ok, ich geb's auf . . .


Da zitiere ich Dich übrigens sehr gerne. 
Es macht einfach keinen Sinn mit Leuten zu reden, die nicht imstande sind nachzuvollziehen, das nicht jeder Mensch dieselben Erfahrungen gemacht hat, wie man selber.

Ich habe früh gemerkt das es hier nicht um eine Diskussion auf Augenhöhe gehen soll, drum habe ich mich aus der Diskussion auch früh verabschiedet .

Die besten Grüße
frapo


----------



## Spacerat (1. Okt 2011)

vanny hat gesagt.:


> Den versteh ich jetzt nich!?


Eigentlich recht simpel; Man kann etwas auf zwei Arten lernen. Autodidaktisch oder in einem Kurs. Während man als Autodidakt sich selbst sein Lerntempo bestimmt und vllt. auch gleich nach dem obligatorischen "Hello World" von der Konsole-Notepad-Konstellation zu einer IDE wechseln kann, ist man in einem Kurs an das Tempo des "Vorbeters" gebunden.


----------



## darekkay (1. Okt 2011)

frapo hat gesagt.:


> @darekkay
> Vielleicht solltest Du so langsam einfach mal ruhigere Töne anschlagen. Gegenüber Ark jetzt 'komisch' zu werden, muss einfach nicht sein.



Wo wurde ich denn bitte "komisch"?

Ich akzeptiere logischerweise eine andere Meinung. Ich hab doch selbst ein Argument erwähnt, der für einen Texteditor spricht (weniger komplex/kompliziert, als eine IDE). In dem langen Beitrag von Arg konnte ich aber keinen passenden Inhalt entnehmen, da er über das Lernen spricht, was doch mit der Wahl seiner Programmierumgebung nun mal nichts zu tun hat...


----------

