Ratloser Programmieranfänger x.x

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
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Hallo liebe Python Gemeinde,

ich brauch mal wieder eure Hilfe... :P

nachdem ich nun einige Bücher/Dokumentation/Tutorials bis hin zur Objektorientierung durchgearbeitet habe, würde ich gerne mal was kleines, für mich nützliches, programmieren.
Ich habe die grundlegenden Sachen soweit verstanden, auch wenn ich sicher nicht alle Funktionen für Strings, Listen, etc. kenne, denke ich das es reichen sollte, um zumindest etwas kleines zu machen.
Doch irgendwie weiß ich nicht recht wie ich anfangen soll :(.
Ich würde gerne mit der Webprogrammierung anfangen, um kleine Sachen für meine Homepage zu programmieren (damit die URL nicht immer nur auf eine Wartungsseite linked :mrgreen: )
Da dies hier ja meine erste Programmiersprache ist, weiß ich nicht so wirklich wie man jetzt vorgeht @_@
Zum Beispiel würde ich gern eine Login-Funktion + Registrierung-Funktion programmieren...
Das ganze dann halt in ne my sql oder ähnliche Datenbank speichern...

Ich fühle mich gerade ein wenig hilflos :oops:

Hoffe ihr könnt mir irgendwie helfen :(

Gruß

desmater
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

desmater hat geschrieben:Ich würde gerne mit der Webprogrammierung anfangen, um kleine Sachen für meine Homepage zu programmieren (damit die URL nicht immer nur auf eine Wartungsseite linked :mrgreen: )
Da dies hier ja meine erste Programmiersprache ist, weiß ich nicht so wirklich wie man jetzt vorgeht @_@
Zum Beispiel würde ich gern eine Login-Funktion + Registrierung-Funktion programmieren...
Das ganze dann halt in ne my sql oder ähnliche Datenbank speichern...
Du könntest dir mal Django ansehen. Django ist ein sehr mächtiges Framework für Python Webanwendungen. Eine leichtgewichtigere Alternative ist beispielsweise Bottle.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

/me hat geschrieben: Du könntest dir mal Django ansehen. Django ist ein sehr mächtiges Framework für Python Webanwendungen. Eine leichtgewichtigere Alternative ist beispielsweise Bottle.
Das dachte ich anfangs auch, allerdings habe ich dann hier im Forum einen Beitrag gelesen, in dem stand das man als Anfänger nicht direkt auf Frameworks zurück greifen solle? Das hatte mich dann doch sehr verunsichert :/
Allerdings weiß ich jetzt auch nicht, wie Anfänger in den Posts definiert war :K
BlackJack

@desmater: Da gibt es geteilte Meinungen. Wenn Du etwas über die Materie lernen willst, kannst Du unterhalb von Webrahmenwerken ansetzen. Wenn Du aber eine Webanwendung schreiben möchtest, dann solltest Du das mit einem Rahmenwerk machen. Denn sonst würdest Du unnötigerweise nur selber alles schreiben, was es in einem Rahmenwerk in besser, sicherer, und getestet, bereits gibt. Gerade bei so Sachen wie Authentifizierung oder SQL-Abfragen erstellen, kann man als Anfänger Fehler machen, die man in Anwendungen, die über das Internet bereit stehen, lieber nicht haben möchte.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

desmater hat geschrieben:Das dachte ich anfangs auch, allerdings habe ich dann hier im Forum einen Beitrag gelesen, in dem stand das man als Anfänger nicht direkt auf Frameworks zurück greifen solle?
Ich würde mich nicht Anfänger bezeichnen (YMMV) und ich habe bisher bei Verwendung von Python im Web immer ein Framework benutzt. Ich weiß theoretisch was ich tun müsste um ohne Framework zu arbeiten und habe weder Lust dazu, noch sehe ich Vorteile darin.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Also ich möchte schon gerne verstehen, was so vor sich geht, wenn ich da etwas programmiere, daher denke ich mal sollte ich erst einmal darunter ansetzen oder sehe ich das falsch?
Wo fange ich da dann am besten an und welche Lektüre/Dokumentationen gibt es in diesem Bereich?
Nachdem ich dann verstanden habe was wie funktioniert, würde ich mich dann erst einmal in ein entsprechendes Framework einarbeiten.
Oder ist es eigentlich im Endeffekt unnötig zu wissen wie ich das gleiche auch ohne eben ein Framework erreichen könnte?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

desmater hat geschrieben:Also ich möchte schon gerne verstehen, was so vor sich geht, wenn ich da etwas programmiere, daher denke ich mal sollte ich erst einmal darunter ansetzen oder sehe ich das falsch?
Wenn es dich interessiert, dann setz weiter unten an. Die Frage ist wie weit nach unten du gehen willst.

Ich frage einfach mal: Schreibst du auch Sortieralgorithmen für Listen selber?
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Hm, gab's das ein oder andere mal in einem der Bücher, fand ich unnötig, da dann ne Seite später die entsprechenden passenden Funktionen vorgestellt wurden. Also nein eigentlich nicht.
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Wenn du gerne Webseiten programmieren willst, könnten auch Kenntnisse in HTML und Datenbanken nicht schaden. Würdest du das auch noch alles lernen müssen? Ansonsten würde ich ggf. ein kleineres Projekt zum Anfang vorschlagen. So kannst du Python üben, ohne dich mit zusätzlichen Details zu verzetteln. :mrgreen:
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Kebap hat geschrieben:Wenn du gerne Webseiten programmieren willst, könnten auch Kenntnisse in HTML und Datenbanken nicht schaden. Würdest du das auch noch alles lernen müssen? Ansonsten würde ich ggf. ein kleineres Projekt zum Anfang vorschlagen. So kannst du Python üben, ohne dich mit zusätzlichen Details zu verzetteln. :mrgreen:
html is jetzt nicht das problem, hab zwar nicht immer alle tag's im Kopf, aber die sind ja schnell nach geschaut :mrgreen:
Datenbanken hab ich leider nur Datenbankdesgin bis jetzt iner Schule gehabt, da bin ich nebenbei dran mir SQL näher zu bringen :)
An was denkst du denn z.B. wenn du ein kleineres Projekt sagst? Hab leider noch nicht wirklich nen Überblick was mit wie viel Aufwand realisierbar ist (woran ich aber schon arbeit :x )
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Naja, das hängt natürlich stark davon ab, welche Sachen du bereits gelernt hast. Ich würde eben vermeiden, zu viele Sachen gleichzeitig zu schnell lernen zu wollen. Das kann schnell schief gehen.

Lieber erstmal die Sachen, die du bisher gelernt hast, sammeln und schauen, was du damit schon bauen könntest. Dann kannst du die bisschen trainieren. Dabei werden fast schon zwangsläufig weitere Themen hinzukommen. Du musst dich aber nicht von Anfang an mit zu vielen Themen überhäufen. Also erstmal schauen, wie weit du kommst ohne GUI, ohne Webkram, ohne Datenbank, vielleicht mit bisschen OOP.

Für Ideen kannst du dich ja hier im Forum umgucken, oder es gibt auch einige Websites mit leichteren Übungsaufgaben. Letztendlich fand ichs immer am besten, Sachen zu schreiben, die mir dann auch quasi täglich bei irgendwas weiterhelfen können, aber dann ist es sehr speziell und ich kann nichts empfehlen.

Habe ich richtig verstanden, dass du jetzt sehr viel gelesen und verstanden hast, aber fast keine Übungsaufgaben programmiert hast? Es gibt da einige Unterschiede zwischen verstehen und anwenden können. Noch ein Grund, nicht allzu schnell voran zu stürmen.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Für die grundlegenden Sachen, wie z.B. Listen, Schleifen hab ich natürlich schon einige Übungsaufgaben gemacht. Sowohl eigene kleine, als auch die vielen Übungsaufgaben aus den verschieden Büchern / Kursen. Wofür mir noch Übung definitiv drin fehlt, ist zu erkennen wann welche Datenstrukturen wie anzuwenden sind, in OOP und, was leider immer in meisten Büchern/Kursen, fehlt wie man den jetzt letztlich von der Idee zum Programm kommt. Mir ist dieser Weg leider noch nicht ganz klar. Wenn ich mir z.B. Code von anderen ansehe, verstehe ich diesen eigentlich meistens realtiv gut, doch fällt mir dann immer auf, das ich selber nie so auf diese Lösung gekommen wäre... Liegt das an der noch fehlenden Erfahrung, oder fehlt mir hier noch ein entscheidender Schritt?
Ich schätze das mir einfach noch viel Praxiserfahrung fehlt. Sehe ich das richtig? :K
BlackJack

@desmater: Von der Idee zum Programm kommt man in der Regel dadurch, dass man das zu lösende Problem solange in kleinere Teilprobleme zerlegt, bis die einzelnen Teilprobleme so klein sind, das man sie recht einfach mit ein paar Zeilen Code lösen kann. Diese kleinen Teillösungen setzt man dann zu grösseren Teillösungen zusammen. Bis man am Ende ein Programm hat, welches das Ausgangsproblem löst.

Die Teillösungen sind meistens in der Form von Funktionen. Dort wo man zusammengehörige Daten und Funktionen findet, kann man beides zu Klassen zusammenfassen.

Die Wahl der Datenstrukturen richtet sich nach den Zugriffsmustern, die man für die Problemlösung benötigt. Die verschiedenen Containertypen haben bestimmte Eigenschaften, zum Beispiel was die Laufzeit angeht oder ob die Elemente eine Reihenfolge haben oder nicht.

Und ja, mit der Erfahrung werden Programmentwürfe und -implementierungen besser. :-)
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Hab da noch mal ne kleine Frage zu diesem Thema hier ^^.

Und zwar folgendes:
Nach dem ich jetzt neben dem üben/lernen, immer weiter darüber nachgedacht habe, was ich denn mal programmieren könnte, ist mir pygame eingefallen. Da ich a) selber sehr gerne Spiele spiele, b) schon von immer davon geträumt habe selber Spiele zu entwickeln und c) ich diesen Traum gerne iwie mal verwirklichen möchte, dachte ich wäre es evtl. interessant mich mit pygame zu beschäftigen. Allerdings kam dann die Frage auf, ob ich mich vorher noch mit GUI's im allgemeinen beschäftigen sollte, oder ob das mit pygame und der Dokumentation von alleine mit kommt.
Auf der Seite von pygame sind ja einige Anfänger Tutorials verlinkt, die sich mit pygame beschäftigen und auch Python Grundlagen enthalten. Diese wollte ich dann anfangs erst einmal durcharbeiten um mich in pygame langsam einzuarbeiten.

Oder sollte ich lieber davon erst einmal die Finger lassen (Und ja, mir ist klar, das ich damit nicht den nächsten Bestseller liefern werde haha :mrgreen: )

Lieben Gruß
desmater
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Du musst dich nicht mit GUIs auskennen, um mit Pygame arbeiten zu können. Die größe Umgewöhnung für dich wird sein, dass du ereignisorientiert arbeiten musst und deine Programme nicht mehr linear abgearbeitet werden. Versuch dich einfach mal dran und schreib ein kleines Spiel. Ein Tetris-Klon bietet sich hier zum Beispiel an.
Das Leben ist wie ein Tennisball.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Alles klar danke für das Feedback, dann werde ich mich mal ein anfangen ein wenig einzuarbeiten und sehen wie ich klar komme :).
Durch diesen Coursera Kurs hab ich schon erste kleinere Erfahrungen damit gemacht. War er doch für etwas gut :D
Antworten