Wie lange dauert es die Programmiersprache C# zu lernen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Programmiersprachen "lernt" man nicht im eigentlichen Sinne. Man lernt Paradigmen und das Wissen verschiedene Probleme in ein Programm umzusetzen. Im Falle von C# ist das Paradigma im Wesentlichen die Objektorientierte Programmierung.

Die Idee dahinter ist recht fix erklärt: man hat verschiedene Objekte mit Attributen und Methoden, die sich gegenseitig beeinflussen. Dieses Konzept kann aber beliebig komplexer werden.

Nehmen wir als Beispiel das Spiel Pacman: Es gibt Objekte auf dem Spielfeld, dass kann ein Geist sein, eine Pille oder der Spieler selbst. Das Spielfeld selber ist auch ein Objekt, was all diese Objekte darstellt. Das Spielfeld selber weiß aber recht wenig von den Objekten, seine Aufgabe ist nur die Objekte darzustellen - dazu sollte jedes Objekt verschiedene Basismethoden bereitstellen wie Position oder die Grafik, die gerendert wird. Da spricht man Vererbung oder Schnittstellen (je wie man das Problem angeht, wahrscheinlich Mix aus beiden). Dann gibt es noch das Spiel-Objekt, was alle Spielfeld-Objekte + das Spielfeld verwaltet und Punkte zählt und dem Spielfeld sagt wann gerendert werden muss etc. pp.

Das ist jetzt ein sehr abstraktes, vereinfachtes, konstruiertes Beispiel - stellt aber hoffentlich die Idee etwas dar. Wie gesagt: Die Grundidee ist schnell verstanden, das komplett und all umfänglich zu verinnerlichen Bedarf aber reichlich Erfahrung (falls man das überhaupt jemals erreicht, ich würde das nicht von mir behaupten).

Zum lernen: Du brauchst natürlich Wissen um die Syntax der wesentlichen Sprachkonstrukte. Wenn man bei Null anfängt würde ich bei deinen Ambitionen davon ausgehen, dass du nach einer Woche 80% der wesentlichen Konstrukte zumindest kennst (Syntax, Bedingungen, Schleifen, Datentypen, Klassen, Funktionen/Methoden, Exceptions, Generics) - gemäß der 80-20-Regel. Wann was anzuwenden ist wirst du dann auch ziemlich schnell begreifen.
Was dann noch dazukommt sind die Bibliotheken. Es sollte offensichtlich sein, das du keine Low-Level-Funktionen benutzen musst, um ein ein einzelnes Pixel auf dem Bildschirm darzustellen oder eine Datei bis zur Festplatte zu bringen. Ein HelloWorld ist halt ein 1-Zeiler (wenn man die Boilerplate, also den Standardcode drumherum, weglässt). Aber du kannst auch etwas größer denken und aus einer Struktur eine XML erstellen ohne dich darum kümmern zu müssen wie die XML aussieht.
Dazwischen gibt es noch die "Standards"...Listen, Dictionaries, Arrays, ... Die wirst du immer wieder finden und brauchen. Auch hier gilt die 80-20-Regel, diesmal andersherum: Dir werden 20% der Standardbibliotheken reichen um 80% deiner Zeile zu erreichen (wobei ich in Betracht der Größe, je wie man die Standarbibliothek definiert, eher auf 95-5 tippen würde).

Wie kommst man auf die Bibliotheksfunktionen? Kommt auf die eigene Erfahrung an. Wenn wenig da ist: Tutorials, da wird man in das wesentliche eingeführt. Später hilft google massiv, am besten auf Englisch - stackoverflow ist eine geniale Community, man kann daraus wortwörtlich ganze Programme zusammenkopieren (wenn man weiß, was man kopieren muss). Wenn deine Erfahrung sogar das übertrifft oder deine Probleme sehr speziell sind, hilft eine Dokumentation meist weiter.

Letztendlich ist mein Rat aber: Nicht lernen - MACHEN! Lese/schaue Tutorials (und versuche sie nachzuvollziehen), denk dir Probleme aus/frag Bekannte nach Problemen und versuche sie umzusetzen. Programmieren ist vor allem Erfahrung (und Kreativität).
Das ist keine Fremdsprache wie italienisch, wo du Vokabeln lernen musst und einen Italiener brauchst der dir dann nur sagt, dass das irgendwie falsch klingt. Du hast einen Compiler, der dir jederzeit sagt, was ihm nicht passt. Wenn es für den Compiler passt das Ergebnis trotzdem unerwartet ist, hast du zumindest direktes Feedback. Es gibt (ins besonders in der Visual Studio Welt) wundervolle Möglichkeiten Fehler auszuspüren (aber das würde jetzt den Rahmen sprengen)

Sammel einfach Erfahrung, das bringt dir mehr als jedes Lehrbuch. Ich würde nicht sagen, dass du nach 2 Wochen ein 3D Game zustande bringst...aber ein primitiver Snake-Clone auf der Konsole? Da bin ich bei deiner Motivation optimitisch.

Unknown770 
Fragesteller
 13.10.2019, 13:53

Danke!!

0

Hängt davon ab, was du für Vorkenntnisse hast.

Wenn du schon objektorientiert Entwickelt hast, ist das ein Klacks.

Ansonsten musst du mal die Prinzipien der Objektorientierung lernen.

Die Syntax und die Schlüsselwörter der Sprache selbst hast du bald mal durch.

Bei den vielen Bibliotheken die das .NET Universum so mit bringt, lernt man (fast) nie aus.

Die Sprache ist bald mal gelernt. Um wirklich programmieren zu lernen, braucht es v.a. Erfahrung und das Lernen von grundsätzlichen "Patterns".

https://qz.com/681702/teach-yourself-programming-in-10-years/

Woher ich das weiß:Berufserfahrung

kommt drauf an. würde sagen nen monat

wido1234  12.10.2019, 22:40

alles kann man eh nie. man lernt immer aus

1
Unknown770 
Fragesteller
 12.10.2019, 22:40

Danke, für diesen Kommentar!

0

Zieh das einfach durch ,das was du vor hast zu lernen sind sehr fortgeschrittene sachen und das wirst du untter 2-3 mindestens nicht hinbekommen ..du wirst nie alles können das geht nicht dafür ist diese sprache zu riesig mit all seinen möglichkeit... schreiben manche hier "nen monat" wie lächerlich.. ich wünsche dir viel erfolg bei deinem Vorhaben 😉👍🏼

Woher ich das weiß:Hobby
JS2004481  26.01.2021, 20:11

2-3 jahren mindestens *

0