Brauche Starthilfe

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
xanox
User
Beiträge: 5
Registriert: Dienstag 13. Mai 2008, 00:48

Hallo,
ich habe nun am kommenden Donnerstag meine letzte zentrale Matheprüfung hinter mir und habe mir für die Sommerferien vorgenommen, mich ausgibig mit einer Programmiersprache zu befassen.
Durch anderen Foren habe ich erstmal nach einer passenden Programmiersprache gesucht und bin auf Python gestoßen.
Ich habe einige Erfahrungen, nicht das ihr meint, ich wüsste nicht um was es geht, nur ich will mein Wissen erweitern. Ich habe mich schon an VB.net versucht und kenne einige Programmiersprachen mit ihren Eigenschaften.
Nun war ich heute länger auf der Python Webseite unterwegs und habe fast zu 50% Begriffe gelesen, unter denen ich mir nicht viel vorstellen kann.

Nun wäre das erste die Lizenz. Gibt die Lizenz aus, ob man mit Programmiersprachen kostenpflichtige Programme erstellen kann und was man damit für Rechte hat? Öfters höre ich die GPL.
Python verfügt über eine einfache Entwicklungsumgebung: IDLE.
Was ist eine IDLE?

Zudem kenne ich nur sehr wenige Begriffe, wofür man Python verwenden kann.

* Web Programming
* CGI, Zope, Django, TurboGears, XML
* Databases
* ODBC, MySQL
* GUI Development
* wxPython, tkInter, PyGtk, PyQt
* Scientific and Numeric
* Bioinformatics, Physics
* Education
* pyBiblio, Software Carpentry Course
* Networking
* Sockets, Twisted
* Software Development
* Buildbot, Trac, Roundup, IDEs
* Game Development
* PyGame, PyKyra, 3D Rendering

Wie seit ihr damals angefangen?
Womit habt ihr angenfangen zu lernen?
Muss ich die Begriffe alle wissen?
Ich hatte zwar schon mal in Vb.net gute Grundkenntnisse, jedoch weiß ich nicht ob Python eine Sprache ist, mit der man richtig durchstarten kann?

Ich danke euch für eure Hilfe :wink:
lunar

xanox hat geschrieben:Nun wäre das erste die Lizenz. Gibt die Lizenz aus, ob man mit Programmiersprachen kostenpflichtige Programme erstellen kann und was man damit für Rechte hat?
Die Lizenz regelt die Rechte dritter an einem Programm. Anders als bei einem "echten" Gegenstand erwirbst du bei einer Software nie den Besitz, wirst also nie Eigentümer der Software, sondern erhältst nur bestimmte Rechte. Das wären beispielsweise Nutzungsrechte, Verbreitungsrechte oder Änderungsrechte. Bei kommerziellen, proprietären Programmen erhält man in der Regel nur ein äußerst eingeschränktes Nutzungsrecht.

Freie Software hebt sich da ab, da sie über reine Nuzungsrechte auch weitgehende Verbreitungs- und Modifikationsrechte gibt.

Eine Lizenz betrifft also nicht nur kommerzielle Programme, es betrifft jeder Art von Quellcode allgemein! Das gilt für fertige Endbenutzer-Programme genauso wie für Bibliotheken oder Interpreter/Compiler für Programmiersprachen.
Öfters höre ich die GPL.
Wikipedia hilft dazu ;)
Python verfügt über eine einfache Entwicklungsumgebung: IDLE.
Was ist eine IDLE?
Es gibt nur *die* IDLE, das ist die Entwicklungsumgebung, welche mit Python ausgeliefert wird. Allerdings kommt es mit IDLE immer wieder zu Problemen, zudem ist sie auch nicht so mächtig wie andere Software in diesem Bereich.
Zudem kenne ich nur sehr wenige Begriffe, wofür man Python verwenden kann.
*Man* kann Python für alles verwenden, ich persönlich beispielsweise kann nur einen Bruchteil der genannten Begriffe abdecken. So geht es wohl den meisten, die diese Aufzählung lesen. Du hast da enorm umfangreiche Betätigungsfelder erwähnt, die kaum einer allein alle abdecken kann. Insofern sollte es dich nicht allzu sehr beunruhigen, wenn *Twisted* für dich ein Rätsel ist. Für mich ist es das auch, und ich bin nun schon ein einige Zeit mit Python unterwegs ;)
Wie seit ihr damals angefangen?
Womit habt ihr angenfangen zu lernen?
Learning by doing ;)
Muss ich die Begriffe alle wissen?
Bewahre Gott ;) Wir sind hier nicht in der Schule, hier *musst* du nichts wissen. Fang einfach anhand irgendeines Projekts an, und lerne das, was du brauchst, nebenbei. Alles von vorneherein zu lernen, ist ein zum Scheitern verdammter Ansatz.
Ich hatte zwar schon mal in Vb.net gute Grundkenntnisse, jedoch weiß ich nicht ob Python eine Sprache ist, mit der man richtig durchstarten kann?
Wenn Python dir gefällt und deine persönliche Motivation groß genug ist, kannst du damit "richtig gut durchstarten". Fehlt einer der beiden Faktoren, wird das schwer, aber das ist bei jeder Sprache so...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo xanox, willkommen im Forum,
xanox hat geschrieben:Nun wäre das erste die Lizenz. Gibt die Lizenz aus, ob man mit Programmiersprachen kostenpflichtige Programme erstellen kann und was man damit für Rechte hat? Öfters höre ich die GPL.
Die Lizenz kann regulieren, ob du mit einer Implementation einer Programmiersprache kostenpflichtige Programme erstellen darfst. Aber die Lizenz von CPython reguliert dies in keiner Weise, d.h. du bist frei mit deinem Programm zu machen was du willst, also es auch unter jede beliebige Lizenz zu stellen.
Die GPL ist eine sehr bekannte Lizenz die mit Python an sich nicht viel zu tun hat. Python-Programme können GPL-lizensiert sein, einige sind dies auch tatsächlich.
xanox hat geschrieben:
Python verfügt über eine einfache Entwicklungsumgebung: IDLE.
Was ist eine IDLE?
Die IDLE ist eine Entwicklungsumgebung, wie ahem, Visual Studio oder Eclipse. Nur kleiner und relativ unpopulär.

Zudem kenne ich nur sehr wenige Begriffe, wofür man Python verwenden kann.
xanox hat geschrieben: * Web Programming
* CGI, Zope, Django, TurboGears, XML
* Databases
* ODBC, MySQL
Erstellen von Webseiten. Die Daten werden aus einer Datenbank oder meinetwegen auch XML geholt und dann mittels Python verarbeitet und Mithilfe von Django, TurboGears oder Zope dargestellt (die kannst du dir in etwa wie Python-Programme vorstellen).
xanox hat geschrieben: * GUI Development
* wxPython, tkInter, PyGtk, PyQt
Erstellen von grafischen Oberflächen. Die Linux Leute, so wie Lunar und ich, können sich nicht einigen, wie man Oberflächen am besten darstellt, daher gibt es gleich mehrere Möglichkeiten so etwas zu machen (eben über PyQt oder PyGTK).
xanox hat geschrieben: * Scientific and Numeric
* Bioinformatics, Physics
* Education
Wissenschaftliche und Bildungszwecke. Also etwa verarbeiten von Gensequenzen oder Analysieren von Signalen.
xanox hat geschrieben: * pyBiblio, Software Carpentry Course
Puuuh, da müsst ich selbst nachsehen, was das sein sollte ;)
xanox hat geschrieben: * Networking
* Sockets, Twisted
Kommunikation über Computernetzwerke.
xanox hat geschrieben: * Software Development
* Buildbot, Trac, Roundup, IDEs
Dinge die einem die Softwareentwicklung vereinfachen. Sind aber erst ab einer bestimmten Größenordnung der zu entwickelnden Software nützlich.
xanox hat geschrieben: * Game Development
* PyGame, PyKyra, 3D Rendering
Spieleentwicklung.
xanox hat geschrieben:Wie seit ihr damals angefangen?
Womit habt ihr angenfangen zu lernen?
Angefangen habe ich mit ziemlich blödsinnigen Spielzeugprogrammen. Die Schwierigkeit dabei ist eben etwas zu finden, was nicht trivial ist (ergo kein Lerneffekt) aber auch nicht zu kompliziert ist (ergo beim Scheitern keine Motivation).
xanox hat geschrieben:Ich hatte zwar schon mal in Vb.net gute Grundkenntnisse, jedoch weiß ich nicht ob Python eine Sprache ist, mit der man richtig durchstarten kann?
Warum sollte man es nicht? Und im gegensatz dazu mit VB.net schon? ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Was ich dir noch empfehlen würde: Wenn du ein Programm fertig hast, oder auch nur einen Teil davon, kannst du ihn unter 'Showcase' einstellen (längere Codeabschnitte bitte z.B. hier reinkopieren) und von den Gurus zerpflücken lassen. Die haben meistens einen Haufen von Ideen, wie man ein Programm besser, schneller, schöner und pythonischer machen kann. Der Ton ist manchmal etwas ruppig, und man hört in der Regel nicht gerne, daß man alles falsch gemacht hat, aber wenn du dir die Verbesserungsvorschläge gründlich ansiehst, ausprobierst und zu verstehen versuchst, dann wirst du sehen, wie schnell du Fortschritte machst.

Python ist nicht nur eine Programmiersprache, sondern fast schon eine Art Philosophie.

Ach ja: Lies ruhig alle Beiträge hier im Forum mit, auch wenn dich das Thema vielleicht gar nicht interessiert: Die meisten Verbesserungsvorschläge sind so allgemeingültig, daß du sie auch in anderen Bereichen einsetzen kannst.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Wenn ich bei den umfangreichen Beiträgen nichts überlesen habe, dann wurde dir die Lektüre des Tutorials noch nicht empfohlen.
Das möchte ich dann hiermit tun. Aus meiner Sicht einer der besten Einstiegspunkte.
xanox
User
Beiträge: 5
Registriert: Dienstag 13. Mai 2008, 00:48

Hallo, danke für eure guten Erklärungen.
Angefangen habe ich mit ziemlich blödsinnigen Spielzeugprogrammen. Die Schwierigkeit dabei ist eben etwas zu finden, was nicht trivial ist (ergo kein Lerneffekt) aber auch nicht zu kompliziert ist (ergo beim Scheitern keine Motivation).
Learning by doing
dann wurde dir die Lektüre des Tutorials
Da bin ich jetzt ein wenig verwirrt. Ich habe bei Vb.net die Erkenntniss gemacht, dass ich tausend mal besser lerne, wenn ich mich an Projekten versuche. Dabei ergab es jedoch immer zwei Probleme.
1. Ich hatte oft Fehler und wollte aber nicht in Foren immer Sources erhalten.
2. Ich wusste nicht wo ich Funktionen her nehmen soll. Die meiste Literatur wird zwar über Schleifen... aufklären, aber wenn ich beispielsweise dieses in Python programmierter Bilduploader Programm schreiben wollte, werde ich schnell an die Grenzen meines Wissens kommen. Wo soll ich dann nachlesen wenn ich nicht weiter weiß?
Zudem ist es ratsam erstmal die Python Grunkenntnisse und Syntax durch Tutoriale anzulernen oder soll ich von 0 auf 100 sofort mit einem Projekt anfangen?
Es gibt nur *die* IDLE, das ist die Entwicklungsumgebung, welche mit Python ausgeliefert wird.
Also die Konsole beziehungsweise Terminal?
Warum sollte man es nicht? Und im gegensatz dazu mit VB.net schon? Wink
Weil mir die Sprache Python im Gegensatz zu VB.net unglaublich vielfältig vorkommt. :wink:
BlackJack

Also ich würde auf jeden Fall erst das Tutorial durcharbeiten. Nicht einfach nur lesen, sondern die Sachen auch ausprobieren und ein wenig damit herum spielen, um ein Gefühl dafür zu bekommen. Dafür eignet sich eine Python-Shell sehr gut.

Die Themen im Tutorial sind Grundlagen und man sollte die eingebauten Datentypen und ihre Eigenschaften verstanden haben bevor man ein eigenes Projekt anfängt, weil man sonst ja gar nicht genug Informationen darüber hat, welche Typen man am besten für die jeweiligen Probleme einsetzt.

Bei den Funktionen aus der Standardbibliothek macht es IMHO Sinn zumindest das Inhaltsverzeichnis einmal quer zu lesen. Dort sind die Module thematisch sortiert und man bekommt einen Überblick wo man tiefer reingehen könnte um bestimmte Aufgaben zu lösen.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

xanox hat geschrieben: 2. Ich wusste nicht wo ich Funktionen her nehmen soll. Die meiste Literatur wird zwar über Schleifen... aufklären, aber wenn ich beispielsweise dieses in Python programmierter Bilduploader Programm schreiben wollte, werde ich schnell an die Grenzen meines Wissens kommen. Wo soll ich dann nachlesen wenn ich nicht weiter weiß?
Zudem ist es ratsam erstmal die Python Grunkenntnisse und Syntax durch Tutoriale anzulernen oder soll ich von 0 auf 100 sofort mit einem Projekt anfangen?
Arbeite erstmal das Python-Tutorial komplett durch, lerne es quasi auswendig. Das Ding ist absolut super. Und dann schaust du am besten einfach ins Wiki, dort gibts weitere Literaturempfehlungen.
(Schau dir nicht das von GalileoComputing an, das ist blöd.)

Falls du Fragen zu dem Abload-Tool hast, frag ruhig...
Meine Lehre aus dem Programm jedenfalls ist: Ich fange jetzt immer zuerst mit den Tests an, alles andere wird doof und dann muss man sowieso Tests bauen. /o\

Das Ding ist übrigens OpenSource und hier ist das SVN dazu:
http://audaxxx.de/svn/abload/tag/client/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

xanox hat geschrieben:1. Ich hatte oft Fehler und wollte aber nicht in Foren immer Sources erhalten.
Dann frag eben im Forum nach deinem speziellen Problem. Ich bin oft so faul, dass ich so oder so keinen Quelltext liefere sondern nur Schubser in die richtige Richtung gebe.
xanox hat geschrieben:2. Ich wusste nicht wo ich Funktionen her nehmen soll. Die meiste Literatur wird zwar über Schleifen... aufklären, aber wenn ich beispielsweise dieses in Python programmierter Bilduploader Programm schreiben wollte, werde ich schnell an die Grenzen meines Wissens kommen. Wo soll ich dann nachlesen wenn ich nicht weiter weiß?
Dann nimmst du dir erstmal Wikipedia zur Hand und schaust, wie so etwas funktioniert (POST etc.). Dann schaust du, wie man so etwas in Python implementiert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
xanox
User
Beiträge: 5
Registriert: Dienstag 13. Mai 2008, 00:48

Danke mal sehen wie weit ich vorran komme.
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

hallo,

ich kann dir auch sehr den kurs 'A Byte of Python' empfehlen. mit dem hab ich auch angefangen, ist absolut genial.
audax hat geschrieben:Schau dir nicht das von GalileoComputing an, das ist blöd.
warum? ich find das gar nicht bloed.

mfg
roschi
Antworten