OOP - erste Fragen

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.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ich will was kostenloses. Ich geb nicht wieder Geld aus für ein Buch.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Ich denke du kannst ruhig OOP mit Hilfe von Python Das Umfassende Handbuch verstehen lernen. Ich habe das Buch nicht gelesen, hier ist BlackJacks Buchkritik (Link) das könntest du mal lesen.

Ich habe Python fast ausschließlich anhand des Python Tutorials gelernt, ich weiß nicht ob dir das hilft. Hier ist eine Übersetzung die cofi hier aus dem Forum betreut: Link.

mfG
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Sehr gut! Vielen Dank! Nun - aus einem anderen Forum wurde mir dieses Buch deutlichst empfohlen. Hier eher nicht. Dann ist die Frage: Waren die 40 Euro umsonst?
lunar

@Gary123456 Ich würde sagen, ja, die 40 € waren umsonst. Was Dir dieses Buch beibringt, das kannst Du auch genauso gut aus frei im Internet verfügbaren Quellen erlernen. In welchem Forum wurde Dir dieses Buch denn sogar „deutlichst“ empfohlen?

Eine gute Quelle ist Learn Python The Hard Way, welches im letzten Teil auch objektorientierte Programmierung lehrt. Der Ansatz dieses Buchs ist ungewöhnlich, da es sehr viel Wert auf Übung legt, doch da man Programmierung vor allem durch Üben lernt, ist es sehr empfehlenswert.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Hier wurde es mir empfohlen: http://www.computerbase.de/forum/showth ... ?t=1179468

Die Frage ist ja, ob dieses umfassende Handbuch nur in OOP sinnloses Zeug vermittelt oder auch an anderen Stellen?

Werde mir das Buch "Learn Python on the hard way" mal ansehen.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ui was ich noch schade finde. Die Module os, sys und shutil werden spärlichst beigebracht :/
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Die Python Std. Lib. ist viel zu Umfangreich um im Ganzen behandelt zu werden, da Hilft dir nur mal alle Beschreibungen zu Überfliegen und zu schuauen, wann dir was helfen kann.
BlackJack

@Gary123456: Wo jetzt? Und ich würde auch weniger erwarten das Module an sich „beigebracht” werden, sondern eher Themen wie Textverarbeitung und Dateien und dazu dann die Module die man dafür braucht.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Habe mir jetzt paar Seiten durchgelesen, nur verstehe ich nicht was Namensräume + Gültigkeitsbereiche genau sind. Das ist etwas kompliziert erklärt, finde ich. Wäre um eine simple Erklärung sehr dankbar!
BlackJack

@Gary123456: Von was hast Du jetzt ein paar Seiten gelesen? Das muss man ja irgendwie wissen wenn man etwas einfacher als … erklären soll.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

:roll: Uuups entschuldige. Hier der Link: http://tutorial.pocoo.org/ Ich kann mir einfach nicht genau vorstellen, was ich unter diesen Begriffen verstehen soll. Ich habe diese 2 Seiten mind 5 mal durchgelesen und ich verstehe teilweise nur Bahnhof.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Und wozu braucht man eig Klassen? Könnte man doch auch umgehen - dann wäre der Code aber unsauber, stimmts? Rest steht oben.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Ich zitiere an der Stelle einfach aus diesem Essay:
Hell, if you can manage it, forget about classes entirely. They’re just a convenient way to factor common behavior out of objects. Let’s design useful, scoped, meaningful objects, and then write classes that produce them.
Also ja, man kann Klassen in Python die meiste Zeit über vermeiden, verwenden würde ich sie nur um Funktionalität zu gruppieren.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Gary123456 hat geschrieben:Und wozu braucht man eig Klassen? Könnte man doch auch umgehen - dann wäre der Code aber unsauber, stimmts?
Sauberer Code hat nichts mit Klassen zu tun, obgleich Klassen dabei hilfreich sein können. Bei Klassen handelt es sich, (sehr) vereinfacht gesagt, um Namensräume. Namensräume sind eine tolle Sache.
Ich habe ein wenig den Eindruck, Du versuchst ohne die Basics direkt etwas weiter "oben" einzusteigen. Nutze doch einfach mal einen verregneten Tag (so wie heute) und widme Dich z.B. http://learnpythonthehardway.org/, auch wenn es Dir in Deinem Selbstverständnis wie ein Rückschritt vorkommen mag. Das braucht alles etwas Zeit - aber die hast Du ja.
BlackJack

@webspider: Dem würde ich widersprechen. Es gibt sicher eine Klasse (hihi) von Programmen die ohne Klassen auskommen können, aber bei jedem Programm mit einer nicht ganz so trivialen Datenstruktur wo man Verbundtypen braucht um es sauber und nachvollziehbar zu machen, kommt man um Klassen IMHO nicht wirklich herum. Das ist als würde man in C ohne ``struct``\s oder Pascal ohne ``RECORD``\s auskommen. Damit kommt man nicht wirklich weit oder bekommt sehr hässlichen Code.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Was bezeichnet ihr als Basics?

Was ich bisher beherrsche:

-Kontrollstrukturen
-Basisdatentypen
-Dateien
-Funktionen
-Modularisierung
-Schnittstelle zum Betriebssystem

Ich möchte gerne ein etwas größeres Projekt starten. Wüsste nur nicht was. :K
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Tja, was ist ein größeres Projekt? Vielleicht die visuelle Darstellung von irgendwelchen Daten. Also Datei mit Daten einlesen, Achsen zeichnen, beschriften, Daten plotten.
Oder ein Labyrinth anlegen und versuchen einen Weg hindurch zu finden - und zwar möglichst schnell.
Oder ein Textadventure.
Oder wenn Du an Logfiles kommst, analysiere diese (wie viel Traffic, wie viele Errors, etc.).

Da lässt sich beim üben schon einiges lernen. Wähle ein Thema, das Du gerne umsetzen möchtest und für Deine Kenntnisse nicht zu schwer ist. Du sollst ja Spaß daran haben. Aber solange Du nicht irgendeinen Kurs abarbeiten möchtest, brauchst Du die Idee schon selbst.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ich interessiere mich sehr für Netzwerkprogrammierung. Vielleicht könnte ich einen kleinen Trojaner bauen, der bestimmte Sachen abfängt un an bestimmte Server schickt.

Oder ein Programm, dass Inhalte bestimmter Dateien auflistet. Registryinhalte (sprich Schlüssel) auflistet usw.

Textadventure wäre auch sehr spannend.
as Du gerne umsetzen möchtest und für Deine Kenntnisse nicht zu schwer ist
Das ist das Problem. Ich kann meine Kenntnisse nicht einschätzen. Denke aber schon, dass ich weitgehenst alles verstanen habe.
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Nun, dann beginne doch damit. einen einfachen Echo-Server mit passendem Client zu entwickeln. Zunächst reicht es, genau eine Verbindung zu aktzeptieren. Im weitern Verlauf entwickelst du den Server derart weiter, dass er mehrere Verbindungen (gleichzeitig) verarbeiten kann (Variante A: Mit Threads, Variante B: Non-Blocking IO).

Damit wärst Du bereits einige Abende beschäftigt und neue Erkenntnisse sind gewiss (erforderlich).

Grüße ... bwbg
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

OK werde mir die Sache annehmen. Vielen,vielen,vielen Dank! Kriegste ein virtuelles Bier geschenkt.

Wird also so eine Art ChatProgramm zum Schluss. Erst mal eine Verbindung, dann mit Threads arbeiten und dann umwandeln in ein Chatprogramm. :)
Antworten