Python Bücher

Gute Links und Tutorials könnt ihr hier posten.
VegetarianSalad
User
Beiträge: 7
Registriert: Montag 31. Dezember 2012, 10:46

Ich arbeite tatsächlich mit ,,Einstieg in Python'' von Galileo Computing. Was ist daran so schlecht? Bin beim dritten Kapitel und fand
es bisher für einen Anfänger wie mich ziemlich gut. Will mir jetzt aber auch kein neues Buch kaufen. :K
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Öh... hat jemand behauptet, das sei schlecht?

Davon abgesehen ist es für einen Anfänger eben nicht so wirklich einfach, die Qualität eines Buches zu beurteilen; insbesondere für einen Programmieranfänger. Wenn man ein wenig Erfahrung rund ums Programmieren besitzt, dann fallen einem schon eher Schwächen bei solchen Büchern auf, selbst wenn man die Sprache noch nicht kennt, speziell wenn es um Fehler bei allgemeinen Konzepten o.ä. geht. (Hände weg von "C# in 21 Tagen" btw. :twisted: - das geht in Richtung des OpenBooks von Ernesti und Kaiser) Ein Anfänger kann solche Fehler einfach nicht bemerken, weil ihm schlicht und ergreifend das Wissen fehlt.

Ich würde Dir vor allem raten, Dich nicht ausschließlich auf "Dein" Buch zu verlassen, sondern auch andere Quellen nutzen, um Dinge zu vertiefen, Dazu zählt neben dem offiziellen Tutorial auch die Dokumentation i.A. und andere für gut befundene Bücher (s. Wiki und div. Threads).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

VegetarianSalad hat geschrieben:Will mir jetzt aber auch kein neues Buch kaufen. :K
Wozu auch? Es gibt genug gute online-Ressoucen, so dass so ein dickes und schweres Buch auch eher sinnlos wirkt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

http://learnpythonthehardway.org/

Wenn Du ein Buch magst, kaufe Dir die PDFs und lasse sie drucken...
JonnyDamnnox
User
Beiträge: 68
Registriert: Sonntag 10. März 2013, 21:14

Hoi,
Also vieles hab ich zwar von lernpythonthehardway und von der offiziellen doc gelernt, aber auf dauer immer auf dem Bildschirm zu lesen strengt echt an. Deswegen hab ich mir das zukommen lassen:

http://www.amazon.de/Programmieren-lern ... 597&sr=8-2

Das ist die deutsche Übersetzung von "Thing like a computer scientist", das gibts zwar auch kostenlos, aber ich lese lieber auf Papier und das ist es mir wert(ist ja auch nicht so teuer).
Das Buch hat ca. 280 Seiten. Leider merkt man die Übersetzung ein bisschen, aber nur wenn man den Originaltext gelesen hat. Tkinter wird auch besprochen. Übungen mit Lösung im Internet sind auch drin. Also ich finds nicht schlecht. Es hat auch auf einer englischen Seite sehr gute Bewertungen bekomme(bei Amazon gibts noch keine).

Gruß
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Ich wollte mal fragen ob jemand schon Erfahrung mit diesem netten Schinken hier gemacht hat:

Das Python-Praxisbuch - Der große Profi-Leitfaden für Programmierer
Autor Farid Hajji

Also ich hab bisher nur gute Kritiken gelesen, allerdings weiß ich natürlich wie verlässlich diese sind. Ein bekannter von mir hat das Buch bei sich rumliegen weil ers mal geschenkt bekommen hat und würde mir das Buch leihen, da ich auf der Suche nach einem anständigen Buch bin.
Da ich aber keine Lust habe das Buch zulesen und am ende was falsches gelernt zu haben wollte ich lieber mal Fragen ;D

Mit freundlichen Grüßen
desmater
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Der Autor war hier sogar mal im Forum unterwegs und wirkte auf mich recht kompetent, was mich von dem Buch abhalten würde ist eben dass es so ein Schinken ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

desmater hat geschrieben:Das Python-Praxisbuch - Der große Profi-Leitfaden für Programmierer
Autor Farid Hajji
Das Buch ist gut. Gerade wenn das Thema für einen neu ist, kann es hilfreich sein, wenn die Darstellungen etwas ausführlicher sind (Stichwort "Schinken"). Das es noch auf Python 2.5 basiert, ist als einführendes Lehrbuch kein wirklicher Nachteil. Leih' es Dir.
desmater
User
Beiträge: 32
Registriert: Donnerstag 18. April 2013, 20:53

Alles klar :wink:
Danke für die Info :) Dann werde ich mir das gute Stück mal borgen :mrgreen:

Gruß

desmater
JonnyDamnnox
User
Beiträge: 68
Registriert: Sonntag 10. März 2013, 21:14

Hallo,
Kennt jemand dieses Buch:
http://www.amazon.de/gp/product/3826694 ... 3826694562

Hat knapp 800 Seiten, scheint also ziemlich "umfassend" zu sein, ein paar Kapitel über guten Programmierstil scheint es auch zu geben(PEP8?). Ok es ist für Python 3.usw aber wenn man die unterschiede kennt reichts ja auch für 2.7.usw oder? Sieht also ziemlich überzeugend aus, oder hat jemand Einwände?

Gruß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Der Weigend macht schon lange Python-Bücher. Ich hab mal durchgeblättert auf Amazon und es ist irgendwie viel "Blah", man muss halt irgendwie die 800 Seiten vollbekommen. Um so seltsamer dass er auf Seite 72 bei Programmierstil dann "anzahlPersonen" als gutes Beispiel bringt, was so ziemlich jeder Python-Konvention wiederspricht. Ebenfalls "Person" als "pers" abzukürzen ist ziemlich sinnlos, weil man hat damit 2 (in Worten: zwei!) Buchstaben gespart dafür dass man nun einen Bezeichner hat der reichlich sinnlos ist.

Vielleich bin das nur ich, aber ich wär nach den ersten 100 Seiten reichlich demotiviert, nachdem dort kaum ein sinnvolles Programm geschrieben wurde, aber Komplexe Zahlen eingeführt worden sind*. Das Buch ist eher eine lange Referenz, würde ich sagen, als ein Buch was ich unbedingt zum lernen von Python nutzen wollte. Außer man will alles super-detailliert erstmal in der Theorie lernen.

* Ich habe seitdem ich mit Python im Jahr 2003 angefangen habe komplexe Zahlen genau 0 mal gebraucht. Spricht nicht dafür dass es so relevant ist um das in den ersten 100 Seiten zu diskutieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
JonnyDamnnox
User
Beiträge: 68
Registriert: Sonntag 10. März 2013, 21:14

Ok, also wenns in die Details geht soll mir das recht sein. Aber ich werd mal in unserer Uni Bib bei den Informatikern schauen ob es das Buch dort gibt und mal reinschnüffeln.

Gruß
JonnyDamnnox
User
Beiträge: 68
Registriert: Sonntag 10. März 2013, 21:14

Also ich hab das Buch mal durchgelesen und finde es gut. Die ersten Python Sachen werden ab Seite ca. 45 gemacht, nach allgemeinem Text über Programmieren, Python selbst und der Installation. Zu jedem Text gibts auch im selben Kapitel Übungsaufgaben mit Lösungen hinterndran, man darf also selbst schon kleine Programme schreiben. Komplexe Zahlen werden, denk ich mal, nur der Vollständigkeit halber eingeführt, bzw. es wird auf einer halben Seite erklärt das es diese in Python gibt(neben den anderen 3 oder 4 Datentypen) und ob sie unnütz sind ist ja Geschmackssache, ich komm zb eher aus der Mathe/Physik Ecke und würde schon irgendwann mal ein Programm damit schreiben(das irgendwas ausrechnet) wollen. Und da es für Python auch viele Libs für naturwissenschaftliches Arbeiten(die auch viel genutzt werden glaub ich) gibt, finde ich es gut das sie erwähnt werden. Das mit pers und person find ich auch etwas blöde, aber das war nur ein Nebensatz: "Man soll im Alltag gebräuchliche Wörter abkürzen(z.B. pers für person)".

Und was PEP8 angeht, mal ehrlich, daran hält sich doch eh keiner oder? Ich hab jetzt im Internet mindestens 7-8 Tutorials durchgekaut und einige überflogen, davon wurde in einem einzigen kurz erwähnt das es so etwas gibt, nur weil der Python Gott persönlich meint es sähe so besser aus :roll: , bei vielen Python Projekten wird es auch nicht benutzt und in Büchern wirds auch nicht benutzt. Wenn es so wichtig ist, wieso hält sich dann niemand dran? Oder sind das alles schlechte Programmierer? Einen großartigen Vorteil daran sehe ich jetzt auch nicht, wenn man keine Konzentrationsschwäche hat dann reichen die Tipps in dem Buch vollkommen aus für eine gute Lesbarkeit. Wer von null anfängt dem könnte ich das Buch auf jeden Fall empfehlen, lieber ein detailiertes Buch mit viel Text und Beispielen(eher mehr Beispiele als Text), als ein oberflächliches Internettutorial. Leider halt nur mit Python 3.* auf die Unterschiede zwischen den Versionen wird leider auch nicht eingegangen.
Ne CD mit der Python Version ist auch dabei, ok das ist eher Sinnlos, aber wenn man mal kein Internet(störung oder whatever) hat ums runterzuladen, dann halt CD, warum nicht? :K

Gruß
BlackJack

@JonnyDamnnox: Der „nur” Nebensatz und wenn das im Buch dann auch gemacht wird, halte ich für ganz schön übel. *Warum* sollte man im Alltag gebräuchliche Wörter mit im Alltag völlig *ungebräuchlichen* Abkürzungen verkürzen? Das macht doch überhaupt keinen Sinn‽ Dadurch werden die Namen nur schwieriger zu deuten, im schlimmsten Fall denkt der Leser er *wüsste* was ein Name bedeutet, liest in der Abkürzung aber etwas anderes als der Autor gemeint hat. Und bekommt damit eine falsche Vorstellung vom Quelltext, und damit Probleme beim Verständnis.

PEP8 ist nicht vom Python-Gott, sondern eine Zusammenfassung von Richtlinien, die von den Python-Entwicklern für guten Stil befunden wurden. Teilweise auch nicht nur als reine Geschmacksfrage, sondern aus Erfahrungswerten was lesbar(er) ist und was nicht. Und einige Punkte wie die Einrücktiefe sind essenziell für die Zusammenarbeit. Man braucht auch keine Konzentrationsschwäche um bei wild durcheinander gewürfelten Namenskonvention nicht mehr zu wissen ob das nun `foo_bar_baz`, `Foo_bar_baz`, `fooBarBaz`, `FooBarBaz` oder vielleicht noch etwas anderes ist, was man gerade sucht. Ich verstehe echt nicht warum es so viele Leute gibt, die sich nicht an die Konventionen der Standardbibliothek und damit PEP8 halten wollen. Ich habe noch nie jemanden gesehen, der bei Java, oder C# auf die Idee käme da plötzlich sein eigenes Ding durchziehen zu wollen.

Ich halte mich zum übrwiegenden Teil an PEP8 und die Mehrzahl der Module/Packages von anderen Autoren, die ich benutze und wo ich mal reingeschaut habe, tun das auch. Das sich da eh keiner dran halten würde, kann ich nicht bestätigen.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Dank Amazon hab ich mir auch ein paar Seiten »Python 3: Lernen und professionell anwenden« reingezogen.

Was mir beim Überfliegen so auffiel:
- In seine Definition von Compiler (erzeugt ein direkt ausführbares [gemeint ist maschinensprache] Programm) und Interpreter (liest einen Programmtext Zeile für Zeile und führt jede Anweisung direkt aus) passen wohl kaum mehr aktuelle Übersetzer von Programmiersprachen (Wo passt hier Java, das dot-net-Gedöns oder auch Python, Perl und Javascript hinein?)

- Die Beispielprogramme halten sich an gar keine Richtlinie, da wird ein Leerzeichen zwischen »input«/»print« und Klammer gesetzt und mal nicht (im selben Programm!). Oder wie ich gerade bei der Einführung von Klassen sehe: keine Leerzeile zwischen Methodendefinitionen dafür ein "def add (self, geld):".

- In den Musterlösungen in der letzten Zeile »input("Beenden mit <enter>")«.

- Klassen haben im Buch private und sehr private Attribute, um auf der nächsten Seite gleich diese unsäglichen Getter und Setter einzuführen und sie als »guten Programmierstil« anzupreisen.

- Das Kapitel XML behandelt anscheinend nur »minidom«, das man am besten erst gar nicht anfassen sollte.

- noch was zu PEP8: wie soll ich wissen, ob es sich um eine Konstante handelt, wenn sie genauso geschrieben wird, wie jede Variable.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

JonnyDamnnox hat geschrieben:Wenn es so wichtig ist, wieso hält sich dann niemand dran? Oder sind das alles schlechte Programmierer?
Ich würde mal pauschal und oberflächlich sagen: Ja!

Denn wer sich wirklich aufs Programmieren versteht, der hat sicherlich verinnerlicht, wie wertvoll *lesbarer* Quelltext ist und wie wichtig *Konventionen* sind. Wenn man also einen Lehrtext zu einer Sprache schreibt, dann sollte man sich verdammt noch mal auch ausreichend mit den Basics dazu befasst haben. Und Namenskonventionen gehören definitiv dazu.

Theoretisch mag es geniale Softwareentwickler geben, die sich nicht um so etwas scheren, aber für wahrscheinlich halte ich das nicht. Alleine auch schon deswegen, weil der Autor selber ja auch Jahre lang ein lernender ist und daher ständig auf Fremdcode trifft, der sich an die jeweiligen Sprachkonventionen hält - wie BlackJack es schon erwähnt hatte.

Natürlich sind solche Konventionen nur ein Puzzleteil der Qualität eines guten Entwicklers, aber wenn es da schon am Bewusstsein mangelt, deutet das auf inhärente Schwächen bei einem Entwickler hin.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

JonnyDamnnox hat geschrieben:Ich hab jetzt im Internet mindestens 7-8 Tutorials durchgekaut und einige überflogen, davon wurde in einem einzigen kurz erwähnt das es so etwas gibt, nur weil der Python Gott persönlich meint es sähe so besser aus :roll: , bei vielen Python Projekten wird es auch nicht benutzt und in Büchern wirds auch nicht benutzt. Wenn es so wichtig ist, wieso hält sich dann niemand dran? Oder sind das alles schlechte Programmierer?
Es sind zumindest Programmierer die nicht weiterdenken. Konsistente Richtlinien für die Codegestaltung helfen ungemein dabei fremden Code zu verstehen und dann auch sinnvoll verwenden und anpassen zu können. Welchen Grund sollte es geben bewusst ohne Not einen anderen Code-Style zu verwenden?
JonnyDamnnox
User
Beiträge: 68
Registriert: Sonntag 10. März 2013, 21:14

Hallo,

Ja das mit pers find ich auch doof. Und es wäre auch schlecht wenn man sich eigene konventionen ausdenkt. Aber an so einer Konvention würd ich nicht das ganze Buch beurteilen, und in ausnahmefällen schreibt mans dann auch wieder anders. Und für z.B. Straßenampel(kommt bestimmt eher selten vor, aber solche Wörter eben) könnte man ja auch StraßAmp oder so benutzen, oder für mehrsilbige Wörter geeignete Abkürzungen. Gegen die Erfahung der Python Entwickler kann ich natürlich nix sagen, aber dennoch wurde PEP8 eben in fast keinem Tutorial erwähnt, und in Büchern zu Python auch nicht(jedenfalls deutsche), da fragt man sich eben warum nicht?
Aber naja das Buch find ich gut. Im Zweifel weiß ichs ja dann besser, dank dem Forum :- )


Gruß
(An die anderen die jetzt noch geschrieben haben: Dann schreibt halt ein eigenes Python-Forum Tutorial und macht ein Buch daraus oder sowas, es gibt anscheined keine konsistente Literatur zu Python, da muss man halt irgendwo abstriche machen(oder aus mehreren Quellen lernen) schätze ich.)
@/me: nee keinen neuen Code-Style. Aber die "default" position von einem Anfänger ist z.B. anzahlEingabe. Das wäre dann die Grundform von der man ohne Hilfe denk das sie verständlich ist.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Mit PEP8 verhält es sich so wie mit der Deutschen Rechtschreibung. Niemand wird dazu gezwungen, korrekt zu schreiben. Oft findet man in Foren abenteuerliche Schreibweisen (z.B. keine Groß-Klein-Schreibung), oft mindert sie die Lesbarkeit nicht, manchmal aber schon. Wenn jemand seine Shifttaste schonen will oder den _ nicht findet, ist das auch egal, solange sich niemand gestört fühlt. Bei einem Bewerbungsschreiben würdest Du aber auch auf korrekte Schreibung achten.
Und bei einem Buch, insbesondere einem Lehrbuch, habe ich persönlich deutlich höhere Ansprüche als an irgendeinen Internetblog. Stell Dir ein Deutschlehrbuch vor, bei dem auf Groß-Klein-Schreibung keinen Wert gelegt wird, sondern zufällig mal das Eine mal das Andere wort großgeschrieben wird. Alle Bücher, an denen ich bisher beteiligt war, wurden von etlichen Leuten Korrektur gelesen um Fehler jeglicher Art (auch stilistische) zu eliminieren. Bei dem von Dir so verteidigten Buch hat das aber in Bezug auf Quelltexte augenscheinlich niemand gemacht.
BlackJack

@JonnyDamnnox: Ich frage noch einmal: Warum sollte man abkürzen wollen? Für eine Klasse ist `StrassenAmpel` und für ein Objekt ist `strassen_ampel` doch jeweils ein guter, verständlicher Name. Im Gegensatz zu `StrassAmp` oder `strass_amp`. Insbesondere wenn man bedenkt, dass `amp` eine im englischen *gebräuchliche* Abkürzung für `amplifier` ist. Man stelle sich das Verkehrschaos vor, wenn an der Kreuzung statt Ampeln, mit Strass besetzte Verstärker stehen. ;-)

Die Gründe warum man früher Bezeichner möglichst kurz gehalten hat, gelten heutzutage nicht mehr. Der Speicher ist nicht mehr knapp, weder Arbeitsspeicher noch Hintergrundspeicher. Moderne Sprachen sind ausdrucksstärker, dass heisst man braucht in der Regel weniger Namen pro Ausruck um das selbe zu erreichen, also wird auch der Platz innerhalb einer Zeile nicht so schnell knapp. Tipparbeit ist auch kein Grund mehr. Selbst einfache zum Programmieren geeignete Editoren haben heutzutage alle mindestens eine Autovervollständigung, die auf dem Inhalt der offenen Dateien basiert. Und es gibt Namensräume, also muss man nicht einen oder mehrere Namensräume zusätzlich in einen Bezeichner quetschen. So ziemlich das Einzige was abkürzen bringt, ist schlechtere Verständlichkeit gegenüber der nicht abgekürzten Variante.
Antworten