Duck's Blog

Die Grundlagen von C# lernen

Autor: Duck

29.05.2021

Die Grundlagen von C# lernen

Viele frische Entwickler beginnen ihre Reise mit viel zu komplizierten und überwältigenden Dingen, wie Spieleentwicklung, ohne das Fundament zu beherrschen. Das ist ein erster und bedeutsamer Fehler, den Einsteiger gerne machen. Es mag sehr attraktiv aussehen, sein eigenes Spiel zu entwickeln, allerdings vergessen viele Leute, dass Spieleentwicklung ganz schön viel Arbeit und Wissen erfordert und nicht so einfach ist, wie sie es sich anfangs vorstellen. Es gibt nichts, was man nicht lernen kann, aber alles braucht seine Zeit.
Nachfolgend wirst du erfahren, wie du richtig in die wunderbare Welt der Entwicklung einsteigst und dich in Sachen Grundlagen gut weiterbilden kannst.

Wichtig anzumerken

Dieser Artikel ist auf alle Programmiersprachen und Bereiche anwendbar. Einzig und allein die verlinkten Quellen sind C#-spezifisch und variieren.

C# Grundlagen vor Unity

Wie ich bereits in der Einleitung dieses Artikels angedeutet habe, ist es ein Fakt, dass viele Leute in Gedanken schweben, ihr eigenes Spiel zu entwickeln. Dabei haben viele dieser Leute leider nur das Eine im Kopf, und zwar das Spiel fertig zu kriegen. Etwas zu lernen, sich und seine Fähigkeiten weiterzuentwickeln, fähig sein, ohne jegliche Tutorials etwas Eigenes kreieren zu können und etwas machen, um Spass zu haben und nicht nur, um mit einem eigenen Spiel angeben zu können, ist dabei bei manchen leider zweitrangig. Diese Leute denken nicht einmal daran, Schritt für Schritt in die Welt des Programmierens einzusteigen, Verschiedenes zu erlernen und langsam ans Ziel zu kommen, sondern tauchen lieber geradewegs in unbekannte Welten ein.

Schon bald finden sie sich verloren und verzweifelt in dieser unbekannten Welt wieder, überfordert mit Fehlern und Punkten, von denen sie einfach nicht weiterkommen. Blind Code zu kopieren ist natürlich auch keine Lösung, denn auch das bekämpft den Zweck des erwünschten Lerneffekts. Du kannst eine Applikation nicht dein Eigen nennen, wenn du den gesamten Code nur kopiert hast, ohne auch nur ein einziges Wort zu verstehen. Dabei lernt man absolut gar nichts.
Leider muss ich all dies auch betonen, denn das kommt sehr oft bei Einsteigern vor. Die meisten Probleme von Anfängern im Programmieren kommen von mangelndem Wissen. Falls du noch nicht vertraut bist mit C# oder anderen benötigten Konzepten, wie beispielsweise OOP (Objekt-orientiertes Programmieren), ist es sehr hilfreich, all dies zuerst zu verstehen, bevor man sich mit der Engine befasst.

Falls du die Grundlagen also noch nicht beherrschst, solltest du Unity für den Moment vergessen und dich vollständig auf die Grundlagen von C# konzentrieren. Sich mit Sachen zu befassen, die weit über dem eigenen Level sind, endet nie gut. Damit macht man nur sein eigenes Leben schwerer, statt sich nur ein wenig Zeit zu nehmen, um sich das Leben einfacher zu machen. Es macht wirklich einen grossen Unterschied. Das Lesen eines Codes, der in C# geschrieben wurde, gleicht dem Lesen einer Sprache, die man überhaupt nicht beherrscht. Du verstehst kein Wort.
Dasselbe zu tun, nachdem man sich gründlich mit den Grundlagen befasst hat, ist ein ganz anderes Erlebnis. Plötzlich versteht man vieles, was da vor sich geht und fühlt sich dementsprechend auch besser.

All dies kann man mit dem Bauen eines Hauses oder dem Lernen einer neuen Sprache vergleichen.
Man kann kein Haus bauen, wenn man mit dem Dach anfängt.

Wie beginnt man am besten?

Generelle Tipps

Nimm dir Zeit. Überstürze nichts. Du hast alle Zeit der Welt und es gibt überhaupt keinen sinnvollen Grund, den Lernprozess zu beschleunigen. Dies könnte schlussendlich nur zu einem Wissensmangel führen, was definitiv nicht ist, was du möchtest. Die Motivation sollte darin liegen, wirklich etwas zu lernen. Es gibt deshalb einen Satz, den man sich diesbezüglich merken sollte…

Denke daran:

Das Ziel ist es, es so GUT wie möglich zu lernen, nicht so schnell wie möglich!

Und das ist der Sinn der Aufgabe. Nimm dir immer so viel Zeit wie nötig. Falls du das Gefühl hast, du hast etwas noch nicht ganz im Griff und du bräuchtest noch eine Woche, dann nimm dir die Woche. Wenn du denkst, du brauchst mehr, tue das. Du bist die einzige Person, die entscheiden kann, wann du was machen und wofür bereit sein wirst. Man kann nicht weit kommen, wenn man nicht bereit ist, Zeit in die Arbeit zu investieren.

Das grobe Prinzip dieses Lernprozesses besteht aus einem kontinuierlichen Zyklus, der einige wichtige Stichpunkte enthält.

  1. Finde einen guten Kurs

Zuerst ist es sinnvoll, eine bestimmte Basis an theoretischem Grundwissen aufzubauen. Natürlich besteht Programmieren keinesfalls aus irgendwelchen Formeln oder Sachen, die man auswendig lernen muss, keine Sorgen. Trotzdem musst du ein paar grundlegende Dinge verstehen, bevor du weiterfahren kannst. Es gibt viele gute Quellen, die dir helfen, so ein Fundament zu bilden und dich manchmal sogar darüber hinaus ausbilden. Hier unten findest du ein paar Links, die ich persönlich sehr empfehle, um die “Basics” von C# zu verstehen. Sie untermauern alles mit guten Beispielen und zeichnen sich mit einem guten Umfang an Lernmaterial aus.

Wähle einen und später eventuell mehrere dieser Kurse und folge allem sehr aufmerksam. Bitte überspringe keinen Teil! Jeder einzelne Abschnitt ist wichtig und du solltest nicht weiterfahren, wenn du den vorhergehenden Teil nicht vollständig verstanden hast. Bei jeglichen Zweifeln macht es mehr Sinn, sich weiterzubilden und zu informieren, statt es so halb verstanden sein zu lassen.

  1. Recherchiere bei Unklarheiten

Falls du etwas nicht verstehst, ganz egal was es ist, scheue nicht davor zurück, dich zu informieren. Es ist unglaublich wichtig, dass du jedes einzelne Thema und Unterkapitel sehr gut verstehst. Wenn du das Gefühl hast, dass du noch nicht ganz mit etwas vertraut bist oder noch Fragen in deinem Kopf schweben, frage zuerst Google. Informiere dich zuerst online. Es gibt unzählige Quellen, die die fundamentalen Dinge sehr gut erklären und mit einigen Beispielen sowie interaktiven Aufgaben betonen.
Falls du es auch dann nicht verstehst, habe keine Hemmungen, jemanden zu fragen. Schäme dich nicht, etwas nicht zu wissen. An diesem Punkt waren wir alle einmal. Versuche dabei deine Frage immer “korrekt” zu stellen, wie ich es in einem meiner vorherigen Beiträge beschreibe "Wie stellt man Fragen?" .

  1. Übung macht den Meister

Wenn du einmal an dem Punkt angelangt bist, an dem du denkst, dass du einen Teil ziemlich gut verstanden hast, rate ich dir, eine neue C# Konsolen-Applikation in der IDE/dem Code Editor deiner Wahl zu öffnen und dein theoretisches Wissen praktisch anzuwenden. Es gibt keinen effizienteren Weg, etwas zu erlernen, als es mehrmals praktisch umzusetzen. Übung macht den Meister! Es muss natürlich nichts Spezielles sein, überhaupt nicht. Nur eine Art Spielplatz, auf dem du dich nach Lust und Laune austoben und üben kannst. Du spielst förmlich mit dem Wissen, das du dir durch die Kurse angeeignet hast. Die meisten Kurse beinhalten bereits ein paar Beispiele, aber das ist nicht wirklich genug. Du kannst auf diesen Beispielen aufbauen.
Versuche auch, aus deiner Komfortzone herauszukommen. Habe keine Angst vor Fehlern. Es kann absolut gar nichts schiefgehen. Fehler gemacht? Na und, Fehler ausbügeln und weitermachen!

Einfach üben, üben, üben!

Die Reise danach (praktische Erfahrung)

Du wirst damit nicht in ein paar Tagen “fertig” sein, das ist klar. Programmieren ist sowieso ein kontinuierlicher Lernprozess, bei dem immer Wissen und Erfahrung dazukommt. Die “Basics” sollten aber einmal drinnen sein und sich in deinem Langzeitgedächtnis fest verankern. Dies geschieht, wie gesagt, nicht in ein paar Tagen. Nimm dir also alle Zeit der Welt.
Wenn du schliesslich an den Punkt angelangt bist, an dem du vollständig komfortabel mit den fundamentalen Themen von C# sowie mit dem Konzept von OOP sehr vertraut bist und all dies schon mehrmals praktisch umgesetzt hast, darfst du dich an etwas fortgeschrittenere Sachen und kleinere Projekte wagen. Auch hier gilt: Klein anfangen! Lasse dir einige sehr simple Projektideen einfallen, die du mit deinem Wissen und deiner Erfahrung als machbar einschätzt, wie beispielsweise ein text-basiertes Spiel oder einen text-basierten Taschenrechner in einer C# Konsolen-Applikation.
Du musst dir noch keine Sorgen über schickes Zeug, wie Grafiken oder unglaublich komplizierte Mechaniken, machen. Hierbei geht es einzig allein um den Einstieg in den Fluss der Entwicklung.

Nachdem du auch da denkst, dass du schon ziemlich fortgeschritten bist, gehe einen Schritt weiter. Falls du dich für Spieleentwicklung interessiert bist, versuche beispielsweise einen “Pong” Klon. Im Falle, dass du Unity dafür verwendest, lehrt dich solch ein Projekt auch fundamentales “Unity-Wissen” und stärkt dein C#-Wissen noch mehr. Du kannst dann auch eigene Ideen einbringen und dieses simple Spiel mit einem eigenen Hauch von Individualität erweitern.

Danach sind dir keine Grenzen gesetzt. Lasse dir coole Ideen einfallen, erweitere deinen Horizont und am wichtigsten, habe Spass!

Hilfreiche Quellen

Wie bereits versprochen verlinke ich hier einige Quellen, die ich für Einsteiger empfehle, um effektiv die Grundlagen von C# zu verstehen.