Dein Weg zum Programmieren Lernen

Du möchtest Programmieren lernen aber würdest gerne einen Überblick haben über alle Themen die du dafür lernen solltest?

Ich habe den Weg aufgezeichnet, der ideal ist und alle wichtigen Themen beinhaltet. Außerdem ist dieser Weg auch für Anfänger geeignet.

Was du hier noch beachten solltest, diese Themen hast du hier vielleicht in 5 Minuten durchgelesen, aber um wirklich alles zu lernen brauchst du richtig viel Zeit. Das liegt nicht daran, dass die Themen zu schwer zu verstehen sind. Die Themengebiete sind komplex und groß und erfordern manchmal viel Erfahrung.

Du kannst aber beruhigt bleiben, es ist alles schaffbar und je nachdem was du programmieren möchtest, brauchst du auch gar nicht den kompletten Weg. Starten wir mit dem absoluten Anfang.

 

Der Anfang

Am Anfang musst du lediglich eine Idee haben oder einfach neugierig sein, dass du Programmieren lernen willst. Es gibt ein paar Grundvoraussetzungen (wie, Lesen,Schreiben, Rechnen, oder Umgang mit dem Computer), die ein Anfänger bereit mitbringen sollte.

Dann kann der Anfänger loslegen mit einer Programmiersprache seiner Wahl. Es ist wirklich EGAL welche Hochsprache er am Anfang benutzt, denn er wird früher oder später sowieso mit einer anderen Sprache arbeiten. Mit dieser Hochsprache muss er nun die Grundelemente aller Hochsprachen erlernen.

Erst, wenn er diese erlernt hat, kann er bereits Programme lesen und kleine Probleme mit einer Programmiersprache lösen.

Du bist Anfänger und möchtest damit so loslegen? Dann schaust du am besten in diesem Artikel vorbei: Ich bin totaler Anfänger und möchte Programmieren, was muss ich zuerst tun?

Eine Sprache und eine Bibliothek

Nachdem du dein ersten Programmcode geschrieben hast und dir das Spass gemacht hat, möchtest du natürlich deine Idee direkt umsetzen. Damit du dies machen kannst benötigst du ein bisschen Übung mit den Grundelementen. Dann kommt es drauf an was du eigentlich programmieren willst. Das heißt, du wirst dich entscheiden müssen mit welcher Programmiersprache und welcher Bibliothek du dein Spiel, deine App oder deine Webanwendung schreiben willst. Nehmen wir an du möchtest ein Standardcomputerprogramm mit grafischer Benutzeroberfläche für Windows schreiben. Hier kannst(musst du aber nicht!) du dich für die Sprache C# und das .NET-Framework entscheiden.  Damit lernst du nun weiter. Hier gibt es einen ausführlichen Artikel über die Sprachen und Bibliotheken, als Beispiel für die Programmierung einer App.

Klassen und Objekte

Diese Elemente der Hochsprachen versteht man erst, wenn man die anderen Werkzeuge bereits verstanden hat. Solltest du also hier bereits abgekürzt haben, werden dich die Grundelemente hier bereits einholen. Mit Klassen und Objekten kannst du die reale Welt als kleines Modell im Programm abbilden. Fast alle modernen Programmierbibliotheken stellen fertige Klassen bereit, damit ersparst du dir viel Arbeit, denn du brauchst das Rad nicht mehr neu zu erfinden!

Dein erstes eigenes Programm

Mit dem Wissen wie Klassen und Objekte funktionieren, kannst du nun mit Hilfe der Programmiersprache und der Bibliothek mit der Programmierung deiner ersten Anwendung starten. Das hört sich hier zwar grad einfach an, aber das kann eine Weile dauern. Irgendwann wirst du merken, dass du nun zwar die Werkzeuge und das Material für die Programmierung nun hast, aber dir fehlt noch etwas. Dir fehlt noch das Wissen darüber wie man Programme eigentlich ordentlich designed. Also wie baue ich meine Klassen so ordentlich auf, dass ich größere Programme schreiben kann?


Die Objektorientierung

Bis hierhin hast du bereits genug Erfahrung gesammelt um ein erstes eigenes Programm zu entwickeln welches ein paar Features hat. Eventuell bist du schon an die Grenze der Möglichkeiten gestoßen, an manchen Ecken wird dein Programm unhandlich, Änderungen sind nur schwer möglich oder dein Programm stürzt ständig ab. Also lernst du als nächstes die Objektorientierung kennen. Diese setzt sich zusammen aus der Analyse (OOA), dem Design (OOD), der Programmierung (OOP) und dem Test deines Programms. Möchtest du deine Software planen und dokumentieren lernst du dazu die Unified Modeling Language (UML).

Je nachdem was du programmieren willst kann es durchaus vorkommen, dass du noch Zusatztechnologien erlernen musst. Wenn du Glück hast ist es vielleicht nur eine zusätzliche Bibliothek. Ist es aber eine komplett andere Technologie, solltest du bereit sein diese Technologie zu erlernen.

Wichtig ist: Wenn du objektorientiert Software entwickeln kannst, bist du bereits technisch und handwerklich in der Lage wirklich jedes Programm zu entwickeln. In diesem Artikel gehe ich mehr in Detail über Objektorientierung. Viel Spass beim Lesen!

Design Pattern, Refactoring und Clean code

Auch wenn du bereits jede Software schreiben kannst, die du dir vorstellst, gibt es immer noch ein paar Themen, die du lernen solltest um die Qualität deiner Software erheblich zu erhöhen. Mit Design Pattern kannst du Funktionen realisieren wie einen Rückgängig-Befehl. Mit Refactoring lernst du deinen Code sauber umzustrukturieren. Clean Code bringt dir bei deinen Code nicht nur so zu schreiben dass er funktioniert, sondern auch noch Jahre später verständlich für dich ist. So wirst du das Schreiben von Programmcodes perfektionieren. Um mehr darüber zu erfahren klicke hier.

Entwicklungszyklus

Je Professioneller du Software schreibst, umso mehr solltest du den Software Entwicklungszyklus lernen. Das sind Dinge wie: Wie finde ich heraus welche Funktionen meine Benutzer eigentlich wirklich haben wollen? Und wie plane ich all diese Funktionen ein? Ist die Software wirklich das was der Nutzer sich vorgestellt hat? Den Zyklus kann ich dir hier schonmal verraten:

In der Anforderungsverwaltung geht man mit den Wünschen der Nutzer um. Im Entwurf plant man diese Wünsche in ein Gesamtkonzept ein. Danach folgt das Design und die Programmierung. Ist dies abgeschlossen, muss man dem Benutzer beweisen, dass die Software auch funktioniert. Dies macht man mit Tests. Sind diese durch, kann man eine offizielle Version veröffentlichen. Diese muss installiert und irgendwo heruntergeladen werden können. Zum Schluss folgt die Wartung, also der Umgang mit Fehlern und Weiterentwicklungen.

Wenn du den Zyklus der Softwareeentwicklung kennst und ihn leben kannst, bist du in der Lage deine Software ideal an die Nutzerwünsche anzupassen und auch deine Software deinen Nutzer bereitzustellen. Wenn du hier bist, schreibst du nicht nur Software sondern kannst deine Software als Produkt bezeichnen. Wie so ein Zyklus aussieht lernst du hier

Teamarbeit

Egal wie gut du bist, irgendwann willst du ein Programm schreiben, welches so groß ist, dass du die Arbeit einfach nicht mehr alleine bewältigen kannst. Es ist also ganz normal sich in Teams zusammen zuschließen und an einem Projekt zu arbeiten. Der eine programmiert z.B. die Spiellogik, der nächste die Steuerung und der nächste die Grafikeffekte. Also hier sind Themen wichtig, wie: Vorgehensweisen für Teams, Versionierung und Projektmanagement.

Es gibt eine handvoll etablierter Vorgehensweisen für Teams: Heutzutage wollen alle agile Software entwickeln. Dazu gehören: Extreme Programming, Scrum oder Kanban. Hier lernt man professionelle Softwareentwicklung. Hier gibt es eine kleine Einführung zum Thema Vorgehensmodelle.

Bei der Versionierung lernt man gemeinsam in einem oder mehreren Quellcodes zu arbeiten ohne, dass Änderungen verloren gehen. Auch dazu gibt es eine kleinen Einstieg in einem Artikel!

Das Projektmanagement an sich hat eigentlich nichts mehr mit Programmierung zutun, solltest du allerdings an diesem Punkt angekommen sein, ist der nächste logische Schritt Software Projekte zu managen und zu leiten.

Bravo!

Also das was ich dir jetzt in ca. 1000 Worten erklärt habe, dauert eine ganze Weile! Ich selbst habe für diesen Weg fast 10  Jahre gebraucht, allerdings hatte ich auch vorher niemanden der mir diesen Weg zeigen konnte. Du musst dir diesen nicht mehr erarbeiten. Du weißt jetzt ganz genau was du lernen musst um deine Idee umzusetzen. Mich würde interessieren: An welchem Punkt bist du gerade? Welche Themen sind für dich noch wichtig und ich sollte die ergänzen?

 

 

Das könnte dich auch interessieren

2 Kommentare
  1. Eva Rodriguez sagte:

    ich möchte so gerne eigene webseiten erstellen können, und zwar nciht mit fertigen Homepage-Baukästen.
    Hoffe mit deinem Lernprogramm weiterzukommen und eine spannende Welt kennenzulernen.

    Antworten
    • Arek sagte:

      Hallo Eva,
      das freut mich sehr. Wenn du die Grundlagen ersteinmal verstanden hast, dann kommst du nach und nach an dein Ziel. Was für Webseiten möchtest du denn programmieren?

      Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.