Neue Programmiersprachen lernen im Alter

Genau das ist es. Ich habe da halt nicht mehr das Gefühl, dass ich dem Computer sage, was er tun soll, sondern er eher mit mir Achterbahn fährt.
Nun, das ist irgendwie Zweck der Geschichte.
Dass wir nicht mehr in AMS schreiben liegt daran, dass wir etwas direkte Kontrolle für Komfort aufgegeben haben. Gut, ob etwas wie COBOL jetzt soo viel komfortabler ist... jedenfalls besser zu lesen. Sprachen wie C bieten dir heute noch eine sehr "maschinennahe" Programmiererfahrung, aber in vielen Fällen fragt man sich: wozu eigentlich?
Es ist doch so, dass dir das imperative und strukturierte von Pascal deswegen so gefällt, weil du es mal so gelernt hast und nun eben so kennst. Nur gibt es nicht vielleicht bessere Möglichkeiten? Wenn wir das strukturierte Pascal auf Assembler abbilden können, dann können wir ja auch andere Dinge darauf abbilden, eventuell "Dinge", in denen es uns leichter fällt komplexe Zusammenhänge der Realwelt darzustellen. Das ist im Prinzip einer der Beweggründe für "alternative" Konzepte wie die Objektorientierung.
Kurzes Beispiel: schreibe ein Programm das... sagen wir mal eine Sammlung voller verschiedener Personen beinhaltet. Das Register einer Schule: Schüler, Lehrer, Hausmeister, ... etc. Wie würdest du das in Pascal lösen? In einer objektorientierten Sprache ist das denkbar einfach, da ich das Realweltbeispiel direkt in Code modellieren kann: alle Personen sind Menschen, also fange ich mit einer Menschen-Klasse an und bilde Spezialisierungen für Schüler/Lehrer/... und stopfe alle in eine generische Collection. Fertig, und das alles ohne mir erstmal überlegen zu müssen, wie ich die reale Welt in meiner so gar nicht realen Programmiersprache abbilde, die nur einmal "von oben nach unten" geht.

Es ist eine andere Art des "Denkens", des Herangehens an ein Problem und dies erfordert durchaus etwas Übung und kann auch durchaus etwas Zeit brauchen, bis du in diese "Denke" hineinkommst (da du eine andere gewöhnt bist), aber das ist normal, für jedes Alter.
Neben der Objektorientierung gibt es übrigens noch viele weitere andere "Denkkonzepte"/Modellierungskonzepte, alle mit ihren ganz eigenen Vor- und Nachteilen. Und auch wenn OOP aktuell wohl so der Platzhirsch im Wald der Programmiersprachen ist wird das nicht immer so bleiben. Es gibt durchaus Kritik an dem Modell und viele Advokaten anderer Modelle. Da wir heutzutage an einem Punkt sind, an dem maschinengenerierter (ASM) Code deutlich besser ist (schneller, besser optimiert), als handgeschriebener Code auf diesem Level, sind uns bezüglich unserer Modellierungsphantasien auch nur wenig Grenzen gesetzt.
 
Der Freund, von dem ich geschrieben habe, meinte, dass man durch Vererbung jede Menge Code "recyclen" kann und der Code dadurch wartbarer wird. Das sehe ich auch als einen Vorteil an und es liegt mir wirklich fern, die Objektorientierung oder irgendeine Programmiersprache schlecht zu reden. Es ist in der Tat so, dass ich mit Pascal und BASIC halt "aufgewachsen" bin und mir diese "Denke" dadurch gefällt.

Allerdings stellt sich bei mir die Frage: Wie kann ich am besten "umlernen"? Insbesondere würde ich mich über Erfahrungsberichte von Leuten freuen, die vor der gleichen Problematik standen. Ich hatte mal ein Buch "Java lernen mit Eclipse" und da habe ich im Wesentlichen das "Hello World" Tutorial durchgeklickt aber dann gedacht: "Okay es läuft aber wie nun weiter?" Dann habe ich etwas mit BlueJ experimentiert und mir auch einige Codesnippets aus dem Internet besorgt. Ziel war die Verbindung zu einer Postgresdatenbank aufzubauen aber das hat dann irgendwie auch nicht so hingehauen. Ich erinnere mich noch daran, dass ich ständig nach dem CLASSPATH (bzw. der Variable) gesucht habe und nicht wusste, wie ich die setzen sollte. Ist aber auch schon einige Wochen her.

Was mich auch interessieren würde: LibreOffice Makros in StarBASIC. Dort gibt es das UNO-Modell und das muss mal wohl erstmal richtig verstanden habe. Jedenfalls meine dass Herr Krumbein auf der CeBIT zu mir, der über Makros in OpenOffice.org etc. einige Bücher geschrieben hat. Über die Sprache bestehende Objekte ansprechen. Da tippe ich hin und wieder Listings aus Büchern ab. Ganz wie zu Zeiten von "Happy Computer" und "64er".
 
Hi,
ich bin momentan etwas über deinen Kenntnisstand am grübeln. Auf der einen Seite schreibst du, dass du an einer Linuxdistribution mitarbeitest, an der Mitarbeit an Open Source ERP Projekten interessiert bist und etliche Jahre Zertifizierungen hast, aber dann nicht inder Lage bist, dieses Problem zu lösen? :confused:
Ich erinnere mich noch daran, dass ich ständig nach dem CLASSPATH (bzw. der Variable) gesucht habe und nicht wusste, wie ich die setzen sollte
 
Variablen kann ich auf der Kommandozeile setzen und dann ggf mit "echo $VARIABLE" oder "env" anzeigen lassen. Ich komme halt mit JRE, JDK etc. durcheinander. Ich habe da auf der Slackwaredistribution gearbeitet, die ja ein rudimentäres Paketmanagement hat. War während des Urlaubs und ist auch schon etwas her. Ich habe mir da das .tar.gz-Archiv von Oracle geholt und dann in /opt entpackt.
 
Als ich den Threadtitel las, dachte ich mir, ich könnte da einen 70-jährigen ermuntern. Ich bin 53 und habe gerade Swift gelernt. Gut ich habe schon Apps in Objective-C geschrieben, trotzdem ist es eine ganz neue Sprache.
Ich würde dir raten, erstmal Objective-C zu lernen, da lernt man viel besser die objekt-orientierte Programmierung zu verstehen. Ging bei mir viel besser als vorher in Java und C++.
Objective-C ist schon etwas für Masochisten, wenn du dann aber Swift lernst, wirst du die Einfachheit und den Komfort von Swift erst richtig schätzen lernen.
 
Gondomir: Danke für das Feedback. Hast Du einen Informatikhintergrund während deines Studiums/Ausbildung etc. gehabt oder hast Du Dir das alles selbst beigebracht?
 
Als ich studiert habe, gab es noch keinen PC. Ich habe mir alles selbst beigebracht, bin halt sehr neugierig.
 
Hallo,

bei codeacademy wird momentan ein Java-Kurs entwickelt: https://www.codecademy.com/de/courses/learn-java
Ansonsten gibt es einige mehr oder minder gut Java-Tutorials. Ob Java nun als Lehrsprache immer noch angemessen ist, ist eine andere Diskussion. Es gibt z.B. auch viele Befürworter für Python.

Grüße
 
Ich schreibe mal, was ich aktuell probiere: Auf openSUSE JDK 1.8 Update 60 in /opt und netbeans mit .sh Installer installiert. Startet einwandfrei. Ziel ist es auf folgendem Tutorial eine Verbindung mit Postgres aufzubauen und die Version anzuzeigen.

http://zetcode.com/db/postgresqljavatutorial/

- Netbeans gestartet
- New Project
- Namen vergeben, Ordner wird angelegt, okay
- JDBC-Treiber installiert über Libraries im Projects Reiter - Add JAR/Folder
- Den Sourcecode aus dem Tutorial in das Editorfenster hineinkopiert.

Beim Klick auf "Run" bekomme ich folgende Meldung:
Code:
Fehler: Hauptklasse zetcodetutorial.ZetcodeTutorial konnte nicht gefunden oder geladen werden

Ich weiss, dass das für Javaleute Peanuts ist aber ich bin halt schwarzer Bildschirm, vi oder emacs gewöhnt.
 
Darf ich Fragen wieso du mit Datenbanken rumspielst, wenn du die Sprache noch gar nicht kannst? Das ist nur äußerst minder zielführend.

Der Freund, von dem ich geschrieben habe, meinte, dass man durch Vererbung jede Menge Code "recyclen" kann und der Code dadurch wartbarer wird.
Ja das ist ja eigentlich jetzt eher nicht so der Hauptgrund. Man hat OOP nicht entwickelt um Code zu recyceln, das nun als Grund anzuführen halte ich für falsch. Hier geht es um verschiedene Art und Weißen eine Aufgabenstellung in Code zu modellieren.
 
Darf ich Fragen wieso du mit Datenbanken rumspielst, wenn du die Sprache noch gar nicht kannst? Das ist nur äußerst minder zielführend.
Ja, es ist so, dass ich bei einem Projekt namens "SQL Ledger" mitarbeite, welches auf dem Postgres-Datenbankserver basiert. Oracle und DB2 sind aber auch möglich. In Perl bekomme ich das mit dem DBI-Modul hin und ich möchte halt möglichst schnell Resultate.
 
[]...Ziel ist es auf folgendem Tutorial eine Verbindung mit Postgres aufzubauen und die Version anzuzeigen. [...]

http://zetcode.com/db/postgresqljavatutorial/
[...]
- Den Sourcecode aus dem Tutorial in das Editorfenster hineinkopiert.
Beim Klick auf "Run" bekomme ich folgende Meldung:
Code:
Fehler: Hauptklasse zetcodetutorial.ZetcodeTutorial konnte nicht gefunden oder geladen werden
[...]
Du steigst viel zu tief ein, das ist natürlich verlockend bei so einem Tutorial. Vermutlich stimmt einfach die Struktur der Dateien in deinem Projekt nicht mit der angegebenen Paketstruktur in deiner Javaklasse überein.
Auch wenn es langweilig zu sein scheint, solltest du erst mal ganz von vorne anfangen. Ich empfehle http://openbook.rheinwerk-verlag.de/javainsel/
Einfach mal Kapitel 1 durcharbeiten. Vor allem 1.5 und dann vielleicht auch 1.6.
Dann verstehst du auch, wie Netbeans (oder Eclipse, ich halte Netbeans für einfacher) möchte, dass du deine Dateien organisierst und kannst das dann auch für dein Tutorial verwenden. Ich würde aber wirklich erst mal mit Texteditor und Kommandozeilenwerkzeugen anfangen, und erst, wenn du weisst, was du tust, auf eine IDE umsteigen.
Viel Glück!
 
Hallo ruerueka,

danke für das Feedback und die guten Wünsche. Mit dem Autor des Buches "Java ist auch eine Insel" war ich sogar zufällig in der gleichen Studenteninitiative (AIESEC). Er hat schon Ende der 90er sich schon sehr mit Java beschäftigt und das Konzept ist für ihn auch wirklich aufgegangen. Ich habe letztens auch mal mit ihm telefoniert und er meinte, dass Perl halt einen sehr beschränkten Anwendungsschwerpunkt hat. Das sehe ich auch ein und stimme dem zu. Das Netbeans hat schon eine ganze Menge auf dem Hammer (SVN-, Mercurialintegration etc. und auch wie es Fehler findet ist beeindruckend) und ich denke auch, dass die Objektorientierung eine ziemlich mächtige Angelegenheit ist. Aber zwischen mir und Herrn Ullenboom liegen definitiv Lichtjahre.
 
Hi,
deine Probleme haben auch überhaupt gar nichts mit der Objektorientierung an sich zu tun, sondern rühren eher daher, dass du dich mit diversen IDEs nicht wirklich auseinandersetzen willst/kannst. Ich bin auch eher ein Konsolenverfechter, nur dürften vi/emacs bei größeren Projekten doch eher ungeeignet sein.
 
Wenn Du dir "nur" OOP ansehen/-eignen willst, wäre ja eventuell auch Smalltalk was für dich ;)

http://squeak.org - mehr OOP geht m.W. nicht.
 
Nochmal zu deiner Fehlrmeldung oben: ich habe das Tutorial beengenderen, ich bin mir absolut sicher, dass du die Sourcedateinicht so genannt hast, wie das eigentlich sein sollte oder dich in der Verzeichnisstruktur verheddert hast.
Du solltest zB denn Quelltext für die Klasse "Version" in eine Datei "Version.java" Speichern. Wenn du diese mit JavaScript kompilierst, wird eine Datei "Version.class" erzeugt. Diese kannst du mit "Java Version" dann ausführen. Wenn du jetzt die .java Datei umbenennst und das Class-Statement nicht auch änderst, erzeugt der Complier immernoch die Datei Version.class. Wenn du das nicht bemerkst, rufst du vermutlich die falsche Klasse auf. Wenn das nicht der Fehler ist, versuchst du, die Klasse vom falschen Verzeichnis aus aufzurufen... Das sind die absoluten Basics, die hoffentlich in jedem Java Einsteigerbuch erklärt werden, es ist eigentlich nicht anders als bei c...
Zum Tutorial selbst: wenn man das kapiert hat, kann man Javaprogramme schreiben, die Datenbanken ändern oder Werte auslesen. Mit Objektorientierung hat das aber nicht viel zu tun, die Beispiele sind alle prozedural runtergeschrieben, da sie ja nur die API zeigen sollen (das machen sie aber gut)... Da sollte die Lernkurve für einen Skriptprogrammierer nicht hoch sein, da du kommst so zu schnellen Ergebnissen, auch zu lauffähiger Software, aber nicht zum Lernziel, wirklich Objektorientierung zu lernen. Du lernst nur, die Sprache Java und einige Bibliotheken, die du brauchst, um komplexe Dinge zu erledigen. Mit viel Fleiß und der Hilfe entsprechender Tutorials kannst du dann sicher auch bald einen kleinen CRUD Client mit grafischer Oberfläche erstellen (ich mag das hier sehr: http://code.makery.ch/library/javafx-8-tutorial/part1/ ) und an die Postgres anbinden.

Squeak ist dagegen viel näher an der reinen Lehre "Objektorientierung" ich bin aber über etwas rumspielen nie rausgekommen, die Umgebung ist zu verschieden (für mich) von den Werkzeugen, die ich täglich nutze, und ich sehe nicht, wie ich das jemals produktiv einsetzen sollte..

Viel Spaß beim Stöbern und lernen!
 
  • Gefällt mir
Reaktionen: Mankind75
Sommerferien! Und ich habe tatsächlich einen neuen Anlauf mit Java begonnen. Das JDK-Update 101 und BlueJ heruntergeladen und mir ein Videotutorial auf YouTube von zwei Schülern angeschaut, die sich "theskylapse" nennen.

Das Tutorial hat mir sehr geholfen und mittlerweile kommt bei mir Licht ins Dunkele. Es war in der Tat so, dass ich das mit der Datenbankanbindung noch nicht hätte machen sollen und habe erstmal ein paar Aufgaben gemacht, dass ich "Hello World" in BlueJ geschrieben habe und dann noch ein paar Zahlen addiert habe.

BlueJ gefällt mir jedenfalls für den Einstieg gut. Auch die Tutorials von "theskylapse" kann ich sehr empfehlen.

Mein vorläufiges Fazit: You are never too old to learn. Jetzt kann ich auch mit so Sachen wie "void" etwas anfangen.

Ein paar Fragen noch:

* So wie ich das verstanden habe, programmiere ich in der "Standard Edition" aber im Unternehmensumfeld gibt es ja die "Enterprise Edition". Wo liegen da die Unterschiede? Muss ich dafür zahlen wenn ich in der "Enterprise Edition" programmieren möchte?

* Gibt es einen wesentlichen Unterschied zwischen Funktionen und Methoden?
 
Zurück
Oben Unten