Programmieren auf nem guten weg?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
ich lernte bzw machte den Fehler zu glauben programmieren wie in der Schule lernen zu können: auswendig lernen und dann erst anwenden.

Es kommt darauf an, wie du bei dieser Methodik deine Lernpakete zeitlich sowie im Umfang aufteilst. Um Informationen im Gedächtnis aufnehmen zu können, bedarf es in der Regel mehrmalige Wiederholung. Außerdem merkt man sich wenige Informationen in der Regel besser auf einmal, als viele. Denke dabei einfach daran, wie du in der Schule (vermutlich) Gedichte gelernt hast: Vers für Vers, Strophe für Strophe.

Ich würde dir raten, spätestens nach jedem Kapitel/Abschnitt eines Tutorials eine Übungs-/Praxisstrecke einzulegen. Wenn du bspw. Variablen kennenlernst, liest du dir erst die Theorie an und versuchst dich dann praktisch daran. Wenn du meinst, das Thema halbwegs verstanden zu haben, machst du weiter.

Deine Lernzeit pro Tag beschränkst du bestenfalls. Alle Themen nacheinanderweg durchzuarbeiten, bringt dir nichts. Da du selbst mit zwischengeschobenen Übungsaufgaben frühere Informationen leicht wieder vergisst. Lernpausen sind daher wichtig. In denen kann dein Gehirn die zuvor gesammelten Daten verarbeiten.

Außerdem wäre es gut, alte Themen immer wieder auch noch einmal in irgendeiner Form zu wiederholen. Ob nun separat oder in Kombination mit neuen Themen.

Darum versuchte ich dann als nächstes was zu machen das mich auch motivierte: eine gui zu erstellen (...) Das klappt mit java nicht, ich kam kaum zurecht (...)

Ja, GUI-Programmierung (mit Toolkits wie Swing, JavaFX, o.ä.) solltest du als Anfänger stets erst einmal nach hinten schieben, so lange du in Grundlagenthemen wie der OOP nicht halbwegs sicher bist. Du machst es dir sonst nur selbst schwer und lernst dir im schlechtesten Fall noch schlechte Vorgehensweisen/Programmstrukturen an.

Bei Python würde ich dir dasselbe raten. Fokussiere dich erst auf die Kernfunktionalitäten (Variablen, Operatoren, Arrays/Listen, Kontrollstrukturen). Im Anschluss kann man nach und nach die Komplexität steigern. Eine To-Do-Liste lässt sich genauso gut in einer Konsolenanwendung zusammenbauen.

2.Darum wechselte ich jetzt zu Python um damit leichter motivierende eigene projekte bauen zu können.

Ich hätte dir zu Processing geraten. Trotz der dort niedrigeren Schwelle, um grafische Oberflächen zu gestalten, wäre es trotzdem gut, mehr Geduld in den eigenen Lernprozess einfließen zu lassen.

3.Zwischendrin machte ich einen coursera kurs zu: (...)

Auch so etwas würde ich eher nicht empfehlen, da das Risiko besteht, Informationen (z.B. zur konkreten Syntax), die noch nicht fest verankert sind, zu vermischen oder wieder zu vergessen.

Aber: ich kann außer sehr kleine apps kaum etwas programmieren.

Die Gründe kannst du hinterfragen und anschließend versuchen aufzuarbeiten (z.B. indem du zu Themen noch einmal recherchierst / sie wiederholst).

Bezüglich der Herangehensweise an Projekte rate ich stets zu folgendem Muster: Erst analysieren und planen, dann umsetzen. Solltest du Letzteres von Anfang an versuchen, wirst du tendentiell scheitern bzw. Bananensoftware entwickeln.

Bei einer vernünftigen Planung würde man des Weiteren Kernfunktionalitäten ermitteln, auf die man sich natürlich zuerst (und ausschließlich) konzentriert. Ohne diesen Rahmen kann ein Projekt in seiner Komplexität ausarten und eine gute Struktur bekommt man nachträglich vielleicht ebenso nicht mehr hinein.

Meine Frage: bin ich auf einem guten Weg?

Entsprechend deiner Äußerung, dass du dran bleiben möchtest: Ja. Zu mehr kann man wohl kaum eine Aussage treffen.

Inkognito-Nutzer   20.01.2024, 19:14

Danke für die ausführliche Antwort. Ich weiß ich werde nochmal an die Grundlagen ranmüssen - jetzt aber dank einigen gelernten dingen bin ich motivierter wie du sagst eigene projekte nach jeder Lektion zu bauen.

Das wird mein nächstes Ziel sein im weiteren lernprozess. So dass diesmal die Themen gleich eine eigene Anwendung finden.

Und auch das mit dem zuerst die Projekte durchdenken vor dem Programmieren werde ich mir vornehmen für die nächsten geh/programmier versuche

0
Inkognito-Nutzer   20.01.2024, 19:25

und auch wenn das nicht alle so finden gerade weil ich oft las guis bauen sollte noch warten: mir hat es geholfen um motiviert zu bleiben.

Und ich glaube das wird es auch für die weiteren wiederholungen alter lektionen sein.

Wobei ich dann doch vieles behalten habe - aber eben nicht soviel dass ich jetzt wirklich "programmieren" kann.

0

Programmieren lernt man nicht mal so eben in ein paar Monaten, es ist ein immer fortdauernder Prozess... und wichtig ist beides: Theorie und Praxis.

Ich sehe deinen ersten Ansatz nicht direkt als Fehler an - immer, wenn man sich mit etwas Neuem beschäftigt, muss man irgendwo einsteigen... und wenn man nicht didaktisch geleitet wird, wird man immer gewisse Umwege gehen.
Praxis-Orientierung, wie etwa durch eigene Projekte ist gut, gerade für Anfänger auch, um motiviert zu bleiben. Aber wenn du zu sehr in ein Projekt vertieft bist, wendest du eher an, was du bereits kennst und weniger neues.
Wissen erweitern geschieht dann auch darüber, etwas über die Programmiersprache zu lernen, Beispiele von anderen anzuschauen, Theorie zu lernen.

Theorie umfasst unter anderem Datenstrukturen wie: Arrays, Listen, Hashmaps/Dictonaries, Objekte, Bäume. Und ganz klassische Grundalgorithmen wie Schleifen, Rekursion, Sortieralgorithmus,... irgendwann dann auch ein Verständnis von Speicher und die Funktionsweise/ das Verhalten von Parameter-Übergabe an Funktionen. In der Objektorientierung kommen dann Objektstrukturen/Vererbung und Entwurfsmuster (Gang of Four) dazu.

Strukturierung von Programmen ist etwas, das immer wichtig ist... und ebenfalls sowohl Theorie/Best Practices, als auch Übung in der konkreten Umsetzung verlangt.

Es kann schon sinnvoll sein, auch mal zu schauen, wie andere Programmiersprachen aussehen/funktionieren, aber du solltest dich nicht verzetteln... Besser erst mal auf eine Sprache konzentrieren. Welche Sprache am Besten geeignet ist: Darüber streiten viele... Python ist zumindest beliebt, hat aber - ernsthaft gesehen - seine ganz eigene Herangehensweise. Auf Frageseiten wie "Stackoverflow" wird manchmal zu Problemen die Frage gestellt: "What is the most pythonic way to do this"

Dass du bisher nur kleine Projekte realisieren kannst, liegt wahrscheinlich zum Einen daran, dass du bisher nur Ideen zu kleinen Projekten hast und zum anderen, dass dir noch Dinge fehlen, z.B. Wissen um Datenbanken/Speichermöglichkeiten, Netzwerkschnittstellen, etc... Wahrscheinlich brauchst du da erst mal Input von "außen", um überhaupt einen Überblick zu bekommen, was es gibt.

Statt einen Königsweg zu kennen, ist denke ich Motivation und dran bleiben wichtiger.

Inkognito-Nutzer   21.01.2024, 08:55

Danke für deinen Eindruck.

Gut dann bleib ich weiter dran ..vlt war das am anfang mit viel Theorie zuerst lernen ja doch nützlich für einen Überblick.

Mal sehen wies wird ab jetzt

0