Meiner Meinung nach die (objekt-orientierte) Programmiersprache!!

Wer sich mit objektorientierter Programmierung beschäfigen will, wird an Java oder C++ nicht wirklich vorbei kommen können - und wollen?! Literatur, in der weiterführende objekt-orientierte Konzepte erklärt werden, stellen die Beispiele häufig in Java dar. Das liegt nicht zuletzt daran, dass Java alle denkbaren Oo-Konzepte unterstützt bzw. gar die Standards setzt - und andere Programmiersprachen "ziehen dann nach"...

Java SE (Standard Edition)

Hier findet man das Grundgerüst der Programmiersprache Java. Abgesehen von "der Sprache" selbst, stößt man man hier schnell auf folgende zwei wichtige Pakete: java.lang.* und java.util.*. Diese beiden Pakete enthalten die Klassen bspw. für die Zeichenketten-Klasse "String" und "Math". Bei java.util findet man vor allem erst mal Klassen für Kollektionen (Sammlungen von Daten) und div. andere Utility-/Hilfs-Klassen, die einem das Leben mit Java leichter machen können.

Mit Java SE kann man dann schon eine Menge anfangen...

Um in Java test-getrieben zu entwickeln (TDD), nutze ich JUnit - in der Version 4.xx. Auch hier setzt Java bzw. hier JUnit wieder Standards. Das in JUnit entworfene Grundkonzept der autom. Tests wurde in vielen Programmiersprachen nach implementiert.

Seit JUnits Version 4 werden Test-Mehtoden durch Annotations gekennzeichnet. Das macht die Erstellung von Tests nun noch einfacher und flexibler - aber dadurch dann andererseits auch ggf. komplexer und komplizierter - es stehen einfach sehr viele Möglichkeiten zu Verfügung (bspw. um Fixture-Methoden - oder gar -Klassen, zur Vorbereitung von Test-Szenarien zu erstellen, welche dann per einfachem Einbinden in mehreren Test-Klassen zur Verfügung stehen (Stichwort @Rule)).

Will man die Tests nun noch lesbarer gestalten, so kann man sich mit Hamcrest beschäftigen (welches allerdings erst seit JUnit 4.5 zur Verfügung steht).

Wer anfängt, sich mit Java zu beschäftigen, wird vermutlich erst mal auf den Seiten von Sun und/oder Oracle landen und dort von einer schier unüberschaubaren Flut von Standards, Spezifikationen, Tutorials und Abkürzungen überfallen... Mir hat damals erst ma Wikipedia weiter geholfen - für einen groben Überblick - da liest man den Artikel "generell über Java", klickt sich dann zu Java SE...