Buch zu Programmierkonzepten

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Hallo zusammen,

ich hoffe, die Frage war noch nicht hier :D

Gibt es/kennt jemand ein gutes Buch (eventuell auch eine Internetseite, wobei ich ein Buch bevorzugen würde) allgemein für Programmierkonzepte und „gutes Programmieren“? Wenn man sich Programmieren nur selber beibringt, dann führt das ja leider oft dazu, dass man eher etwas chaotisch und schlecht programmiert. In den Pythonlehrwerken und -tutorials steht sowas ja oft nur teilweise und nur im Ansatz drin.

Ich habe z.B. gehört, dass Funktionen sich immer nur auf eine einzige Sache beschränken sollten und nicht ausufern sollten (stimmt das wirklich?). Um so etwas geht es mir zum Beispiel.

P.S.: Wäre ganz gut, wenn das Buch auf Englisch ist, ich komme hier leider im Moment nicht gut an deutsche Bücher ran. Es sei denn, das deutsche Buch ist unglaublich gut, dann würde ich mir das etwas umständlich besorgen.

Ich bedanke mich schon einmal :)
BlackJack

@Hellstorm: „Structure and Interpretation of Computer Programs” ist zwar für Scheme, aber ich denke da kann jeder Programmierer etwas draus mitnehmen. „The Pragmatic Programmer” fand ich ganz nett. Wo ich bisher nur ein wenig drin geblättert habe ist „Clean Code”. Vielleicht auch einen Blick wert.

Und das mit den Funktionen stimmt wirklich. Ist doch aber auch irgendwo klar wenn man mal darüber nachdenkt. Eine Funktion die nur eine Sache macht kann man leichter benennen als einen Namen für eine zu finden die 10 Sachen macht. Der Code ist kürzer und kann damit leichter verstanden werden. Man kann diese eine Sache ausgiebig testen ohne das anderer Code dazwischen funkt und eventuell auch Schuld an Fehlern ist. Und man kann die Funktion potentiell besser wiederverwenden wenn man woanders genau diese eine Sache braucht.
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Klasse, danke für die Tipps :) Ich werd mal schauen, welches ich mir hole.

Naja, so im Nachhinein ist es schon klar. Aber da muss man trotzdem erst mal drauf kommen :D Ich habe mal ein wenig im Scribus-Quelltext geblättert und war da mal sehr verwundert, dass da Unmengen an 1-Zeiler-Funktionen auftauchten. Gibt ja sicherlich auch noch andere Sachen, an die man nicht so wirklich kommt (Klar, man kann hier immer im Forum schreiben, aber das ist ja auch etwas umständlich).
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:„The Pragmatic Programmer” fand ich ganz nett.
Ich fands etwas enttäuschend, da sind letztendlich eigentlich nur Sachen die eigentlich offensichtlich sind. Da würde ich glaube ich eher zu SICP raten. Clean Code habe ich nicht gelesen. Vielleicht interessant ist auch das Gang-of-Four-Buch, weil die Patterns die dort vorgeschlagen werden sind oftmals nützlich. Man darf nur nicht den Fehler machen die Patterns 1:1 auf seine gewünschte Sprache zu portieren und auf Teufel komm raus zu verwenden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Ja, die Sachen mögen offensichtlich sein, das gilt ja aber auch für „eine Funktion sollte genau eine Aufgabe lösen”. Irgendwann muss man die ganzen offensichtlichen Sachen mal kennenlernen. Und die ganzen offensichtlichen Sachen werden oft nicht angewendet, selbst von Leuten die sie selbst für offensichtlich halten, wenn man sie danach fragt.

Für Anfänger finde ich ist es jedenfalls geeignet und Erfahrene können es noch mal nachlesen oder haben etwas zum drauf verweisen. Und die Checkliste. :-)

Jetzt Frage ich mich gerade ob man den Corman empfehlen kann. Oder ob man dann erschlagen wird. Mit dem Buch. :-D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Jetzt Frage ich mich gerade ob man den Corman empfehlen kann. Oder ob man dann erschlagen wird. Mit dem Buch. :-D
Den finde ich sinnvoll, aber eher weniger als allgemeines Buch zur Programmierung sondern für Algorithmen. Und dafür ist es sehr gut. Aber ob das die meisten Programmierer brauchen werden so detailliert sich die Algorithmen anzusehen ist zweifelhaft.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das von vielen hochgelobte Buch "Clean Code "von Uncle Bob fand ich nicht so prickelnd - das mag aber daran liegen, dass mir das meiste davon eh schon bekannt ist. Wie BlackJack es sagte, muss man es ja irgend wann einmal "lernen" bzw. gehört haben. Wer da also noch relativ unbedarft ist, dem mag das ex catedra präsentierte Wissen darin recht nützlich (und neu!) sein.

Speziell bei den ausgedehnten Refactoring Exzessen im späteren Teil bin ich zwiegespalten: Prinzipiell ist es sicherlich eine gute Idee, ein halbwegs komplexes Beispiel zu wählen, um Methoden zu zeigen, aber ohne sich intensiv selber mit dem Code auseinander zu setzen bringt es einem nicht viel. Und ehrlich gesagt fehlte mir die Motovation, mich mit diesem Java-Code zu befassen :-D

Ich würde alleine für das erste Kapitel das Buch Dependency Injection in .NET von Mark Seemann empfehlen. Ich habe noch nie eine bessere Motivation und zugleich Einführung in ein Thema gesehen :!: (Wer es in einem Laden sieht, sollte sich die 15 Seiten einfach mal so durchlesen, auch wenn er nicht aus der C# oder Java-Ecke kommt!) Der Mann hat einen sehr angenehmen Schreibstil und dazu ein Talent, komplexe Sachverhalte plastisch darzustellen, so dass man sowohl das Problem klar begreift als auch den Lösungsansatz dazu.

Weniger Konzepte der Programmierung an sich, dafür imho durchaus lesenswert finde ich auch den "Klassiker" von Eric Evans "Domain Driven Design". Allerdings empfand ich das Englisch als ziemlich prosaisch für ein technisches Buch; ich bin sicherlich nicht der beste Englischkenner, aber da waren auch ettliche Vokabeln drin, die meine Mutter noch nie gehört hatte (und die ist wirklich fit in Englisch und ich rede hier nicht von technischen Begriffen). Sicherlich kein KO-Kriterium, aber wenn der Lesefluss durch das Nachschlagen für verständnisrelevante Begriffe getrübt wird, mag ich das nicht so. Auch wenn vieles in dem Buch imho arg theoretisch daherkommt und auch vieles wirklich speziell für Großprojekte relevant ist, finde ich den Grundtenor gut: Konzentriere Dich auf die Problemdomäne und nicht auf andere Dinge wie die Persistenzschicht oder die Präsentationsschicht. Ich gestehe, dass auch ich früher oftmals schon das relationale Modell zu erst im Kopf hatte, und da herum meinen Code geschrieben habe.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Danke für alle Antworten :) Naja, ich denke ich werde erstmal mit etwas günstigeren Büchern anfangen. The Pragmatic Programmer und Clean Code kosten ja beide ca. 30€. Zum Glück gibt es bei Amazon einen ausführlichen Blick in die Bücher, dann muss ich mal schauen.

Ich weiß eh nicht, ob ich mal beim Programmieren mal richtig weit komme, oder ob mir irgendwann Grundkenntnisse in Python reichen, mit denen ich ein paar einfache Programme für mich selber erstellen kann. Daher fange ich erst einmal grundlegend an :D
Kingu
User
Beiträge: 2
Registriert: Sonntag 22. Dezember 2013, 05:04

Grundlagen der Informatik von Wohlrab, Herold und den 3. Prof hatte ich nicht :D
Ist ein ziemlicher Schinken, aber da steht alles mögliche drinnen, hauptsächlich abstrakte Konzepte, aber gut erklärt mit Beispielen in Java und C++ für alle Themen
Antworten