Die erste Frage ist, was hast du vor? Möchtest du einfach so programmieren lernen oder schwebt dir irgendein bestimmtes Projekt vor, dass du gerne umsetzen würdest?
Batch-Scripte und ähnliches sind natürlich relativ einfach, allerdings bist du damit auch sehr eingeschränkt.
Wenn das ganze nachher auf "richtige" Programme hinauslaufen soll, dann solltest du auf jeden Fall auf eine
objektorientierten Sprache zurückgreifen, denn das macht das Programmieren umfangreicherer Programme erheblich einfacher.
Allerdings ist die Objektorientierung für viele Einsteiger erst mal relativ kompliziert. Dabei ist es eigentlich gar nicht so schwer und wenn man es einmal begriffen hat, vereinfacht es vieles.
Ruby ist eine sehr einfache, komplett objektorientierte und dynamisch typisierte Sprache. Ich finde sie extrem gut, um den Einstieg in die Programmierung zu lernen, da man sich unter Anderem nicht so sehr um die Typisierung (Welchen Datentyp habe ich hier? String, irgendeine Zahl, einen eigenen Typ?) kümmern muss. Der klare Nachteil ist allerdings, dass Ruby nicht sehr verbreitet ist und es daher relativ wenig Literatur dazu gibt. Auch die Dokumentation ist teils lückenhaft.
Im Gegensatz zu Ruby, findet man zu
Java unzählige Tutorials, Literatur, Hilfestellungen und so weiter. Vom Programmieren her finde ich Java bei weitem nicht so toll. Java ist komplizierter und es gibt einige Sachen, die sehr unschön in der Sprache umgesetzt wurden und als Altlasten immer weiter mitgeschleppt werden...
Wie dem auch sei, es gibt ein erstklassiges Java-Buch für Einsteiger, das ich auf jeden Fall empfehlen kann:
Programmieren mit Java, Reinhard Schiedermeier, Pearson Studium
Natürlich gibt es auch im Internet einiges Einstiegsmaterial kostenlos zu finden. Ich persönlich finde es aber sehr angenehm in einem Buch zu lesen. Außerdem muss ich dazu sagen, dass ich tatsächlich noch kein Java-Tutorial gefunden habe, dass ansatzweise mit dem oben genanntem Buch mithalten kann. Man merkt beim Lesen, dass Schiedermeier nicht nur programmieren kann, sondern vor allem, dass er weiß wie man Programmierung beibringt!
Sowohl Ruby, als auch Java sind Plattform-unabhängig. Du kannst beide Sprachen unter Windows, Mac und Linux gleichermaßen verwenden.
Ansonsten bleibt mir noch folgendes zu sagen: Programmieren lernt man nicht, indem man
nur Bücher liest. Um eine Sprache zu lernen, muss man sie auch sprechen und um eine Programmier-Sprache zu lernen, muss man in dieser Sprache programmieren. Und das braucht Zeit und auch Geduld. Es wird nämlich definitiv nicht alles sofort funktionieren, was man programmiert... Das soll jetzt nicht abschrecken, sondern viel mehr zeigen, dass es normal ist, wenn man auf Probleme in den eigenen Programmen stößt. Mit der Zeit wird das aber immer besser