Sollte man als Neuling auch schon herausfordernde Projekte starten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kotelettklopfer
User
Beiträge: 22
Registriert: Samstag 15. Januar 2022, 13:34

Moin moin,

zur Zeit bringe ich mir im Selbststudium Python bei.
Dazu nutze ich ein Buch "Python von Kopf bis Fuß". Das Buch dieser Reihe machte mir bei Java schon einen guten Eindruck.

Jetzt meine Fragen: Sollte man als Anfänger strikt nach Buch arbeiten oder auch eigene Ideen umsetzen?
Umsetzen sieht dann auf Grund der mangelnden Kenntnisse oft so aus, das man sich Input aus dem Internet holt oder Foren wie diesem. Das heißt, eigentlich besteht der Programmcode dann aus 70% Copy Paste mit etwas customizing.

Mir ist bewusst , dass jeder einen anderen Lernstil hat, aber eure Erfahrung kann vielleicht auch etwas am eigenen Lernstil ändern :-)

Gruß
imonbln
User
Beiträge: 149
Registriert: Freitag 3. Dezember 2021, 17:07

Ich finde, mal sollte Technik durch Spielen erlernen. Und mit einer neuen Programmiersprache spielt man am besten, indem kleine Probleme löst werden.

Idealerweise sind es Probleme, die man selbst hat und nicht hypothetische aus einem Buch, von daher ist das lernen aus einem Buch nicht schlecht, um die Konzepte zu verstehen, aber parallel sollte man immer kleine Aufgaben lösen, um reale Programmiererfahrung zu sammeln. Das Verständnis einer Programmiersprache kommt erst mit der Benutzung der selbigen.

Von daher rate ich dir schon kleine Projekte parallel mit Python zu machen und wenn du dabei Lösungen von anderen Kopierst, ist das voll Okay, solange du versucht die Lösungen zu verstehen ist, lernen durch Nachahmen eine anerkannte Lernform, also nutze sie. Alles im allen gibt es nur diese 3 Strategien:
  • Lernen durch Versuch und Irrtum
  • Lernen durch Nachahmung
  • Lernen durch Einsicht.
Und zumindest für mich gilt, im Codereview habe ich immer am meisten über Programmiersprachen gelernt, unabhängig, ob jemand meinen Code gereviewt hat oder ich, anderen Code verstehen musste.
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Kotelettklopfer hat geschrieben: Mittwoch 19. Januar 2022, 14:19 Jetzt meine Fragen: Sollte man als Anfänger strikt nach Buch arbeiten oder auch eigene Ideen umsetzen?
Umsetzen sieht dann auf Grund der mangelnden Kenntnisse oft so aus, das man sich Input aus dem Internet holt oder Foren wie diesem. Das heißt, eigentlich besteht der Programmcode dann aus 70% Copy Paste mit etwas customizing.
Ich sehe es ein bisschen gemischt: Du solltest zunächst die Grundlagen drauf haben (Datentypen, Schleifen, Bedingungen, Funktionen, Klassen usw.). Das lernst du vermutlich gut mit dem Buch und der offiziellen Python-Doku. Sobald das mehr oder weniger zuverlässig klappt, kannst du dich an eigene Projekte wagen, welche wahrscheinlich mit der Zeit auch immer komplexer werden. Dabei schaut man sich natürlich zunächst um, wie andere es gelöst haben. Man besten versteht man dieses Vorgehen und kann dann reflektieren, ob es gut ist und es ggf. selbst für das eigene Problem verwenden.

Bild
makcode
User
Beiträge: 13
Registriert: Sonntag 27. Juni 2021, 16:37

Hi,

ich lerne auch schon einer Weile Python und habe die Erfahrung gemacht, dass beides sinnvoll ist. Ich glaube es ist durchaus sinnvoll die Grundlagen (Datentypen, Schleifen etc...) anhand eines Kurses (Buch, eLearning) zu lernen. Die gestellten Aufgaben bzw. Beispiele kannst du selbst nochmal ein bisschen erweitern, in dem du vll nochmal selbst kleine Features in das Programm einbaust oder vll nach deinen Vorstellungen das Programm nochmal ein bisschen änderst.

Parallel dazu kannst du auch schon mal einige Ideen für ein eigenes Projekt sammeln. Idealerweise sollte es ein Projekt sein, was du selbst später verwenden möchtest oder worauf du einfach Bock hast. Wichtig ist meines Erachtens, dass du dir ein Projekt suchst, was nicht zu schwer bzw. zu herausfordernd ist. Gerade als Anfänger sind schon die "einfachsten" Programme teilweise sehr anspruchsvoll, selbst wenn man schon vorher im Kopf hat, wie das ungefähr funktionieren könnte. Man wird immer wieder vor Probleme gestellt, die so im "Grundlagenkurs" nicht bzw. nicht ausführlich behandelt wurden.
FrankM
User
Beiträge: 26
Registriert: Dienstag 20. Juli 2021, 08:51

Ich habe mir auch versucht Python beizubringen. Am Anfang mit Büchern, Webseiten für Einsteiger usw. Dann habe ich das ein oder andere nachgebaut und ein wenig mit rumgespielt. Am Ende war mir das persönlich zu langweilig.

Habe mich dann hingesetzt und nachgedacht, was kann ich für meinen Arbeitsprozess auf meinem System bauen, was mir hilft.

Das erste wurde dann ein PyQt5 Userinterface für Wireguard. Danach war das so weit fertig, das was komplexeres her musste. Ich habe mir dann ein UI für Restic gebaut, wieder mit PyQt5 und ganz wenigen Kenntnissen. Ich glaube, da bin ich jetzt zwei Jahre dran, mit längeren Pausen usw. :)

Ich habe unendlich viel gelernt, an Hand vieler Probleme die auftauchten. Mit Webseiten und Foren muss man vorsichtig sein, wenn man wenig Kenntnisse hat hilft das einem nicht unbedingt weiter. Ein Beispiel, ich hatte am Anfang versucht die Oberfläche mit dem Designer zu bauen, habe aber ganz schnell verstanden, ohne Kenntnisse wie das zusammenhängt wird das nichts. Also, bin ich den schweren Weg gegangen und habe jede Zeile einzeln eingegeben, so lange bis ich sie verstanden hatte. Heute könnte ich die Oberfläche auch mit dem Designer bauen, denke ich und steht auch demnächst auf dem Plan.

Mein persönliches Fazit. Beides machen. Grundlagen immer wieder lesen und mit rumspielen und ein "Projekt" wo man dran wächst. Heute erwische ich mich ständig dabei, den vorhandenen Code zu optimieren. Keine neuen Funktionen, sondern nur anpassen. Irgendwo hat man was gelesen, wie man es besser machen kann usw. Das macht mir sehr viel Spaß.

Und wenn es mal nicht klappt, Entwicklungsumgebung zu machen und eine Woche nicht anfassen ;)
Kotelettklopfer
User
Beiträge: 22
Registriert: Samstag 15. Januar 2022, 13:34

Danke für die vielen verschiedenen Meinungen und Arten wie ihr damit umgeht / umgegangen seid.
Immer ganz interessant sowas zu erfahren.

Zur Zeit ist es bei mir noch ein "erweitern der im Buch vorgegebenen Übungen". Daraus ergeben sich dann Ideen die ich dann versuche zu lösen.
Mein erstes "großes" Projekt soll ein Haushaultsbuch werden. Gerne mit GUI. Aus der Java Programmierung weiß ich aber, das dies eine Königsdisziplin sein soll / ist.
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

FrankM hat geschrieben: Sonntag 23. Januar 2022, 21:20 [...]
Das erste wurde dann ein PyQt5 Userinterface für Wireguard.
Als erstes Projekt... nope, first things first. Wer in Python mit Qt und Wireguard anfängt, hat vermutlich schon ein wenig Programmiererfahrung. Kein Problem, aber da sollte man vielleicht differenzieren...

Es gibt da ja im Grunde mehrere Sorten von Python-Einsteigern. Da gibt es jene, die Vorerfahrungen haben -- mein Beispiel bin (Überraschung) ich selbst, der schon auf einem HP97-Tischrechner anfangen, später über Basic, Assembler, C, C++ und Perl gegangen ist -- und dann irgendwann Python ausprobiert hat und es viel cooler fand als Perl. Aber ich bin ein alter Mann, und... heute gibt es halt andere Python Anfänger mit unterschiedlichen Erfahrungsschätzen, für manche ist Python sogar die erste Sprache.

Und da wird es dann... schwierig, fürchte ich. Die erste Programmiersprache ist die mit Abstand schwierigste, denn dafür muß man nicht nur die Sprache, sondern vor allem die hohe Kunst des Programmierens lernen. Die Strukturierung von Daten und Abläufen, die Aufteilung von Aufgaben in Funktionen, und dann die Objektorientierung, die im Prinzip eine andere Denkweise ist und dann... doch wieder nicht.

Insofern glaube ich, daß es keinen Königsweg gibt. Aber ich sehe eine Menge interessierter Einsteiger, die es versuchen und dann wieder aussteigen, weil es ihnen entweder zu langweilig oder zu kompliziert wird. Und ich habe keine kluge Idee, wie man sie bei der Stange halten könnte... :-(
Antworten