Neue Programmiersprachen lernen im Alter

Mankind75

Aktives Mitglied
Thread Starter
Dabei seit
28.06.2005
Beiträge
2.765
Reaktionspunkte
827
Hallo zusammen,

wie die Zahl in meinem Nickname angibt, werde ich dieses Jahr 40.

Es ist folgendes: Ich habe in meiner Jugend halt gerne auf dem Commodore 64 in BASIC programmiert und in der Schule freiwillig in der Informatik AG teilgenommen. In der AG wurde uns Turbo Pascal 3.0 auf einem IBM-kompatiblen Siemens-PC mit Herculesgrafik beigebracht. Diese Zeit mit Turbo Pascal hat mich ziemlich geprägt, insofern, dass ich ein Programm strukturiert konzipiere und es oben anfängt, durchläuft und dann irgendwann mal endet. Ich nutze Linux und wende diese Erfahrungen auch gerne auf der bash-Shell an.

Allerdings habe ich große Probleme damit, mich in die Welt der Objektorientierung hinein zu denken und habe letztens mit einem Freund gesprochen. Er meinte, dass es im Alter schwer wird neue Konzepte der Programmierung zu ergreifen und er auch seine Probleme hatte.

An Skriptsprachen arbeite ich sonst auch noch gerne mit Perl und mag es sehr, meine Sachen in einem Editor auf der Kommandozeile zu programmieren. Python habe ich mir mal angeschaut aber so Sachen mit dem Einrücken fand ich nicht so besonders obwohl das ja gerne als Stärke von Python genannt wird. Java auch. JDK heruntergeladen, in Eclipse das "Hello World" Tutorial durchgeklickt und dann gedacht: Tja und jetzt? Wie weiter?

Wie kann ich mich am besten in die Objektorientierung einarbeiten? Wenn ich mir einen Mac kaufe, wäre Swift vielleicht etwas für mich? Stimmt, das dass man im Alter eher Schwierigkeiten hat "umzudenken"?
 
Hi,
ich denke dass man alles lernen kann, egal wie alt, aber dass es schwieriger wird, verstehst sich von selbst. Bin zwar weder Psycho- noch Biologe, aber ich denke mit irgendwelche Studien aus irgendeinem dieser Bereiche könnte man das erklären. ;)

Ich habe mich immer für C++ begeistert, habe Java gelernt und habe, wie du, als Kind schon damals mit Basic auf dem Amiga programmiert. Ich kann dir jetzt ein Buch für die Objektorientierung an sich nicht empfehlen behaupte aber, wenn du dich nicht entmutigen lässt, durchaus in der Lage sein wirst das ein oder andere zu programmieren. Wenn du einen Mac hast, würde ich mir tatsächlich mal Swift angucken, das soll der ja der "neue heisse Scheiss" sein. Aber letzten Endes ist die Programmiersprache egal: Du solltest das Konzept der Objektorientierung verstanden habe, und dabei Begriffe wie Klasse, Objekt, Vererbung und Polymorphie erklären können, dann ist das Umsetzen in irgendeiner Sprache das kleinere Problem.

Es gibt eine kostenlose Doku von Apple zu Swift:
https://developer.apple.com/library...Swift/Conceptual/BuildingCocoaApps/index.html

Ich weiss allerdings nicht, wie einsteigerfreundlich die ist. Aber ich denke dass so ziemlich jedes Einsteigerbuch, auch wenn es sprachspezifisch ist, auf die Grundlagen der Objektorientierug eingehen wird.
 
Zuletzt bearbeitet:
zu swift kann ich nichts sagen, zum alter schon :):

ich habe mein Studium auf dem zweiten Bildungsweg mit 40 abgeschlossen, also kann man durchaus in etwas fortgeschrittenem Alter noch was neues lernen.
Zum lernen von objektorientierten Sprachen finde ich die Reihe "Von Kopf bis Fuss" ganz gut. Unterhaltsam und kurzweilig geschrieben, mit ordentlichem Lerneffekt.
Das hier kenne ich jetzt nicht selbst, klingt aber ganz nett :), aber auch das Java und C# Buch der Reihe bieten einiges
 
Habe gesehen dass du gerne zeugs in PERL programmierst... dann solltest du ja zu 90% keine schwierigkeiten mit PHP haben...

Auf der Arbeit programmieren wir Objektorientiert mit PHP, wäre vielleicht für die auch einfacher in die Thematik reinzuwachsen. (PHP kann ja sowohl skript wie auch oo programmiert werden).
Vor 2 Jahren habe ich mich auch mal an "Objective-C" probiert und auch einiges geschafft, aber das war wie ich finde sehr kompliziert. Obwohl ich Cobol, Java und OOP-PHP kenne...
 
Wenn du es einfach mal testest wie weit du kommst und wie es dir gefällt? Ich bin der Meinung, dass es immer vom Menschen selber abhängt und vom Ehrgeiz etwas neues zu erlernen.
Ich würde nicht Pauschal sagen, dass jemand mit 40 schlechter versteht als jemand mit 20.
 
Wenn du es einfach mal testest wie weit du kommst und wie es dir gefällt? Ich bin der Meinung, dass es immer vom Menschen selber abhängt und vom Ehrgeiz etwas neues zu erlernen.
Ich würde nicht Pauschal sagen, dass jemand mit 40 schlechter versteht als jemand mit 20.
Ich denke schon. Wobei man natürlich auch immer einräumen muss, dass der "normale" Weg ja eigentlich der ist, dass man bis ca. 30 bewusst lernt (Schule, Studium, Ausbildung) und danach mehr oder weniger Routine einkehrt. D.h. man ist das Lernen an sich gar nicht mehr gewohnt. So will ich das aber nicht, daher versuche ich auch ständig neue Dinge zu erlernen und alte Gewohnheiten zu überdenken, und ich hoffe dass mir das bis ins hohe Alter gelingt.

Aber selbst wenn es schwerer wird mit dem Alter, ist es nicht unmöglich: Nur man muss einfach anfangen.
 
Der entscheidende Punkt ist weniger das Alter als die Einstellung ;)
Es ist hilfreich, wenn man in der Materie des Lernens generell drin bleibt - meine Frau begann erst mit 55 erst das Klavierspielen ohne Vorkenntnisse, neben dem Lernprozess glt es auch die motorischen Fähigkeiten zu schulen > es geht, wenn man will. Mein Vater hat sich mit 80 Jahren seinen ersten Computer gekauft und bei "null" angefangen - heute bringt ihn selbst ein "gecrashtes Windows" nicht mehr aus der Ruhe und weil er selbst erstaunt war wie gut es klappte kamm jetzt noch ein smartphone dazu ;).

Das Lernen im Alter wird nicht schwieriger - aber es verändert sich. Kinder lernen überwiegend spielerisch durch ausprobieren, "reifere" Menschen finden den Spieltrieb meist hinderlich und brauchen Strukturen, weswegen sie (z.B. auch beim Sprachen lernen) eine klare Bildunglinie bevorzugen. Also, entscheide was für ein Typ du bist (mein Vater spielt auch mit Mitte 80 noch gern…) und leg los. Spielerisch > dann swift "einfach" ausprobieren (man muss ja nicht gleich da System manipulieren). Strukturell> dann finde ich die verlinkte O'Reilly Reihe keine schlechte Wahl, auch weil sie beim Lesen Spaß macht und nicht so trocken daherkommt. In allen Fällen gilt: Nur Übung macht den Meister, wenn das Üben Spaß macht geht es aber viel leichter!
 
Danke erstmal für die vielen schnellen Rückmeldungen. Es ist halt so, dass mich u.a. bei PHP die Frameworks sehr abschrecken. Bei Java ist das ja noch schlimmer aber ich kann mir durchaus vorstellen, bei Apple dann zu sagen: Das ist es was Apple vorgibt also halte ich mich daran. Bei Perl 5 gibt es über 20000 Module und wenn ich davon etwas brauche hole ich das über CPAN rein und dann halt:
Code:
use module;

Turbo Pascal habe ich letztens wieder entdeckt und ich finde, dass es nach wie vor eine Sprache ist, wo man sehr gut strukturiert programmieren lernen kann. Programm in emacs eingetippt, fpc-Compiler angeworfen, gestartet - wunderbar. program in die erste Zeile, end. in die letzte Zeile, Code kann man durch procedures wieder verwenden etc.

Bei den neueren Sachen fehlt mir einfach der Bezug. Bei den Programmen denke ich dann noch ganz klassisch: Ein Programm fängt oben an, läuft dann durch und letztendlich beendet es sich. Der Freund, von dem ich erzählt habe, hat aber erzählt, dass man bei Objektorientierung viel mit Vererbung machen kann und damit dann Code sparen kann. Das finde ich auch nicht schlecht.

Ich glaube auch, dass man stetig die Tätigkeit des Programmierens machen muss. Beispielsweise habe ich einige Programme (Tunnels and Trolls Charaktergenerator) mal in Perl und mal in bash geschrieben. Das macht dann auch viel Spaß und man kommt in einen Prozess, dass man die Sprachen miteinander vergleicht.

Was ich noch dazu sagen muss: Wenn ich Informatik als Studiengang gehabt hätte, wäre ich wahrscheinlich gnadenlos untergegangen. Meine Stärken sind traditionell Fremdsprachen und ich gebe mittlerweile auch Nachhilfe. Da habe ich auch mal exotischere Sachen wie Japanisch beispielsweise ein Semester mal ausprobiert. Aber einen traditionellen Informatikhintergrund (Fachinformatiker, Studium etc.) habe ich nicht. Da finde ich auch bei Perl die Sache, dass Larry Wall Linguist ist interessant.
 
man lernt sicher langsamer, aber nicht schlechter
Würde ich so nicht behaupten. Kommt sicher auch immer auf die Lernbereitschaft und das Thema an. Ich persönlich lerne jetzt mit 28 schneller als damals in der Schule mit 15.
Liegt sicher auch immer am Thema. Wenn es einen interessiert ist es sicherlich um Welten einfacher zu erlernen.
 
Ich persönlich lerne jetzt mit 28 schneller als damals in der Schule mit 15.
Liegt sicher auch immer am Thema. Wenn es einen interessiert ist es sicherlich um Welten einfacher zu erlernen.
gleiche Interessenlage vorausgesetzt lernt man mit Anfang 20 sicher schneller als mit Anfang 40. 28 ist aus meiner Warte nicht wirklich alt :D
 
Hi,
mein Problem beim Lernen ist, dass ich den Sinn erkennen muss, warum ich etwas tue. Wenn du schreibst, dass du sehr gut prozedual programmieren kannst, oder deine Bash, Perl oder wasauchimmer-Skripte das tun was du willst, dann ist das ja schonmal weit weniger als "nichts". Du solltest dich nur fragen, warum dann überhaupt Objektorientierung lernen willst.

Abgesehen davon: Die Module, die du da ansprichst, musst in den anderen Sprache auch laden. Das machst du in Java oder C++ z.B. mit include bzw. import. Aber das machst du dann, wenn du es brauchst. Das Konzept der Objektorientierung lernst du auch mit Java, C++ oder Swift mit den einfachsten Editoren und so gut wie keinen Import oder Include Befehlen (ein oder zwei wirst du für die Textausgabe brauchen). Lass dich von den ganzen Bibliotheken nicht abschrecken und fang bei den Grundlagen an.

Ich meine ein Hello World in Java sieht so aus:
Code:
class HelloWorldApp {
   public static void main(String[] args) {
   System.out.println("Hello World!"); // Display the string.
   }
}
Das ist ja auch weit davon entfernt kompliziert zu sein.

EDIT 2.: Und natürlich lernt man Programmieren nur durchs Programmieren. I.d.R. schreibt man auch nicht sofort perfekten Code, sondern so, dass es irgendwie funktioniert, und macht es danach schnell/schön/wartbar.
 
Zuletzt bearbeitet:
Du solltest dich nur fragen, warum dann überhaupt Objektorientierung lernen willst.
Ich war mal bei einem Auswahlverfahren bei einem IT-Consultant, der ein Traineeprogramm anbietet, wo man dann UNIX (letztendlich haben wir auf einem Fedora-Server über SSH gearbeitet), SQL und dann Java oder .net lernen. Das Auswahlverfahren ging über fünf Tage. In den ersten drei Tagen wurde uns bash-Skripting näher gebracht und die letzten zwei Tage sollten wir dann "Galgenraten" auf der bash programmieren. Da konnte ich mich sehr gut reindenken und bekam dann auch ein Angebot. Es war auch jemand dabei, der Informatik studiert hatte und in C programmiert hat aber sich in bash und "One Tool - One Job" nicht reindenken konnte - kein Angebot.

Andererseits ging es mir mal so, dass ich bei IBM mal vorgesprochen habe und da wurde dann auch gleich gefragt, was z.B. ein "Interface" ist. Der Interviewer war jünger als ich und ich konnte die Frage nicht beantworten. Da hat es auch nicht sonderlich geholfen, dass ich die große Zeit des IBM 5150 und der IBM-Kompatiblen erwähnt habe und wie toll ich das alles fand und dass man Turbo Pascal noch von einer 360kb-5,25" Floppy gebootet hat. Kein Angebot.

Warum will ich das lernen? Ich möchte mich halt in moderne Konzepte hineindenken können.
 
Ich meine ein Hello World in Java sieht so aus:
Code:
class HelloWorldApp {
   public static void main(String[] args) {
   System.out.println("Hello World!"); // Display the string.
   }
}
Das ist ja auch weit davon entfernt kompliziert zu sein.
Doch! Das ist das Paradebeispiel dafür, wie man gerade nicht objektorientiert programmiert ...und das obwohl Java doch ein so tolles Exemplar einer objektorientierten Sprache ist:
- du baust eine Klasse, aber erstellst keine Instanz davon
- die Signatur der main-Methode ist leider so vorgegeben, aber da tauchen so viele Dinge auf, die man als Anfänger ignorieren muss, weil man die Konzepte erst später lernt (public, static, void)
- der direkte Aufruf des System-package (ohne es zu importieren) verstößt sogar gegen grundlegende OO-Prinzipien

Nun ja, ich bin eben kein Java-Fan mehr. Zum Glück muss man's nur noch lernen, wenn man Android-Apps programmieren will oder in großen Unternehmen als Entwickler arbeitet (denn dank der Verbreitung von Java gibt's für so ziemlich alles eine Java-API).

Meine Empfehlung wäre Ruby. Das ist ähnlich wie Python nur ohne die Einrückungsvorschriften. Und als Tutorial würde ich das hier empfehlen. Keine Angst - so "hard" ist der "hard way" nicht, das ist nur Marketing.
 
aber da tauchen so viele Dinge auf, die man als Anfänger ignorieren muss, weil man die Konzepte erst später lernt (public, static, void)
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.
Java bietet sicherlich interessante berufliche Perspektiven. Ein Open Source Projekt wo ich mir vorstellen könnte mitzuarbeiten wären: OpenBravo (bzw. OpenZ) oder ADempiere/iDempiere. Beides sind ERP-Lösungen, die auf Java aufsetzen.

In Perl gebe ich bei dem "Hello World" ein:

Code:
#!/usr/bin/perl
print "Hello World\n";
Auf Deutsch: Lieber Computer, gib mir bitte die Ausgabe "Hello World" auf dem Bildschirm aus. Klare Ansage, Computer - mach mal. Und dann macht Programmieren auch Spaß und man bekommt das Gefühl, dass man der Rechenmaschine auch wirklich Befehle gibt.
 
Hi,
Doch! Das ist das Paradebeispiel dafür, wie man gerade nicht objektorientiert programmiert ...und das obwohl Java doch ein so tolles Exemplar einer objektorientierten Sprache ist:
- du baust eine Klasse, aber erstellst keine Instanz davon
- die Signatur der main-Methode ist leider so vorgegeben, aber da tauchen so viele Dinge auf, die man als Anfänger ignorieren muss, weil man die Konzepte erst später lernt (public, static, void)
- der direkte Aufruf des System-package (ohne es zu importieren) verstößt sogar gegen grundlegende OO-Prinzipien
.
https://docs.oracle.com/javase/tutorial/getStarted/application/

das habe das aus diesem Tutorial kopiert und dort wird dann schon auf die von dir genannten Themen eingegangen (was ist static, die main Funktion, void etc.). Dass man in einem "Hello World" Beispiel nicht sämtliche objektorientierten Grundlagen lernt, dürfte ja wohl auch klar sein. Aber bitte nicht in Details verlieren, darum gehts ja hier nicht.

EDIT: Naja ein bisschen "Overhead" musst du in solchen Sprachen eben verkraften können. Ansonsten ist Ruby vielleicht wirklich die bessere Alternative, wobei ja auch Perl objektorientierte Konzepte unterstützt.
 
Zuletzt bearbeitet:
Ich habe leider gerade keine Zeit mir den ganzen Thread durchzulesen, wollte aber einfach nur mal kurz zu dem Titel meinen Senf dazu geben, vielleicht hilft es ja:

Solltest du dich für Ruby interessieren, kann ich dir http://tryruby.org wärmstens ans Herz legen. Das ist meiner Meinung nach, das einfachste "Starter Kit" um mal schnell einen Blick in die Ruby Welt zu bekommen. Ruby hat den großen Vorteil, dass du dich nicht wirklich um Speichermanagement und Co. kümmern musst. Außerdem ist es eine wunderschön leserliche Syntax und macht einfach Spaß.

Wenn dein Interesse dadurch geweckt wurde, kannst du danach mit "richtigen" Tutorials anfangen. Sollte es dich in die Webentwicklungs Richtung drängen, wäre ein Blick auf das Framework "Ruby on Rails" (http://guides.rubyonrails.org/getting_started.html) sehr sinnvoll.

Es gibt außerdem sehr viele Tutorials bei YouTube und eine inzwischen eher inaktive aber mit großem Archiv versehenene Screencast-Reihe: http://railscasts.com/
 
Wie kann ich mich am besten in die Objektorientierung einarbeiten?

Ausprobieren, Beispiele angucken und verstehen, noch mehr ausprobieren.

Wenn ich mir einen Mac kaufe, wäre Swift vielleicht etwas für mich? Stimmt, das dass man im Alter eher Schwierigkeiten hat "umzudenken"?

Ich interpretiere das jetzt so, dass Du keinen Mac hast. Eventuell kannst Du dich ja mit der dunklen Seite der Macht anfreunden:

https://www.visualstudio.com/de-de/products/visual-studio-community-vs.aspx

Ich finde C# als Programmiersprache mittlerweile ganz gelungen.
(Und wenn Du es blutig magst, kannst Du mit der IDE auch C++ entwickeln.)
 
Ich interpretiere das jetzt so, dass Du keinen Mac hast. Eventuell kannst Du dich ja mit der dunklen Seite der Macht anfreunden:

https://www.visualstudio.com/de-de/products/visual-studio-community-vs.aspx
Das mit der Community-Edition hatte ich gestern auch auf dem Schirm und denke auch, dass Microsoft sein Betriebssystem stetig verbessert hat aber ich würde mir eher einen Mac kaufen, da ich dann mein gelerntes bash-Wissen weiter nutzen kann. Beim Mac finde ich halt auch klasse, dass es ein echtes zertifiziertes UNIX ist. Ich habe auch eine Linux-LPIC-1-Zertifizierung und auch Zertifizierungen von Novell und SUSE. Ich bin auch regelmäßig auf Linuxconventions und arbeite selbst bei einer Distribution mit. Das alles aufgeben? Ist schon ein großer Schritt, was nicht heissen soll, dass Microsoft schlecht ist.
 
Zurück
Oben Unten