Das C++ für Spielprogrammierer kann ich ebenfalls sehr empfehlen.
Für C# Grundlagen z.B. "Schrödinger programmiert C#" oder "Einstieg in C# mit Visual Studio 2017: Ideal für Programmieranfänger" von Thomas Theis.
Ersteres ist umfangreicher und hat einen lockeren Schreibstil, ein paar kleine Übungen und Fragen,
letzteres ist übersichtlicher aber etwas trockener geschrieben und es fehlen einige Themen die noch interessant sind, es gibt aber auch Übungsaufgaben mit Lösung.
Beide vermitteln die Grundlagen der OOP mit C# anhand der Erstellung von Windowsanwendungen (das eine Forms, das andere UWP). Auf die Spieleentwicklung wird nicht wirklich eingegangen, auch wenn Schrödinger immer ein paar "Beispiele" von Spielen nennt. Zum Beispiel werden Klassen anhand von verschiedenen Gegnerarten erklärt.
Ich habe kürzlich meine Umschulung zum Anwendungsentwickler abgeschlossen und würde dir folgende Tipps mitgeben:
- Durchhalten: wenn man etwas mal nicht versteht, gucke es mehrmals an, aber nicht übertreiben. Wenn es mal hakt, mach eine Pause, tu etwas anderes. Irgendwann macht es Klick.
- Üben: Probiere Sachen aus, stelle dir Aufgaben oder suche Aufgaben im Internet. Übe das neu gelernte bis es gut sitzt.
Bücher über die Spieleprogrammierung mit C# (z.B. Unity) habe ich jetzt keine aufgeführt, da ich keines besitze das ich wirklich empfehlen kann.
Zum einen kommen ständig neue Updates für Unity raus und die Bücher vermitteln meiner Meinung nach die Grundlagen nicht so gut wie z.B. die oben genannten Bücher.
Mir persönlich hat es zum Beispiel viel mehr geholfen C# mit den Büchern zu lernen und mich dann durch Videotutorials in Unity einzuarbeiten.
Aber ich denke da muss jeder seinen eigenen Weg finden.
Möchstest du gleich mit 2 Sprachen auf einmal anfangen? Für den Anfang hätte ich gesagt sollte man sich auf eine konzentrieren und erst dann die nächste angehen.