Programmieren lernen ✔️ Aber du kannst immer noch kein Programm schreiben?

Ein Problem, dass Anfänger oft haben, ist das Schreiben der ersten Programme und Quelltexte. Sie haben einen Online-Kurs beendet, aber sie wissen trotzdem nicht, wie man zum Beispiel Javascript benutzen soll, um ein fertiges Programm zu schreiben. Sie kennen die Theorie, aber es ist ihnen nicht möglich das gelernt gezielt einzusetzen. Sie fühlen sich verloren mit all dem Wissen das sie haben und können einfach nicht weitermachen.

Warum passiert so etwas und warum haben Anfänger oft Probleme bei den ersten Aufgaben? Lass uns mal durch folgende

Angst und Selbstzweifel

Oft fühlen sich Anfänger verloren und sie machen den ersten Fehler, indem sie an sich selbst zweifeln. Sie kennen die Tatsache nicht, dass jeder Programmierung erlernen kann, wie jede andere Fähigkeit. Das einzige was man braucht, ist Geduld und Übung.

Der Code wirkt zunächst wie eine völlig fremde Sprache. Man fühlt sich dann gleich am Anfang demotiviert. Das ist normal! Doch mit der Zeit wirst du jeden Bereich lernen und dann wird alles mehr Sinn machen. Natürlich gibt es Menschen, die schneller lernen oder schon Erfahrungen haben, aber sie haben auch von Null angefangen und mit Übungen ihre Fähigkeiten gesteigert.

Kein Plan

Für jedes Ziel im Leben braucht man einen Plan. Beim Programmieren ist es nicht anders. Ein Plan beinhaltet eine ganze Reihe von Dingen, die dem Programmierer bei der Arbeit helfen wird:

  • Anforderungen
  • Entwurf
  • Test
  • Programmierung

Anforderungen

Der Programmierer muss verstehen, welchen Zweck das Programm haben wird. Oft fokussieren sich Anfänger auf nur einen Aspekt des Problems , ohne das komplette Problem zu betrachten. Du musst also wissen, was dein Programm tun soll, damit du anfangen kannst. Oft ist der Anfänger auf die Lösung eines bestimmten Problems fokussiert. Der Benutzer hingegen denkt, dass das Programm so arbeiten wird, wie es ihm versprochen wurde.

Entwerfe das  Programm

Der Programmierer muss wirklich darüber nachdenken, wie das Programm funktionieren soll. Für einen Anfänger kann das schwierig sein, weil er unsicher ist und noch nie einen Code geschrieben hat. Der Programmierer muss entscheiden, wie das Programm arbeiten wird – einschließlich, wie die Datenbanktabellen (falls vorhanden) angelegt werden. Der Programmierer muss sich erarbeiten, wie die Benutzeroberfläche aussehen und funktionieren wird. Folgende Punkte zum Entwurf solltest du dir machen:

  • Wird das Programm eine eigene Schnittstelle haben oder wird es über einen Browser arbeiten?
  • Wie sieht die Benutzeroberfläche aus?
  • Wie wird der Benutzer von einem Fenster zum anderen navigieren?

Mach den Test

Anfänger sind überrascht, wenn sie erfahren, dass der Beginn des Projektes die beste Zeit ist, über das Testen nachzudenken. Wenn du bestimmst hast, wie dein Programm getestet wird, dann wird alles andere viel leichter sein. In der professionellen Software Entwicklung ist es völlig normal zuerst Tests zu schreiben und erst dann das Programm selbst.

Programmierung

Klar, die Programmierung gehört natürlich, neben den anderen Aufgaben auch dazu, ist aber im Vergleich eher ein kleiner Part.

Debugger

Ein Debugger gibt dem Programmierer die Möglichkeit, langsam  seinen Code zu analysieren, um ihn besser zu verstehen. Dieser Schritt ist entscheidend für ein Programm, das nicht funktioniert – aber es ist genauso wichtig für ein Programm, das gut funktioniert. Nur weil das Werkzeug Debugger heißt, bedeutet es nicht, dass man diesen nicht auch für die Analyse eines korrekten Programms benutzen kann. Entweder verarbeitet es nicht alle möglichen gesetzten Eingabewerte oder – wahrscheinlicher – erkennt nicht die möglichen ungültigen Eingabewerte. Der Debugger gibt dir weitere Informationen, wenn du ein detaillierteres Verständnis von dem haben willst, was dein Programm macht.

Aufgabe/Problem verstehen

Doch wenn man eine Aufgabe hat, dann kommt es auch oft zu Problemen. Der Grund dafür ist, dass der Anfänger nicht genau weiß, wie er ein Problem oder eine Aufgabe am besten angeht.

Jede Problemlösung beginnt mit einem Plan. Dieser Plan wird als Algorithmus bezeichnet.

Ein Algorithmus ist ein Plan zur Lösung eines Problems.

Es gibt viele Möglichkeiten, um einen Algorithmus zu schreiben. Die Anweisungen zum Anschließen eines DVD-Players an einen Fernseher sind ein Algorithmus. Die Form ist nicht besonders wichtig, solange es einen guten Weg gibt, den Plan zu beschreiben und zu überprüfen. Man muss also immer über diesen Teil nachdenken und wie man es angehen wird.

Die Entwicklung eines Algorithmus (ein Plan) ist ein wichtiger Schritt zur Lösung eines Problems. Sobald wir einen Algorithmus haben, können wir es in eine Programmiersprache übersetzen. Unser Algorithmus-Entwicklungsprozess besteht aus fünf Hauptschritten.

  1. Die Beschreibung des Problems erhalten.
  2. Das Problem analysieren.
  3. Eine Skizze des Algorithmus entwickeln.
  4.  Den Algorithmus vereinfachen, indem man weitere Details hinzufügt.
  5. Den Algorithmus überprüfen.

Schritt 1: Die Beschreibung des Problems erhalten.

Dieser Schritt ist viel komplizierter als es scheint. Der Programmierer muss einen Algorithmus erstellen, der das Problem lösen wird.

Es ist ziemlich üblich, dass man eine Problem- oder Aufgabenbeschreibung erhält. Meisten enthält diese selbst einige Fehler:

  • Die Beschreibung beruht auf unbestätigten Annahmen
  • Die Beschreibung ist zweideutig
  • Die Beschreibung ist unvollständig
  • Die Beschreibung hat Widersprüche

Die Verantwortung des Entwicklers besteht darin, Fehler in der Beschreibung eines Problems zu identifizieren und diese Mängel zu beheben.

Schritt 2: Das Problem analysieren.

Das Ziel dieses Schrittes ist es, jeden Teil der Lösung des Problems zu bestimmen. In diesem Vorgang muss herausgefunden werden, welche Informationen gegeben sind und was bewiesen werden muss. Eine gute Problembeschreibung macht es einfacher, diesen Schritt durchzuführen.

Bei der Bestimmung des Ausgangspunktes sollten wir die folgenden Fragen stellen und beantworten:

  • Welche Daten sind verfügbar?
  • Wo sind diese Daten?
  • Welche Formulierungen betreffen das Problem?
  • Welche Regeln gibt es für die Bearbeitung der Daten?
  • Welcher Zusammenhang besteht zwischen den Datenwerten?
  • Welche Zwischenschritte gibt es und die Lösung vorzubereiten?

Bei der Bestimmung des Zieles müssen wir die Eigenschaften einer Lösung beschreiben. Mit anderen Worten, wie werden wir wissen, wann wir fertig sind? Folgende Fragen helfen, das Ziel der Lösung zu bestimmen.

  • Welche neuen Fakten haben wir?
  • Welche Daten haben sich geändert?
  • Welche Änderungen wurden an diesen Daten vorgenommen?
  • Was wurde ausgeschlossen?

Schritt 3: Eine Skizze des Algorithmus entwickeln.

Ein Algorithmus ist ein Plan zur Lösung eines Problems, aber Pläne kommen in mehreren Ebenen. Es ist normalerweise besser, mit einer Skizze des Algorithmus zu beginnen, die den Hauptteil einer Lösung einschließt. Es ist also ein allgemeiner Algorithmus, den man weiter bearbeiten muss.

Schritt 4: Den Algorithmus vereinfachen, indem man weitere Details hinzufügt.

Eine Skizze des Algorithmus zeigt die wichtigsten Schritte, die befolgt werden müssen, um ein Problem zu lösen. Jetzt müssen wir Details zu diesen Schritten hinzufügen, aber wie viel Details sollten wir hinzufügen? Leider hängt die Antwort auf diese Frage von der Situation ab. Wir müssen überlegen, wer (oder was) wird den Algorithmus implementieren.  Wenn unser Ziel ist, Algorithmen zu entwickeln, die von einem  Computer ausgeführt werden sollen, müssen wir die Fähigkeiten des Computers berücksichtigen und sehr viele kleine Details liefern. Allerdings könnte damit jemand anderes unseren Algorithmus verwenden, um ein Computerprogramm zu schreiben, dass den Schritten in unserem Algorithmus folgt.

Wir müssen das Niveau anpassen, so dass der Programm die Fähigkeiten des Computers erfüllen kann. Wenn man komplexere Aufgaben hat, sollte man diesen Prozess mehrmals durchführen und dabei Algorithmen entwickeln, die mehrere Situationen und Szenarien enthalten. Wenn du dann die Details hinzufügst, solltest du erst dann aufhören, wenn es keinen Nutzen für eine weitere Verfeinerung gibt oder du weißt wie man das nun als Programm schreibt. Diese Art von Verfeinerung ist nützlich für die Entwicklung eines detaillierten Algorithmus. Das macht man, indem man Schritt für Schritt neue Details hinzufügt und aus einem allgemeinem Algorithmus, einen detaillierten schafft.

Schritt 5: Den Algorithmus überprüfen.

Am Ende muss man den Algorithmus überprüfen. Wonach suchen wir? Zuerst müssen wir den Algorithmus Schritt für Schritt durcharbeiten, um festzustellen, ob er das ursprüngliche Problem lösen wird oder nicht. Sobald wir zufrieden sind und der Algorithmus eine Lösung für das Problem bietet, fangen wir an, nach anderen Dingen zu suchen. Die folgenden Fragen solltest du dir immer stellen, wenn du einen Algorithmus überprüfen willst. Diese Fragen zu stellen und ihre Antworten zu suchen, ist ein guter Weg, um Fähigkeiten zu entwickeln, die auf die nächste Aufgabe angewendet werden können.

  • Löst dieser Algorithmus ein ganz bestimmtes Problem oder löst er ein allgemeineres Problem?
  • Wenn es ein sehr spezifisches Problem löst, sollte es verallgemeinert werden?
  • Kann dieser Algorithmus vereinfacht werden?
  • Ist diese Lösung der Lösung eines anderen Problems ähnlich? Wie sind sie gleich? Wie sind sie anders?

Zusammengefasst

Wie du siehst, gehört zum Programmieren selbst nicht nur das Eintippen von Code. Bevor man eine Zeile Quelltext geschrieben hat, kann es sein, dass du dir Stunden lang Gedanken über die Lösung machen musst.  Wenn du lernen möchtest wie man diese Dinge durcharbeitet bevor man tatsächlich programmiert, schaust du am besten mal auf dieser Webseite zum Programmieren lernen vorbei.