Was sind wirklich schwierige Programmierbücher? [geschlossen]

14

Ich habe mich gefragt, was wirklich schwierige Bücher zum Programmieren sind, die mich zum Nachdenken bringen würden. Ich spreche über Low-Level-Sprachen wie c usw. und Algorithmen, Punkte, Funktionen usw.

Vielen Dank.

Brandon_R
quelle
1
Der Großteil der Wrox-Serie ist ziemlich zäh.
Joel Etherton
1
Warum stimmen die Leute ab? Das OP will nur ein paar Bücher, die ihm eine Herausforderung darstellen würden ... es ist keine dumme oder OT-Frage.
Melanie Shebel
4
Das ist keine sehr gute Frage. Insbesondere glaube ich, dass es keine klaren Kriterien für die Beurteilung von Büchern gibt. "Tough" und "make me think" sind ziemlich subjektiv - wir kennen Sie nicht und wissen, was für Sie schwierig oder einfach sein wird. Oder wie es sich für andere Leute auswirken würde. Es inspiriert auch nicht zu Antworten, um zu erklären, warum die Bücher empfohlen werden, und verstößt möglicherweise gegen die Konstruktivitätsrichtlinien . Einige Bearbeitungen könnten helfen, denke ich.
Adam Lear
4
@Melanie - Dies ist eine Frage vom Typ "Liste der X", die nur das Lieblingsbuch der Leute als Antwort anzeigt. Wenn Sie die Antworten überprüfen keiner von ihnen haben keine Erklärung, warum das Buch erwähnt die OPs Anforderungen erfüllt (gut tut, aber das ist von 10 Antworten).
ChrisF
1
Ich stimme @Anna und @Chris oben zu, dieser Frage fehlen wichtige Teile, beispielsweise die Erklärung, warum diese Bücher schwierig sind oder wie Bücher gegeneinander bewertet werden können.
Josh K

Antworten:

29

Die Kunst der Computerprogrammierung. Donald Knuth.

S.Lott
quelle
3
Warum? Was macht es so gut? Bitte erweitern Sie Ihre Antwort.
Walter
2
Sie sollten dies in Ihre Antwort aufnehmen. Ich habe es gelesen, aber jeder, der es nicht getan hat, wird KEIN Gefühl dafür bekommen, warum er sich überhaupt mit Ihrem Vorschlag befassen sollte.
Walter
3
@Walter: Ich glaube nicht, dass ich damit einverstanden bin. Ich glaube nicht, dass es einer Erweiterung bedarf. Das Buch ist so enorm wichtig und so zentral für das Rechnen, dass ich das Gefühl habe, dass es keiner Erklärung bedarf.
S.Lott
1
Es ist das Buch, das Programmierer wahrscheinlich eines Tages lesen werden.
Steven A. Lowe
1
@RYUZAKI: "Ich möchte vorbereitet sein, bevor ich mich auf etwas einlasse, das so schwierig und lohnend zu sein scheint." Versuchen Sie nicht, sich vorzubereiten. Einfach einsteigen. Wenn Sie ein Thema finden, das Ihnen verborgen bleibt, wissen Sie, was Sie lernen müssen. Es ist eine lebenslange Verfolgung. Sie können unmöglich genug vorbereitet sein. Sie müssen immer noch mehr lernen.
S.Lott
13

Einführung in Algorithmen

Nicht so "einleitend";)

Demian Brecht
quelle
1
Warum nicht ("so" einleitend ")? Dies ist eine Einführung in CS 101.
Konrad Rudolph
1
@konrad: AFAIK, die meisten Universitäten verwenden nur einige Kapitel dieser Bücher für den Unterricht.
Hery
Jetzt musste ich nachschlagen und dabei meinen Laptopständer abbauen (ich benutze den Cormen als Unterstützung für meinen Laptop…). Und du hast recht. Ich habe die letzten Teile des Buches vergessen; diese sind in der Tat Gegenstand späterer Vorlesungen (einige in Meisterkursen).
Konrad Rudolph
@ Konrad: Hery hat es genagelt.
Demian Brecht
@ Konrad: Klingt nach einem ereignisreichen Prozess;)
Demian Brecht
10

Eine Disziplin der Programmierung, von Edgar W. Dijkstra

Wie schreibe ich nachweislich korrekten Code?

Dies ist kein Buch zum Lesen, es ist ein Buch zum Lernen

Steven A. Lowe
quelle
Steven, ich habe nicht wirklich in dieses Buch geschaut. Aber es bringt mich dazu, eine sehr kritische Frage zu stellen: Kann man sagen, ein WEB-Entwickler oder ein C ++ - Codierer [Gerätetreiber usw.] oder ein Android-Entwickler? Ich frage dich, ob es meine Zeit wert ist? [Fortsetzung im nächsten Kommentar]
Chani
[Fortsetzung von vorherigem Kommentar] Ich bin neu, aber ich lerne böse schnell. Ich lese Unmengen von Blogs, Open Source-Code usw. Wird mir das Lesen des obigen Buches (und anderer Bücher dieser Art) wirklich helfen? Und Freund; Der einzige Grund, warum ich so pessimistisch eingestellt bin, ist, dass ich Design and Analysis of Computer Algorithms von Aho et. Und um ehrlich zu sein, ich habe dieses Wissen kaum genutzt ... aber ich programmiere wieder nur ernsthaft seit weniger als 6 Monaten. Also, was würdest du sagen?
Chani
1
@RYUZAKI: Sie haben also weniger als sechs Monate lang ernsthaft programmiert, und Sie haben Aho et al. Algorithmenbuch nicht sofort brauchbar? Dann suchen Sie nicht nach den in dieser Frage erwähnten Büchern. Vielleicht möchten Sie sich etwas Zeit nehmen und sich auf dem Feld wohler fühlen und dann auf diese zurückkommen. Die Bücher in diesen Antworten (die ich sowieso kenne) werden Ihnen Dinge beibringen und Ihr Verständnis erheblich erweitern. Sie werden Sie nicht sofort zu einem besseren C # -Entwickler machen, wenn Sie danach suchen.
David Thornley
+1: Und auch David Gries 'Programmierwissenschaft. Ein Begleitbuch, das die Themen erweitert.
S.Lott
2
@RYUZAKI mag die tiefsten CS-Texte, du bekommst raus, was du hineingesteckt hast. Ich habe eine neue Wertschätzung für die mathematische Schönheit des Programmierens erhalten, zusammen mit der direkten Erfahrung, sehr kleine Programme zu entwerfen und ihre Richtigkeit zu beweisen. Es dauerte fast ein Jahr, bis ich mich durch das Buch gearbeitet hatte.
Steven A. Lowe
9

Das Drachenbuch wird Ihnen sicherlich dabei helfen, Konzepte auf niedriger Ebene zu verstehen.

Laut Mawg soll Monica wieder eingesetzt werden
quelle
gut. Ich musste es als Teil meines CS-Lehrplans studieren und fand es sehr interessant, herausfordernd und bereichernd
Chani
6

Sieben Sprachen in sieben Wochen geben Ihnen viel zu spielen. Wenn alles andere fehlschlägt, lesen Sie "Struktur und Interpretation von Computerprogrammen". Eines der besten Bücher, die jemals über Programmierung geschrieben wurden.

Zachary K
quelle
2
"Sieben Sprachen in sieben Wochen" ist extrem cool, aber kein wirklich schwieriges Programmierbuch.
Chiron
Wenn es Ihr Ziel ist, dass ein Buch hart ist, um hart zu sein, haben Sie Recht. Andererseits ist es ein Buch, das viele gute Informationen enthält
Zachary K
4

Ich kann Numerical Recipes: The Art of Scientific Computing nur wärmstens empfehlen .

Ein fantastisches Buch mit vielen nützlichen wissenschaftlichen Algorithmen. Im Laufe meiner Karriere in Embedded- und Industriecomputersystem, eine Version oder eine andere, in einer Sprache oder eines anderen 1 ist mein ständiger Begleiter gewesen.

  1. Vor der dritten Ausgabe gab es verschiedene Bücher für verschiedene Sprachen, also gab es numerische Rezepte in C , numerische Rezepte in Fortran und sogar numerische Rezepte in Pascal.
Mark Booth
quelle
Wow, ich habe seit ungefähr 15 Jahren nicht mehr an ein Hutbuch gedacht
Zachary K,
Ja, ich habe eine Erstausgabe an der Universität gekauft und es geschafft, in jedem Job, in dem ich seitdem gearbeitet habe, eine Verwendung für die Algorithmen in diesen Büchern zu finden.
Mark Booth
2

Einige Alternativen zu den bekannten (und ausgezeichneten) Büchern, die bereits vorgeschlagen wurden:

  • Datenbanksysteme: The Complete Book, 2. Aufl. In einem zweiten Teil wird erklärt, wie ein DBMS selbst implementiert wird. Verfügt über eine Menge Material zum effizienten Speichern und Indizieren von Daten und zum tatsächlichen Ausführen von Abfragen in der Datenbank.
  • Ein technischer Ansatz für Computernetzwerke beschreibt die tiefsten Details der tatsächlichen Funktionsweise von Netzwerken. Wenn Sie jemals eine leistungsstarke Netzwerkanwendung oder ein Gerät implementieren möchten, bietet dieser Text einen hervorragenden Hintergrund.
  • Approximationsalgorithmen bestehen aus einem umfassenden Überblick über kombinatorische Optimierungsprobleme. Der Autor empfiehlt, die Probleme eingehend zu untersuchen, bevor er versucht, eine Näherung zu erstellen, die sehr lehrreich ist.
  • Typen und Programmiersprachen umfasst mehr als 600 Seiten Theorie und Implementierungstechniken für Typen in Programmiersprachen. Es stellt sich heraus, dass es unglaublich viel Theorie gibt, mit der man sich befassen muss. Wenn Sie jemals eine vollständige Programmiersprache erstellen möchten, gibt es hier viel zu lernen.
Deckard
quelle
2

Geringe .NET: CLR über C # von J. Richter. Es lohnt sich zu lesen, wenn Sie den Kern von .NET kennenlernen möchten.

oleksii
quelle
1

Ich habe kürzlich angefangen, Hacker's Delight (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654) zu lesen . Es kann sein, dass es in diesem schwierigen Punkt nicht sehr gut abschneidet. Aber ich würde ihm hohe Punktzahlen für Gründlichkeit, niedrige Stufe und geschickte Problemlösung geben, getreu dem Geist seines Namens.

vpit3833
quelle
1

Sie können anfangen, Lisp langs zu lernen. Das wird sicher schwer! Plus es ist ein fröhlicher Bruch von der regulären Programmierung

Chani
quelle