Java - Wie am besten lernen, einen Code aus dem Stand zu schreiben?

    • Java - Wie am besten lernen, einen Code aus dem Stand zu schreiben?

      Hallo Leute,

      tut mir Leid falls es dieses Thema schonmal gab etc. Hab jetzt auf Anhieb nichts wirkliches gefunden.

      Und zwar habe ich ein Problem.

      Ich belege jetzt seit Anfang der 11 Informatik bis zur 13 (aber nicht schriftlich).

      Als Programm nutzen wir BluJ und wir schreiben in der Sprache Java.

      Vorher hatte ich noch überhaupt nie Informatik und man wurde uns gesagt, dass die Lehrer den Unterricht so gestalten, dass auch Neulinge problemlos mit der Materie klar kommen (es gibt viele im Kurs, die vorher schon Informatik seit der 9 haben, ich jedoch habe damals Latein gewählt)

      Nun, der Lehrer sagt uns einfach nur, wir sollen Kapitel xy auf gailer-net durchgehen und lernen. Dazu gibt es immer Programmieraufgaben.

      So, aber jetzt kommt mein eigentliches Problem:

      Wenn eine Programmieraufgabe Hausaufgabe war und nun in der Klasse diese für die anderen vormacht, fühlt man sich selber dabei echt schlecht, denn da gibts wirklich Leute, die einfach so, ohne in einen Beispiel-Quelltext zu gucken (kopieren/einfügen, was auch immer) einfach so aus dem Stand den Code runter rattern können. Also schreiben die da am Lehrer PC für uns mal eben in 5 Minuten den Code komplett ohne Fehler hin! Ich selber nutz ja immer die Beispiele und veränder sie dementsprechend, und da eine gute Freundin von mir (Informatik Studentin) meinte, sie würde das auch so machen (zum größten Teil) habe ich es auch nicht unbedingt für wichtig gehalten, dass man sowas aus dem Stand können muss.

      Jetzt hatten wir Mittwoch einen Test und da war tatsächlich - nicht wie angekündigt - eine Programmieraufgabe angegeben. Ich hab mir aus dem Quelltext (mit Lücken, die man ausfüllen musste) aus der Aufgabe davor mir irgendwie einen Rheim gemacht, aber so kann das ja nicht weiter gehen. Ich hab bis jetzt ca. 6 Wochen Schule gehabt und der Lehrer meint wohl anscheinend, wir alle könnten das jetzt so wie ein paar Ausnahmen.

      So und jetzt eine Frage an die Profis:

      Wie habt ihr das gelernt? Könnt ihr mir Tipps geben? Denn ehrlich gesagt weiß ich noch nicht so ganz wo ich da anfangen soll...

      Danke im vorraus. *angst*
    • Das ist meiner Meinung nach das beste (deutsche) Openbook:
      javabuch.de/

      EDIT:
      Wegen "wie habt ihr das gelernt?":
      Meiner Meinung nach ist es viel leichter wenn man vorher schon eine nicht objektiorentierte Programmiersprache gelernt hat (bei Java ist C halt am nächsten ;)) und auch die OOP-Theorie lernt. Einfach so mit Java anfangen ist meiner Meinung nach nicht gut. Aber naja, davon hast du ja nicht viel :D

      Edit2:
      Hab den Link korrigiert. Hab das Galileo-Openbook mit dem C# Buch verwechselt. Das jetzt haben wir im Unterricht verwendet
      James
      [Blockierte Grafik: http://dl.dropbox.com/u/24753690/stuff/forenlinks/rocketsign.png]
      Team Rocket - so schnell wie das Licht,
      gebt lieber auf und bekämpft uns nicht!

      join #teamrocket @iz-smart.net
    • Ich habe Java-Programmierung hauptsächlich durch das Studium des Handbuchs der Java-Programmierung gelernt. Dazu kamen ein paar kleinere Aufgaben von unserer Ausbildungsleiterin oder alte Aufgaben anderer Azubis. Auch die Insel kann helfen.
      Prinzipiell gilt jedoch: Programmieren lernt man durch Programmieren.
      Such dir kleinere Aufgaben (zu Beginn ganz einfache Dinge, z. B. die Ausgabe eines aus Sternchen bestehenden Dreiecks auf der Kommandozeile), löse diese und steigere dich langsam (z. B. ein Dreieck von x Zeilen, wobei x durch den Benutzer eingegeben wird, oder eine vom Benutzer anzugebende Anzahl an Dreiecken).
      Ich bin sicher, dass es irgendwo im Netz entsprechende Aufgaben gibt. Google mal ein wenig, z. B. nach "Java Aufgaben".

      EDIT: Ich würde Stan begrenzt zustimmen. Ich persönlich hatte nur mangelhafte Vorkenntnisse in Delphi, als ich mit Java angefangen habe. C ist zwar recht...archaisch, wird aber immer noch viel verwendet und besitzt auch eine gewisse Eleganz. Außerdem gibt es viel Lehrmaterial und die starke Bindung an C an die Hardware ist ebenfalls interessant und lehrreich. Und von C kann man recht gut auf C++ umsteigen, wobei man auch direkt Objektorientierung erlernen kann. Denke ich.
      Empfehlen würde ich da vielleicht auch dir das Buch Der C++-Programmierer. Es geht nicht nur auf die Grundlagen und die Programmierung in C/C++ ein, sondern bespricht auch einige Dinge aus dem gesamten Ökosystem rund um C.

      Naja, in der Schule wird dir das vermutlich auf die Schnelle eher weniger bringen.
    • Wegen Aufgaben:
      Wenn du willst kann ich dir Aufgaben schicken, die wir in der Schule durchgenommen haben. Schreib mir bei Interesse ne PN. Nachteil dabei ist halt, dass es Beispiele sind, die für Leute bemessen sind, die schon 3 Jahre C kenntnisse haben (Und auch die OOP-Theorie)

      Edit:
      Noch wegen Aus dem Stand heraus könnnen:
      Kommt drauf an was.
      Zum Beispiel eine for-Schleife kann man nach gewisser Zeit einfach. Da braucht man nicht lange nachdenken.

      Was man nicht können muss sind Klassennamen und Methodennamen.
      Dafür gibts Verzeichnisse bzw wenn vorhanden Inteli-Sense
      James
      [Blockierte Grafik: http://dl.dropbox.com/u/24753690/stuff/forenlinks/rocketsign.png]
      Team Rocket - so schnell wie das Licht,
      gebt lieber auf und bekämpft uns nicht!

      join #teamrocket @iz-smart.net
    • RE: Java - Wie am besten lernen, einen Code aus dem Stand zu schreiben?

      Java von Kopf bis Fuß halte ich für sehr empfehlenswert, damit lerne ich auch. Ist für Einsteiger geschrieben, sehr lustig und es bleibt auch wirklich was hängen. Anschaffungspreis ist nicht gerade gering, aber ich finde, es lohnt sich.

      Original von Yuu
      da gibts wirklich Leute, die einfach so, ohne in einen Beispiel-Quelltext zu gucken (kopieren/einfügen, was auch immer) einfach so aus dem Stand den Code runter rattern können. Also schreiben die da am Lehrer PC für uns mal eben in 5 Minuten den Code komplett ohne Fehler hin! Ich selber nutz ja immer die Beispiele und veränder sie dementsprechend, und da eine gute Freundin von mir (Informatik Studentin) meinte, sie würde das auch so machen (zum größten Teil) habe ich es auch nicht unbedingt für wichtig gehalten, dass man sowas aus dem Stand können muss.

      Klingt vielleicht arrogant von mir, aber eigentlich dachte ich, das wäre der Normalfall, dass man das (zumindest nach ein paar Tagen) drauf hat, also wie ein typisches if-else, der Kopf der main-Methode oder eine Variablendeklaration aussieht...

      Original von Stan
      Was man nicht können muss sind Klassennamen und Methodennamen.
      Dafür gibts Verzeichnisse bzw wenn vorhanden Inteli-Sense

      Kann man auch einfach Codevervollständigung nennen ;)
    • Ohne Beleidigend seien zu wollen, aber Informatikstudenten würde ich wirklich nicht als Maß aller Dinge beim Programmieren sehen. Die meisten lernen es eher schlecht als recht gegen Ende des Studiums. Und Syntax sollte man schnell draufhaben. Ich sehe keinen Sinn Beispiele als Grundlage zu nehmen um die zu Verändern. In ner Referenz nachschauen muss man so oder so dauernd. Hängen bleibt nur was man viel im Moment benutzt.
    • Ich stimme han zu - du lernst nichts, wenn du nur von einem Programm zum anderen kopierst.
      Gerade die Grundlagen solltest du immer und immer wieder von Hand selber schreiben um ein Gefühl zu bekommen, was wo hinkommt (und wieso).
      Als mehrmaliger Java-Korrektor/Tutor an meiner Uni hier kann ich aus Erfahrung sagen, dass genug Informatik-Studenten Probleme mit dem Programmieren haben - und teilweise in der Prüfung dann noch mit "Spickzettel" sitzen, wo dann "javac programmname.java" und "java programmname" drauf steht... das ist dann sehr traurig.

      Du solltest dich fragen, was dir Probleme bereitet. Die Logik bei der Entwicklung der Lösung? Die Syntax oder die Grammatik der Programmiersprache? Die Umsetzung der Idee?
    • Genau das. Du merkst es dir einfach besser, wenn du es immer selber schreibst, auch wenn du am Anfang immer rüberspicken musst, und das ist ja nicht nur beim Programmieren so. Das kommt schon mit der Zeit. Natürlich musst du am Anfang vielleicht mehr nachschlagen und kennst nicht so viele Methoden, aber das ist nicht schlimm, solange es nur daran hängt. Also, keine Sorge ;)
    • Erstmal danke für die vielen Tipps und Ratschläge! Werde erstmal die Webseiten ausprobieren, die gepostet worden sind. Und diesmal werde ich auch selber versuchen, Codes nieder zu schreiben, also nicht mehr stumpf kopieren ^^ Sobald noch Probleme auftauchen, melde ich mich nochmal. Also, danke,danke ^^
    • Prinzipielles erlenen des programmiersprache:
      schau dir quellcode von simplen programmen an.
      Hello world, calculator, etc.
      Und dinge die du nicht weißt, schaust du im nachschlagewerk deiner wahl nach. Im standart-fall ist das die spezifikation des herrausgebers. in deinem falle sun microsystems (oder neuerdings oracle).
      "Fiat iustitia et pereat mundus"