1. #1
    Avatar von Herox
    Registriert seit
    04.12.2011
    Beiträge
    233
    Thanked 96 Times in 64 Posts

    Standard Programmieren lernen - Anfänger sucht Hilfe (C#)

    Hallo liebe Leute,
    mir ist bewusst das es hier schon einige Themen zum Lernen von Programmiersprachen gibt, diese sind jedoch sehr veraltet (z.B. Verweise von Sky.net auf Video 2 Brain).

    Ein bisschen was über mich:
    Ich bin 28 Jahre alt und habe eine Ausbildung zum Informatikkaufmann (Kaufmann für Digitalisierungsmanagement) hinter mir. Die Ausbildung war für mich leider wenig zielführend, was Programmieren angeht. Bis auf „bastel einen Taschenrechner in VB.Net“ und „Zinsrechner“ war leider nichts dabei.

    Ich habe mich auch sehr lange damit gequält welche Programmiersprache ich lernen möchte und habe mir Gedanken gemacht, was ich damit machen möchte. Entschieden habe ich mich für C#, jedoch bin ich zeitlich durch viele Faktoren eingeschränkt (Familie, Arbeit, Aufträge…). Daher ist eine Buchempfehlung eher suboptimal und ich käme nicht dazu mir dieses in Ruhe anzuschauen.

    Video 2 Brain fand ich damals sehr ansprechend, jedoch finde ich einfach nichts vergleichbares mehr und einen kompletten Kurs mit Lehrer kann ich mir ebenfalls nicht leisten.

    Was kann ich?

    Die Grundlagen der Programmierung beherrsche ich und ich habe mir bedingt durch meine Unschlüssigkeit auch mehrere Sprachen mal angeschaut. Klassen und Variablen sind mir daher nicht neu. Bedingt durch meine Vorliebe zum einfachen habe ich lange mit Autoit gearbeitet. Autoit ist eine Scriptsprache selbst geschrieben in C++ und sie eignete sich bisher gut um kleinere Sachen zu automatisieren.

    Was brauche ich?
    Ich bin auf der Suche nach einem guten Videotutorial welches mich von Zero to Hero begleitet. Ich möchte wirklich das Programmieren lernen, habe jedoch nicht die Zeit für ein Buch da ich zeitlich zu sehr eingeschränkt bin und ich einem Video bzw. einer Person deutlich besser folgen kann. Natürlich darf sich auch gerne jemand mit Zuviel Freizeit als Lehrer anbieten.

    Wo liegt das Problem?

    Einerseits finde ich nichts mehr im Video 2 Brain Sinne, andererseits bleibe ich oft an Dingen hängen, die ich nicht verstehe. Als Beispiel: Ich möchte gerne in einem bestimmten Fensterbereich Aktionen ausführen (Textfelder ausfüllen, Mausklicks simulieren) ohne dass der Fokus einer Vollbildanwendung verloren geht. Durch solche Probleme neige ich oft zum Aufgeben, da ich bisher niemanden als Ansprechpartner bei solchen Problemen habe.

    Was möchte ich machen?
    Wie schon erwähnt habe ich mir viele Gedanken gemacht. Ich möchte eher Richtung Anwendungsentwicklung gehen und hauptsächlich Dinge automatisieren. Eine GUI die einfach gestaltet werden kann war mir dabei wichtig, so bin ich letztlich bei C# stehen geblieben. Da man wohl mittlerweile auch mit C# relativ Plattformunabhängig arbeiten kann, würde sich diese Programmiersprache erstmal anbieten.

    Projekte im Kopf habe ich genug, von simple Sendtexte, über Makroprogramme, Steuerung unsichtbarer Browserfenster, Abfrage offener Termine auf Webseiten, Automatisches ausfüllen von Formularen, Erstellung eigener Captcha-Abfragen, bis hin zur Automatisierung meiner Grafikaufträge, Entwicklung von Onlinespieleumgebungen mittels Unreal Engine, Entwicklung kleinerer Spiele für mich und meinen Freundeskreis…

    Abschluss:
    Vielen Danke an alle die bisher hin gelesen haben und ich freue mich sehr auf eure Rückmeldungen mit Vorschlägen, oder sogar das Anbieten von Hilfen. Wer etwas anbieten kann, darf mich natürlich auch gern privat anschreiben für das ein oder andere Lernmaterial. 😉 Programmieren war bisher immer mein größter Wunsch, jedoch war ich immer von kleineren Sachen enttäuscht. Kleineren Sachen? Ja, so etwas wie AntMe und die kleinere Programmier-/Scriptsprache Autoit konnten mir leider nicht das Maß an großer Programmierung bieten das ich gerngehabt hätte.


    Nicht alles was glänzt ist Gold, manchmal muss man Dinge hinnehmen wie sie nunmal sind.

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: Programmieren lernen - Anfänger sucht Hilfe (C#)

    Hi,

    von der Vorstellung, dass man eine Ausbildung oder ein Studium absolviert und anschließend zum Softwareentwickler "geschlagen" wird wie bei einem Ritterschlag, sollte man sich verabschieden. Wobei schon alleine die Frage, wann man Programmieren "kann" sehr diskutabel ist. Ich habe auch eine Ausbildung gemacht (FiAE) und war enttäuscht, weil ich davor im Selbststudium mit U-Labs & co. weitaus mehr gelernt habe. Von den Inhalten her waren das die Grundlagen der Grundlagen: Funktionen, Klassen, Methoden, Objekte, Variablen und zum Abschluss Vererbung - das wird dann mit minimaler Logik angewendet, maximal ein paar hundert Codezeilen. Ein halbwegs richtiges Projekt wurde genau zweimal umgesetzt, einmal als Übung für die Abschlussprüfung und einmal die Prüfung selbst. Wobei auch das nur bedingt realistisch war, da ein erheblicher Teil Theorie enthielt. Im Unternehmen war es teils besser, das hing stark von der Abteilung ab. Da das keine reine IT-Firma war, hatten die eher das kaufmännische im Fokus und es gab daher auch Monate, in denen man betrieblich nur ein paar Stunden mit organisatorischen Themen am PC verbracht hat.

    War in meinen Augen noch gut Luft nach oben, aber andere waren da noch deutlich schlimmer dran. Trotzdem hat in der Ausbildung etliches gefehlt, was für einen Softwareentwickler mMn essenziell bis mindestens wichtig ist: Beispielsweise Quellcodeverwaltung, Git & co waren nie ein Thema. Docker auch nicht, obwohl es das damals schon ein paar Jahre lang gab, konnten die Lehrer wenig damit anfangen und wollten, dass man händisch VMs aufsetzt, um einen Testserver aufzusetzen. Von DevOps-Themen wie CI/CD gar nicht erst anzufangen. Ausführlichst wiederholt wurden dagegen Themen wie z.B. Subnetting, natürlich alles von Hand in binär berechnet. Den dualen Studenten ging es etwas besser, da die zumindest manche Themen in den Vorlesungen vertiefen konnten. Da hat sich dann aber gezeigt, dass die Qualität davon stark von den Profs abhing: Bei manchen war das ganz vernünftig, andere kamen eher aus der theoretischen Informatik und behandelten daher eher die technische Funktion. Oder anders gesagt: Teils lernten die Studenten wie das theoretisch funktioniert, hatten aber trotzdem nicht wirklich Ahnung, wie man das in der Praxis sinnvoll einsetzt. Programmieren lernen die natürlich auch nicht vernünftig, da ist das eher Mittel zum Zweck (z.B. Mathematischen Algorithmus implementieren). Dementsprechend ist die Codequalität auch nicht unbedingt die Beste - wichtig ist eher, dass es funktioniert und im Zweifel haben die Profs selbst nicht so viel Erfahrung in der SW-Entwicklung, um das beurteilen zu können. Nicht alle, das kommt wie gesagt drauf an und gilt auch eher für die Informatik-Studiengänge.

    Aus heutiger Sicht würde ich sagen, ist der in meinen Augen sinnvollste Weg für den Einstieg folgender: Zuerst braucht man die absoluten Grundlagen. Sei es durch Videos, Blogbeiträge oder wenn man das Geld hat auch Kurse. Die scheinst du mittlerweile ja zu haben. Dann habe ich im Grunde primär versucht, Software zu entwickeln, die ich wollte/brauchte. DirectUploader ist ein Beispiel: Ich wollte eine einfache Möglichkeit haben, Screenshots zu erstellen und die dann gleich per Messenger zu verschicken. Tools wie ShareX die das mittlerweile perfektioniert haben, gab es damals nicht. Das war z.B. ein Projekt, bei dem ich mich intensiv mit dem HTTP-Protokoll oder erstmalig der Windows-API auseinandergesetzt habe. Oder eine verbesserte Plugin-Schnittstelle. Die erste habe ich davor für einen Knuddels-Bot entwickelt, durch die Erfahrung ist die von DirectUploader besser geworden. Primär ging es mir also darum, Probleme zu lösen. Ich hatte dabei aber auch offene Augen in beide Seiten, so nach dem Motto: Ich könnte die Bilderhoster zwar einbauen, aber als Erweiterung wären die doch viel flexibler - geht das? So kommt man dann zu Klassenbibliotheken, Modularisierung, Schnittstellen usw.

    Zitat Zitat von Herox
    Einerseits finde ich nichts mehr im Video 2 Brain Sinne, andererseits bleibe ich oft an Dingen hängen, die ich nicht verstehe.
    Die wurden von Linkedin gekauft, gibt es allerdings nur noch im Abo und ohne Offline/Downloadfunktion. Das Web war schon damals die beste Quelle und ein praktisches Beispiel aus dem Alltag finde ich schon mal eine gute Motivationsquelle. Irgendwann nicht weiter zu kommen wird passieren und je nach Erfahrung/Komplexität kann es gut sein, dass man da mal einige Stunden oder auch Tage an einem Problem verbringt. Mag nervig sein, aber: Bei solchen Fehlersuchen lernt man meiner Erfahrung nach am meisten. Natürlich kann man sich da auch mal Unterstützung holen: Im Internet schauen, in Foren posten etc. Das ist überhaupt kein Schande, im Gegenteil: Fragen sind für alle eine Bereicherung, wenn der Fragestellende sich Mühe gibt. Schon alleine sein Problem vernünftig zu formulieren, einen Beispielcode der die bisherigen Fortschritte zeigt und an dem das Problem reproduzierbar ist, bringt dich manchmal schon vor dem Posten zur Lösung. Falls nicht, hat die Gemeinschaft genug Infos, um sinnvoll unterstützen zu können.

    Hier braucht es einen gewissen Ehrgeiz in Kombination mit Durchhaltevermögen. Gerade als Einsteiger wird dir das oft passieren, bis du mit der Zeit mehr Erfahrung sammelst. Wenn du ein Problem nicht findest, mach z.B. für den Tag Schluss statt aufzugeben und schaue es dir am nächsten Tag noch mal an. Dann bist du wieder frisch und wenn du keine Lösung findest, kannst du wie schon gesagt das Problem vernünftig aufschreiben und hier oder in anderen Foren posten. Jemanden zu suchen der dir zu jedem Problem sofort eine Lösung findet, ist nicht zielführend - denn dabei lernst du ja nichts. Auf der anderen Seite kann es viel Zeit Kosten, wenn man nach Stunden oder Tagen immer noch keine Lösung hat. Rückwirkend ist das Gespür für einen Mittelweg das Beste: Erst mal selbst probieren, um deine Fähigkeiten zu testen und zu trainieren. Wenn du damit trotz eigener Anstrengungen nicht weiter kommst, poste es. Das kostet natürlich Zeit, aber dabei lernst du zu lernen.

    Videotrainings oder auch Bücher sehe ich nur für die Grundlagen als sinnvoll an, oder zur Vertiefung eines bestimmten Themas. Außerhalb davon hilft dir das für ein konkretes Projekt wenig bis gar nichts. In einem Projekt solltest du die Grundlagen anwenden können und für alles weitere lernen, das Web zu nutzen: Im besten Falle gibt es eine Dokumentation, zu vielen Dingen haben andere schon mal einen Blogbeitrag/Forumspost geschrieben, heutzutage gibt es ja auch viel mehr OS-Projekte, die ggf. bereits eine Lösung für ein Teilproblem gefunden haben bis hin zum Posten eigener Fragen, falls man gar nichts findet oder eben nicht weiter kommt. Und das ist in der IT mMn eine der wichtigsten Fähigkeiten: Informationen beschaffen, Transferwissen, überlegen wie ein unbekanntes Problem entstanden sein kann und womit es sich lösen lässt. Als Entwickler wirst du auf gewisse Dinge wie z.B. eine Benutzerauthentifizierung immer mal wieder stoßen. Aber du machst ja nicht immer das Gleiche, sondern auch neue Dinge. Selbst bei den vorhandenen gibt es Veränderungen - etwa 2FA beim Beispiel der Authentifizierung. Wenn du mit Videos besser lernen kannst und für ein spezielles Thema entsprechende Angebote findest, warum nicht. Das sollte aber nicht der einzige Weg sein. Neben den Kosten wirst du nicht zu jedem Thema ein Videotraining finden, bzw. zumindest keines von hoher Qualität.

    Zitat Zitat von Herox
    Projekte im Kopf habe ich genug, von simple Sendtexte, über Makroprogramme, Steuerung unsichtbarer Browserfenster, Abfrage offener Termine auf Webseiten, Automatisches ausfüllen von Formularen, Erstellung eigener Captcha-Abfragen, bis hin zur Automatisierung meiner Grafikaufträge, Entwicklung von Onlinespieleumgebungen mittels Unreal Engine, Entwicklung kleinerer Spiele für mich und meinen Freundeskreis…
    Zum Browser Fernsteuern habe ich mal einen Beitrag gemacht. Zwar in Python, dürfte von der Methodik her dennoch interessant sein - zumal es Selenium auch für .NET gibt, das lässt sich mit Anpassungen in der Namenskonvention also auch in C# umsetzen. Deine Ansätze klingen erst mal nicht verkehrt, allerdings würde ich aufpassen, mich nicht zu sehr zu verzetteln. Gerade wenn du nur begrenzt Zeit hast, lieber erst mal mit einem Projekt anfangen und vielleicht auch nicht gleich das Komplexeste. Wie im Sport ist regelmäßig ein bisschen und mit der Zeit dann etwas steigern besser, als mit einem Marathon anzufangen, den man nicht schafft und daher demotiviert ist.

    Zitat Zitat von Herox
    Da man wohl mittlerweile auch mit C# relativ Plattformunabhängig arbeiten kann, würde sich diese Programmiersprache erstmal anbieten.
    Automatisierung ist ein breites Feld, da sind eher Skriptsprachen verbreitet. Allerdings würde ich mir da gar keinen so großen Kopf darum machen. Bis auf spezielle Ausnahmen wie VBSkript taugt die Mehrheit der gängigen Sprachen grundsätzlich für den Einstieg. Man kann natürlich diskutieren, was nun besser oder weniger geeignet ist - mit C++ beispielsweise ist man als Einsteiger sicher noch mal mehr gefordert, wenn man mit Zeiger leicht komplexe Fehler einbauen kann und sich manuell um die Speicherverwaltung kümmern muss. Generell halte ich C# da für eine gute Einstiegswahl, weil so eine Hochsprache einem das abnimmt, ohne eine schlechte Performance zu liefern. Viel wichtiger sind aber erst mal die Konzepte. Beherrscht man die, ist das lernen einer weiteren Sprache deutlich einfacher, als die Erste. Ob das sinnvoll/notwendig ist, sei dahingestellt und kommt auch ein Stück weit darauf an, wohin es gehen soll. .NET ist mittlerweile deutlich freier und flexibler geworden, als vor einigen Jahren. Damit lassen sich mittlerweile auch Dinge umsetzen, die früher nur schwierig oder in der Form gar nicht möglich waren.

    Ist solide und seit das ganze OS/Plattformunabhängig geworden ist, auch wieder spannende Technologie mit nützlichen Erweiterungen wie z.B. Dependency Injection. Das Einzige was ich noch vermisse, ist ein GUI-Framework, dass überall läuft. Gibt es leider bislang noch nicht offiziell, allerdings interessante OS-Projekte aus der Community, die in meinen Tests unter GNU/Linux und Windows bisher einen guten ersten Eindruck gemacht haben. Wobei ich Desktop-Anwendungen nur da einsetzen würde, wo es technisch sinnvoll oder nötig ist. Mit einer Web-Anwendung ist man ansonsten automatisch unabhängig von der Plattform, kann das ggf. auch mal am Laptop/Handy unterwegs nutzen und speichert die Daten gleich zentral, sodass man sich gar nicht erst um die Synchronisation von ggf. mehreren Geräten kümmern muss. Wie bei so vielem ist das nicht die beste Lösung für alles, aber mMn eine sinnvolle Frage, die ich mir bei Neuentwicklungen stellen würde.

    Das Wichtigste ist aber erst mal, dass du Anfängst und dran bleibst. Beschäftige dich nicht zu sehr mit Details, ich habe auch schon Projekte mehrfach neu geschrieben. Das ist vor allem am Anfang völlig normal - wie gesagt, bei aller Motivation gibt es nicht den Ritterschlag, der einen zum Experten macht. Die Erfahrung kommt mit der Zeit. In 2 Jahren wirst du Dinge besser machen als heute und in weiteren 2 Jahren besser als davor. An der Stelle viel Erfolg dabei


  3. The Following 4 Users Say Thank You to DMW007 For This Useful Post:

    DotNet (06.10.2022), Herox (05.10.2022), Manipulate (05.10.2022), raspberryfan (05.10.2022)

Ähnliche Themen

  1. Android Apps programmieren lernen
    Von Snees im Forum Android
    Antworten: 20
    Letzter Beitrag: 09.02.2014, 17:47
  2. Freundin sucht Job in ein Tierheim, Hilfe benötigt!
    Von Bazs im Forum Zwischenmenschliches
    Antworten: 1
    Letzter Beitrag: 15.12.2012, 18:09
  3. [Ubuntu] Am besten programmieren lernen
    Von !lkay im Forum Linux
    Antworten: 4
    Letzter Beitrag: 07.03.2012, 19:20
  4. [Hilfe,Frage,Lernen] Programmieren
    Von Iomega im Forum Internet und Technik
    Antworten: 5
    Letzter Beitrag: 02.02.2012, 10:11
  5. Programmieren
    Von Marcel1992 im Forum Knuddels Programmierung
    Antworten: 14
    Letzter Beitrag: 10.08.2011, 15:01
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.