Welches Buch zu C# für Studium? Unity?
Hi,
ich habe mit einem Lehrbuch und eigenen Anwendungsprogrammen, Beispielen/Übungen Python gelernt, weil ich am besten mit Büchern lerne.
Jetzt brauche ich fürs Studium C#. Ich finde leider wenig Informationen darüber, welches Buch zu empfehlen ist.
Und alternativ:
Ich habe dank Python ja etwas Erfahrung in typischen Desktop-Einsteigerprojekten sammeln können.
Spieleentwicklung mit C# wäre etwas, was mich ich mehr motivieren könnte. Es ist aber nicht sicher. Ich spiele in der Freizeit weniger als früher.
Es sind noch einige Monate zum Studium.
Könnte das funktionieren, über Spieleentwicklung Grundkonzepte auf- und auszubauen?
Oder ist der Ansatz zu sehr begrenzt nur Spieleentwicklung im Falle von C#, wenn im Studium Grundlagen an Desktopprogrammen erklärt werden?
Mit Python bin ich ja nicht über einfache Programme hinausgegangen, auch teils absichtlich, da für das kommende Studium die Sprache nicht relevant sein würde.
Danke.
2 Antworten
Wenn es um feste Literatur zu C# geht, kann ich dir das Rheinwerk-Exemplar von Andreas Kühnel empfehlen. Einen etwas lockeren/spielerischeren Ansatz verfolgt Schrödinger programmiert C# von Bernhard Wurm.
Allerdings würde ich dir definitiv davon abraten, mit Spieleprogrammierung/Unity einsteigen zu wollen. Zum einen verschiebt sich so ein Teil des Fokus auf die Bedienung von Unity und zum anderen baut man in Unity darauf, dass dir Grundkonzepte zu C# bereits bekannt sind. Das gilt m.E. ebenso für Alternativen wie MonoGame oder FlatRedBall.
Halte es einfach. Fange deine Übungen stattdessen erst einmal in Konsolenprojekten an. Mit ein paar Kenntnissen für Basisbausteine kann man auch in diesem Kontext beginnen, kleine Spiele (z.B. Hangman, Snake, Space Invaders, ein Text-Adventure, ein 2D-Auto-Hindernis-Ausweich-Endlessrunner, Sudoku, u.ä.) zu entwickeln.
Danke für den buchtipp natrülich, rheinwerk wäre einen versuch wert, nur erneut durch desktop programmbeispiele / anwendungsaufgaben durchkauen wäre nicht so schön
C# ist eine ziemlich andere Sprache als Python. Das gilt für die Syntax, das Ökosystem, die vorhandenen Features, ... selbst wenn du auf Begriffe/Strukturen stößt, die du mit Python schon kennen gelernt hast, liegen sie in C# meist in anderer Form vor oder weisen ein anderes Verhalten auf.
Spieleprogrammierung mit Unity würde ich erst empfehlen, wenn du halbwegs sicher mit objektorientierter Programmierung in C# bist. Wie lange du bis dahin brauchst, kann ich dir nicht sagen, denn das Lerntempo ist bei jedem anders und hängt von zu vielen individuellen Faktoren ab. Ich kann lediglich garantieren, dass es mehr als nur ein paar Tage/Wochen dauern sollte. Bedenke dass, falls du vorhaben solltest, crashkursmäßig durch die Themengebiete hetzen zu wollen, dir das früher oder später auf die Füße fallen wird.
Das eigenständige Bilden von Algorithmen solltest du ebenso schon deutlich früher üben. Am besten direkt dann, sobald du Variablen, Operatoren, Kontrollstrukturen und Arrays draufhast, denn mit diesen Grundlagen kann man schon ziemlich viele Probleme lösen. Ein paar klassische Übungsaufgaben habe ich beispielsweise in diesen beiden Beiträgen:
- Wie verbessere ich meine Programmierskills?
- Wie auf Klassenarbeit über Java und Struktogramme vorbereiten?
schon einmal aufgelistet.
Alles was nach OOP kommt, geht mehr in die Richtung Softwarearchitektur/-design. Algorithmenbildung sollte auf dieser Stufe schon bekannt und bestenfalls kein großes Problem mehr sein.
In der Spieleprogrammierung fokussiert man sich tendentiell auf komplexere Algorithmen (Wegfindung, Worldgeneration, Kollisionsberechnungen). Wenn man sich mehr in Softwarearchitektur vertiefen möchte, halte ich das Gebiet nur für bedingt günstig. In anderen Anwendungsgebieten tritt es m.E. deutlicher hervor.
Ok danke das macht zwar nochmal menge Respekt vor der Sprache
Aber wenigstens weiß man woran man ist
Ich nehme mir dein Hinweis zu Herzen und fang mit deinen Beispielen an und vermeide unity erstmal bzw evtl langfristig ebenso - wollte und will ja auch kein spiele entwickler werden wollte meine bisherigen Kenntnisse nur bestenfalls weiterentwickeln
So oder so danke für die ausführliche Rückmeldung
C# in depth (einfacher geschrieben)
C# in a Nutshell (DAS große Standardwerk, aber weniger didaktisch gut aufbereitet)
Optional:
Thinking in Linq (advanced)
Functional Programming in C# (advanced)
okay super danke das was abschreckt demotiviert ist das erneut mit Desktopprogrammen alles mühsam durchgenommen wird
Nicht missverstehen das war bei python ja auch interessant und motivierend alles auch neu.
Aber ich frag mich ob es sinnvoll wäre und wie schnell es ginge wie du sagst nach grundlagen (?) einfache spiele entwickeln beginnen
um halt auch logik im programmieren an sich zu verfestigen quasi , trotz anderer sprache, coden vertiefen mit allem was auch python näherbrachte.