Ich würde auch zu C# raten, da man damit am Anfang die größten Fortschritte und schnellsten Erfolge hat. Außerdem ist C# imo die beste Sprache, wenn es um die Entwicklung von Windows-Anwendungen mit Schwerpunkt auf Benutzerinteraktion geht, bei denen die Performance weniger wichtig ist. Bei Performancekritischeren Sachen wäre dann eher C++ oder zumindest eine aus C# benutzte C++ Dll das Mittel der Wahl. Außerdem ist die Performance von C# Programmen meist besser als bei anderen Programmiersprachen (außer natürlich C++).
Von Delphi würde ich strikt abraten. Wir müssen uns in der Schule gezwungenermaßen damit herumschlagen. Dabei vergehen keine 2 min ohne dass ich mir wünsche C++ oder C# benutzen zu können. Ich würde mich sogar lieber mit Java quälen als mit Delphi, denn Java ist wenigstens Platformunabhängig. Ein kleiner Teil meines Delphi-Hasses mag auch darauf zurückzuführen sein, dass wir in der Schule Delphi 7 verwenden... Selbst im Vergleich mit dem deutlich älteren Visual Studio 6.0 ist diese Entwicklungsumgebung imo (genau wie die Sprache selbst auch) mit "Bullshit" noch sehr wohlwollend umschrieben.
Selbst Visual Basic hat eine schönere Syntax als Delphi... Visual Basic ist zwar deutlich empfehlenswerter als Delphi, aber da VB.Net im Prinzip nichts anderes mehr ist als C# mit anderer (schlechterer) Syntax würde ich diese Sprache nicht wirklich empfehlen. Die Einsteigerfreundlichkeit ist etwas höher als bei C#, dafür aber auch die Gefahr sich schlechten Stil anzugewöhnen.
Python soll ziemlich einfach für den Anfang sein, und mit Python kann man z.B. auch Plugins für einige Programme wie Gimp oder Blender schreiben.
Java erfreut sich auch recht großer Verbreitung. Java sollte das werden, was C# ist. Deshalb würde ich eher zu C# raten, aber Java hat zumindest den Vorteil der Platformunabhänigkeit. Mit Java kann man den selben Code auf jedem Computer (auch Handys und Smartphones) laufen lassen, für den es die Java VM gibt. Einer der größten Nachteile daraus ist allerdings die eher dürftige Performance.
Skriptsprachen wie PHP wären auch eine Überlegung Wert. Diese sind für den Anfang relativ einfach zu lernen, aber auch hier besteht die Gefahr schlechter Angewohnheiten, wenn man sie als erste Sprache benutzt. Außerdem sind diese natürlich nur für einen eingeschränkteren Bereich einsetzbar, als Programmiersprachen.
C++ hätte den Vorteil, das man damit besser versteht, was eigentlich intern abläuft und somit besseren und effizienteren Code schreiben kann. Allerdings hat C++ bei weitem die höchste Einstiegshürde und es dauert sehr lange, bist man es überhaupt erstmal aus der Konsole herausschafft.
Meine Empfehlung, wenn es darum geht ein möglichst tiefgehendes Verständnis vom Programmieren zu bekommen, wäre also mit C# anzufangen, ein zwei Jahre später zusätzlich C++ zu lernen und dann, wenn man noch tiefergehende Einblicke wünscht, sich ein wenig mit Assembler zu beschäftigen.
Anfängerlektüre für C# kenne ich allerdings leider keine.