Fortgeschrittene Python Literatur

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Hallo allerseits,

da mich das Python Tutorial mittlerweile langweilt, da ich es bereits relativ gut beherrsche, möchte ich mich nun an fortgeschrittene Konzepte, die mir die Sprache anbietet wagen.

Habt ihr irgendwelche Empfehlungen, vielleicht gibt es dazu sogar schon ein Thread.

Könnt ihr mir das Buch Expert Python Programming empfehlen? http://www.amazon.de/Expert-Python-Prog ... 978&sr=8-1

Habt ihr andere Vorschläge?

Grüße,
anogayales
BlackJack

@anogayales: Ich hab's immer noch nicht geschafft es ganz zu lesen, aber die Teile die ich gelesen und überflogen habe, fand ich gut.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Das Cookbook ist ebenfalls recht interessant.
Das Leben ist wie ein Tennisball.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Ich habe ja eine Abneigung gegenüber Programmierliteratur, weil man beim Selbstlernen einfach viel effizienter ist (lesen ist sehr zeitaufwändig!).

Ich würde sagen, dass du dich mal mit der Standard Library (insbesondere den `collections`, `functools` und `itertools`) außeinandersetzt. Oder ein wenig mit funktionaler Programmierung rumspielen:`map`, `reduce`, `filter`, `partial` und so weiter. (Und jeweils von allen verwendeten Funktionen eigene Implementationen schreiben!)

Oder Datenstrukturen selbst schreiben, zum Beispiel eine Implementation von `set` auf Basis eines `dicts` -- Tests gibts in der Standard Library.

Stichwort Testing, sehr wichtig finde ich auch, sich mit Testing außeinanderzusetzen (hat mir persönlich sehr viel gebracht), insb. Unittesting. Gibts undendlich viele Resourcen zu im Internetz. Dazu kann ich auch diese Ausgabe des CRE empfehlen: http://chaosradio.ccc.de/cre028.html

Andere Python-Features, die man mal genauer unter die Lupe nehmen sollte: Generatoren, List Comprehensions, Generator Comprehensions, Iteratoren (selbst welche implementieren!), Regular Expressions, Dekoratoren, Deskriptoren, und so fort.

Ich hoffe, dass du das alles noch nicht weißt... konnte ich jetzt aus deinem Eröffnungspost nicht rauslesen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

@Dauerbaustelle: Du hast dier schon mal die Abschnitte des Cookbooks angeschaut? Das sind alles sehr kurz gehaltene Beispiele, welche viele typischen und interessanten Fälle abdeckt. Darunter auch all jene, welche du gerade beschrieben hast. Ich sehe auch nicht den höheren Zeitaufwand bei guten Büchern, da dort die Informationen und wichtigen Themen bereits aggregiert sind und damit eine eigene Suche entfällt. Bücher mit viel Prosa kann man übrigens umgehen, indem man vorher Kapitel der Bücher anliest ;-)
Das Leben ist wie ein Tennisball.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Nö, hab ich nicht. Mit Büchern verhält es sich meiner Meinung nach wie mit Dokumentation: Viel zu viel Text. Wenn ich Dokumentation lese, schaue ich mir meistens ausschließliche Code-Beispiele an. Den Text dazwischen ignoriere ich bzw. überfliege ihn (außer, wenn ich irgendwo nicht weiterkomme, dann macht es Sinn, alles zu lesen :-) Nur dumm, dass das bei Büchern nicht geht, zumindest nicht bei denen, die ich bis jetzt gelesen habe. Das gilt übrigens nicht nur für Python-Bücher, sondern fast alle Bücher aus dem Informatikbereich, die ich in der Hand gehalten habe... zu viel Prosablablagelaber das ich eh schon weiß, zu wenig von dem, was wirklich wichtig ist.
BlackJack

@Dauerbaustelle: Das Buch aus der Frage ist kein "ich lerne Python"-Buch sondern wirklich für Fortgeschrittene die schon Python können. Da werden auch einige "obskure" Ecken beleuchtet, die man sich vielleicht eher nicht selbst erarbeiten möchte -- wie zum Beispiel die "method resolution order" bei "new style classes" und die Vor- und Nachteile von `super()`.

Weitere Themen sind Iteratoren/Generatoren und `itertools`, Dekoratoren, Kontextmanager (``with`` & Co), Metaprogrammierung. Ein ganzes Kapitel über eine gute Namenswahl und sinnvolle Aufteilung in Module und Pakete. Wie man APIs entwirft und auch wie man Teile davon "ausrangiert" ("Using a Deprecation Process"). Oder wie man eine grosse Paketstruktur auf mehrere, einzeln installierbare "Eggs" aufteilen kann. Entwicklungszyklus einer Anwendung an einem Beispiel. Inklusive "packaging" und Veröffentlichung. Versionskontrollsysteme, Eigenschaften, Auswahlkriterien, Beispiel mit Mercurial. "Continuous Integration" mit `buildbot` als Beispiel. Bugtracking mit Trac als Beispiel. Ein Kapitel über Dokumentation: Technisches schreiben, Einführung in reStructuredText. Dann Dein Testen in einem TDD-Kapitel. Eines über Optimierungen und Profiling (CPU/Speicher/Netzwerk). Ausgewählte Optimierungslösungen (Komplexität reduzieren, Multithreading/-processing, Caching). Und abgeschlossen wird es dann mit ein paar Entwurfsmustern.

Es ist ein guter Teil "best practices" und allgemeine Softwaretecknik enthalten, wobei es immer auf Python im besonderen abgestimmt ist. Vieles davon wird es auch woanders geben, aber man müsste es sich halt aus PEPs, Newsgroup- und Foren-Postings, und dem grossen weiten Netz zusammen suchen.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Das klingt ja wirklich interessant. Hätte ich das doch nur ein Jahr früher gekannt! Wo wir grad dabei sind, kennt jemand vergleichbare, nichtprosaige Literatur für solche, die mit dem Stoff von "Expert Python Programming" schon vertraut sind?

Edit: Moment mal. Tarek Ziade, das ist doch ein Python-Coredev?
BlackJack

@Dauerbaustelle: Jup, er ist Maintainer von `distutils`.
Antworten