Wenn Sie nur ein programmierbezogenes Buch in Ihrem Bücherregal haben könnten, welches wäre es und warum? [geschlossen]

58

Eine pro Antwort bitte. Ich werde meinen Favoriten als Antwort hinzufügen.

Paddyslacker
quelle
13
Zählt ein Kindle als ein einziges Buch?
Wizard79
5
Jetzt fair spielen!
Paddyslacker
1
Wie wäre es mit iPad?
Moshe
3
Zählt die Kunst der Computerprogrammierung als ein Buch oder als mehrere?
David Thornley
2
@ David Ich denke, das ist technisch ein Buch in mehreren Bänden.
Paddyslacker

Antworten:

69

Code Complete 2nd Ed.

Code komplettiert von Steve McConnell. Ich denke nicht einmal, dass es einer Erklärung bedarf. Es ist das definitive Buch über Softwarekonstruktion. Unglaublich gut geschrieben und deckt alle Aspekte der praktischen (Programmier-) Seite der Softwareerstellung ab.

EpsilonVector
quelle
+1 für die Auswahl der zweiten Ausgabe auch - so viele Verbesserungen gegenüber der ersten, dass es ein anderes Buch ist.
Paddyslacker
+1 - Ich habe die italienische Übersetzung. Danach habe ich nie mehr ein Programmier- oder Fachbuch gekauft, das in meine Sprache übersetzt wurde, da die Übersetzung fürchterlich war. Ich musste die englische Ausgabe kaufen, um einige Sätze wirklich zu verstehen!
Wizard79
Für diejenigen, die in Quebec, Kanada leben . Der BAnQ stellt die vollständige Version dieses Buches online unter folgender Adresse zur Verfügung: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482 .
HoLyVieR
4
Da kann ich nicht zustimmen Es ist interessant, dass das Wort unveränderlich nicht einmal in diesem Buch existiert.
Jonas
2
Obwohl ich mein Exemplar der ersten Ausgabe behalte, glaube ich, dass ich nie darauf zurückgekommen bin. Der Grund könnte sein, dass Bücher zu jedem der von McConnell als wichtig erachteten Themen erschienen.
Apalala,
56

Einfach.

Pragmatischer Programmierer

Stoosh
quelle
6
+1 für realistisch. Dieses Buch ist relevant, leicht zu lesen und wahrscheinlich das Buch, von dem viele Entwickler tatsächlich profitieren können. Zu viele andere auf dieser Liste sind schwierig und ich bezweifle, dass sie vollständig gelesen wurden.
Spong
Diese Antwort wird wiederholt.
Clrod
+1 - mein zweites Lieblings-Programmierbuch hinter Code Complete (und ehrlich gesagt, manchmal ist es das erste)
Alan
36

Die Struktur und Interpretation von Computerprogrammen, auch bekannt als SICP

Als ich sah, dass SICP noch nicht gelistet war, verzog ich das Gesicht vor Schmerzen. :)

Warum: Norvigs Lob für dieses Buch als die größte Einführung in die Informatik, die je geschrieben wurde, ist nichts weiter zu ergänzen . Na gut, seit dem Warum? wurde angefragt: SICP behandelt die Grundlagen von Software auf zufriedenstellende Weise und wirft viele Perspektiven und Fragen zur Art der Berechnung auf, von denen einige noch offen sind zu tun, oder wie es geht.

Alternativtext http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg

Klicken Sie auf das Bild, um zum Online- Freitext zu gelangen . Die Videovorträge der Autoren mit Farben und Kleidung im 80er-Jahre-Stil sind ebenfalls leicht zu finden .

3 Umdrehungen
quelle
2
Alle begrüßen die SICP. IMO, es sollte das Lehrbuch für einen obligatorischen Einführungskurs in alle CS-Schulen sein. Es würde sicherlich Leute ausmerzen, die es beim Programmieren nicht wirklich schaffen (viel weniger CS), während CS und Programmierfähigkeiten für diejenigen mit Potenzial gestärkt werden.
Luis.espinal
1
@ luis.espinal SICP scheint zu viel für die Einführungsprogrammierung zu sein (es sei denn, wir sprechen von einer Graduiertenschule). Es gibt einen Grund, warum MIT den SICP-Kurs als Einführungskurs gestrichen hat. Trotzdem bin ich mir einig, dass es wertvoll ist, dieses Buch durchzuarbeiten (und die Übungen zu machen ...), aber dies in einem Standard-Hochschulsemester zu tun, wäre selbst für Selbstbehinderte schwierig ein überdurchschnittlicher Student. Auch die Einführung in Java / Python / Ruby / C ist für die Belegschaft relevanter. Je eher Sie sich an die imperativen Sprachen gewöhnen, desto besser ... SICP eignet sich danach hervorragend, um Ihren Horizont zu erweitern. Aber als Einführungskurs könnte es entmutigend sein ...
Cervo
1
@Cervo - Es ist ein berechtigtes Anliegen, und es scheint ein Overkill zu sein, aber (und dies ist eine völlig subjektive Position, die ich anerkenne), ich bin fest davon überzeugt, dass es eine tiefere Grundlage bietet, als man es normalerweise bei anderen Mainstream- Ansätzen findet. Die Jury ist immer noch mit dem MIT nicht einverstanden, nachdem sie auf Python umgestiegen sind (einige der Gründe liegen darin, dass es auch über FP-Funktionen verfügt und für wissenschaftliches Rechnen und Robotik sehr gut geeignet ist, was Scheme nicht ist.) Mit Python stimmt überhaupt nichts Ich mag die Sprache), aber die Jury würde ausfallen, bis eine Python'esque-Version von SICP herauskommt.
Luis.espinal
2
@ con't - Das heißt, ich empfehle die SICP nicht wegen des Schemas, sondern wegen ihres pädagogischen Inhalts. Eigentlich hätte ich vorgeschlagen, mit der Montage zu beginnen (die Leute haben das ziemlich erfolgreich gemacht), aber es gibt keine Montagebücher (und wahrscheinlich wird es auch keine geben) wie die SICP. Das nächste wäre Knuths Enzyklopädie (und das wäre ein Overkill.) Was Java betrifft , habe ich 12 Jahre damit gearbeitet, und ich würde es nicht zum Unterrichten empfehlen ein PL. C, Python oder Ruby sind viel besser gestaltete Sprachen.
Luis.espinal
1
@ con't - außerdem würde ich davor warnen, eine Sprache als pädagogisches Instrument zu verwenden, weil sie Mainstream ist. Mainstream ändert sich alle 2-3 Jahre, und mit Java ist die Sprache einfach, aber die Aufgabe besteht darin, die JVM, die Bibliotheken und die Architektur zu erlernen. Ich würde sagen, dass ich im 4. Studienjahr Java- und .NET-Unternehmensentwicklung lernen möchte. Und ich glaube (ich weiß, subjektiv ), dass es wichtig ist, frühzeitig für Genauigkeit zu sorgen. Wir haben viel zu viele Point-n-Click-Programmierer, die schon früh etwas Sorgfalt brauchten. Ich habe eine Menge Geld verdient, um den Mist
luis.espinal
32

Erwähnenswert:

Der mythische Mann-Monat

Alt-Text

Schwamm
quelle
1
Wenn ich nur ein Buch über Programmieren lesen könnte und wenn ich damit fertig bin, verschwindet es. Und für den Rest der Zeit sehe ich kein anderes Buch mehr, das wäre es. Wenn ich das Buch in meinem Regal belassen müsste, um es später anzusehen ... Es könnte sich um einen anderen, eher referenzorientierten Band handeln. +1 sowieso!
SingleNegationElimination
Ich habe dieses Buch genossen und es durchgelesen. Ein Großteil des Materials gilt jedoch nur für sehr große Projekte mit Hunderten oder sogar Tausenden oder Leuten, die wie ein Betriebssystem daran arbeiten. denn daraus schöpft er seine Erfahrung. Ich dachte, Code Complete sei viel hilfreicher in Bezug auf Kenntnisse, die ich jeden Tag nutzen könnte und die auf mich zutrafen.
Despertar
30

Einführung in Algorithmen

Jonas
quelle
Wir hatten die vierte Ausgabe, aber dies ist ein großartiges Buch über Algorithmen!
Chris
@ Chris: Ich glaube nicht, dass es eine vierte Ausgabe gibt. Die dritte Ausgabe ist ab September 2009, es ist also neu.
Jonas
Errr, zweite Auflage mit dem grünen Umschlag.
Chris
Dies ist das erforderliche Lehrbuch für meine Klasse in diesem Semester. Ich bin erfreut, dass es hier auf der Liste steht und dass es auf der ursprünglichen SO-Frage so hoch bewertet wird!
Pops
28

Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software

Dies ist das Buch zum Thema OOP-Design und -Architektur. Die Muster sind gut, wenn sie richtig verwendet werden, aber ich denke, der wahre Wert dieses Buches besteht darin, dass es Ihnen eine Sammlung von Ideen bietet, die Sie beim Entwerfen verwenden können.

Alt-Text

Fischtoaster
quelle
OOP repräsentiert nicht die Grenzen der Programmierung.
Inaimathi
Da Musterkataloge im Überfluss vorhanden sind (wie in diesem Buch), hat sich der Wert dieses Buches im Laufe der Zeit erheblich verringert.
Steven Evers
1
Lesen viele Leute dieses Buch von vorne bis hinten? Ich finde es eher eine Referenz als ein Buch. (Und eine Referenz, die Sie nicht suchen können.)
Idbrii
28

Robert C. Martins Clean Code

Robert C. Martins "Clean Code"

Sprachen, Frameworks, Methoden kommen und gehen, aber viele Ideen in diesem Buch sind, wie ich vermute, für immer.

Azheglov
quelle
4
Keine Beleidigung für das Buch, aber können Sie wirklich eine akzeptierte Antwort zu diesem Thema haben?
Martin Beckett
25

Refactoring: Verbessern des Designs von vorhandenem Code

Alt-Text

Daniel
quelle
25

Ich habe heute nur meine Bücher gezählt. 23 von ihnen. Es kommt darauf an, woran ich arbeite. Ich denke, die zeitlose Antwort ist "C-Sprache", von Kernighan und Ritchie .

Bildbeschreibung hier eingeben

Moshe
quelle
3
Eines der besten Sprachlehrbücher der Computergeschichte. Ein gutes Beispiel, wie ein Programmierbuch geschrieben werden sollte.
Wizard79
1
Es lohnt sich, die Codes für das
Martin Beckett,
19

Effektiv mit Legacy-Code von Michael Feathers arbeiten.

Es enthält viele gute Tipps, wie Sie eine vorhandene Codebasis testen und verwalten können, von denen ich die meisten erst kannte, als ich dieses Buch gelesen habe. Ein Muss, auch wenn der alte Code, mit dem Sie arbeiten, Ihr eigener Code ist, den Sie gestern geschrieben haben.

Effektiv mit Legacy-Code arbeiten

Paddyslacker
quelle
Was für eine großartige Tarnung.
Pops
Dies ist, wie es mein aktueller Fokus ist: Den Code, den ich geschrieben habe, bevor ich "testgetrieben" wurde, in einen testbaren Zustand zu bringen.
+1 Oft ja. Dieses Buch hat mir sehr geholfen, alten Code zu aktualisieren.
Grant Palin
18

Die Kunst der Computerprogrammierung von Donald Knuth

Alt-Text

Wizard79
quelle
1
Ich bin nicht sicher, ob dies als "1 Buch" qualifiziert ist (es sei denn, Sie meinen wirklich "nur Band 1")
Inaimathi
Ich habe seine ganze Serie, aber ich würde mich mit Band 1 begnügen. (Mein erster Informatikunterricht fand 1967 statt. Er war von unschätzbarem Wert.) "Kenne deine Datenstrukturen".
Ira Baxter
15

Die Java-Bücher, die man haben muss:

Effektives Java Von Josh Bloch

Alt-Text

Java-Nebenläufigkeit in der Praxis Von Brian Goetz, et. al.

Alt-Text

Java Puzzlers Von Josh Bloch, Neal Gafter

Alt-Text

Jeremy Heiler
quelle
3
+1 für effektives Java. Ich habe meine Java-Kenntnisse enorm verbessert.
Ryan Hayes
+1 für Effective Java , -1 für das Ignorieren von One per answer please .
Mark Booth
Der eine Satz Java-Bücher, den Sie haben sollten
Crowie
9

Gödel, Escher, Bach.

Alt-Text!

Miku
quelle
1
Ha! Dies war meine Wahl in der Liste der Bücher, die nichts mit Programmierung zu tun haben! Ich denke, das macht es nicht klassifizierbar?
Paddyslacker
Ich mochte dieses Buch wirklich, es wurde von meinem Theory of Computing-Prof an der UW Madison wärmstens empfohlen - sehr hilfreich beim Versuch zu verstehen, wovon zum Teufel er sprach.
Peter Turner
@Paddyslacker, GEB verbringt viel Zeit damit, sich über Berechenbarkeit und verschiedene Informatikkonzepte zu unterhalten.
5

Der Pragmatische Programmierer: Vom Gesellen zum Meister (Andrew Hunt und David Thomas)

Maniero
quelle
4

Getting Things Done (David Allen) bringt Ihnen bei, wie Sie mit Tausenden kleiner Aufgaben umgehen, die Sie als Softwareentwickler in Ihrer täglichen Arbeit erledigen müssen. Obwohl es sich nicht speziell an Entwickler richtet, ist es auf jeden Fall eine unschätzbare Hilfe, da die Softwareentwicklung in der Regel eine sehr große Anzahl kleiner Aufgaben umfasst, die priorisiert erledigt werden müssen. Zum Beispiel: Welche neuen Funktionen müssen implementiert werden, welche Fehler müssen behoben werden, welche Teile des Codes müssen umgestaltet werden, welche Teile des Codes müssen abgelegt oder erneut getestet werden, usw.

Dimitri C.
quelle
3

Die C ++ - Programmiersprache von Bjarne Stroustrup

Alt-Text

Prasoon Saurav
quelle
+1: Nur weil es so trocken und detailliert ist. Ich hatte nie das Gefühl, dass ich nach Abschluss eines Buches so viel über eine Sprache gewusst habe.
Mama
2

Das Zen der Code-Optimierung von Michael Abrash

Das Zen der Code-Optimierung

Ein Muss für Echtzeit-Programmierer - selbst wenn die prozessorspezifischen Informationen aktuell sind, ist die Denkweise von unschätzbarem Wert.

Ahelly
quelle
2

Zählt ein iPad? Ich würde gerne sagen, dass meine Nummer 1 in meinem Bücherregal ein Webbrowser und eine Suchfunktion ist. Online API und Referenzen sind der beste Ort und es würde von meinem aktuellen Projektsatz abhängen.

Chris
quelle
2
Nein, tut es nicht. Siehe den obigen Kommentar zu einem Kindle. Das heißt, ich liebe das iPad sowieso. Es kann eine wertvolle Ressource sein, aber es ist immer noch kein richtiges Buch. +1, ich bin in Fanboy-Stimmung. :)
Moshe
2

Entwurfsmuster in Ruby: Alt-Text

Ennuikiller
quelle
2

Bruce F. Websters "Fallstricke objektorientierter Entwicklung"

Wir haben zu viele "OO" -Entwickler, die immer noch nicht wissen, was ein Objekt oder eine Klasse ist oder wofür; Ich weiß nicht, wie gute OO, prozedurale, modulare und strukturierte Programmierung aussehen. und es irgendwie schaffen, schlecht gemachten Pseudo-Prozedur-Code zusammen mit Klassen zu cobbeln.

Dieses Buch (plus ein paar 70er Jahre Oldies über strukturiertes Design) würde diesen armen Seelen helfen, endlich zu verstehen, wie eine gute Objektorientierung aussehen sollte.


Darüber hinaus besteht die Möglichkeit, dass ich, wenn ich gezwungen wäre, ein Buch und nur ein Buch neben diesem auszuwählen, kein technikspezifisches Buch auswählen würde .

luis.espinal
quelle
1

Alt-Text

Es ist eines der wenigen Programmierbücher, die ich aufbewahrt habe, als ich anfing zu programmieren. Früher habe ich Leuten, die als erste angefangen haben, viel geliehen. Nun, nicht so sehr, da C nicht mehr die erste Programmiersprache vieler Menschen ist. Es beschreibt auf wunderbare Weise, was sich hinter den Kulissen abspielt, und die Beschreibung von Zeigern bringt echte Klarheit in das, was ansonsten für viele ein sehr verwirrendes Thema ist.

Rich Schuler
quelle
1

Jon Skeets "c # in Depth"

Alt-Text

ACP
quelle
1
Eigentlich mochte ich Jons Buch nicht. Die Informationen waren gut, aber es gab so viel "Oh, das sind wichtige 10 Kapitel von jetzt an" in dem Buch, dass es sich sehr schlecht anfühlte.
Steven Evers
2
Beachten Sie, dass es eine zweite Ausgabe gibt, die ein Update der ersten ist und auch C # 4 abdeckt.
Grant Palin
1

Objektdesign: Rollen, Verantwortung und Zusammenarbeit

Alt-Text

Dies ist bei weitem mein Lieblingsprogrammierbuch (auch wenn es nicht sprachabhängig ist). Meiner bescheidenen Meinung nach ist das Buch, das den Fall besser darstellt, wie man Objekte entwirft, die sich auf ihre Cousins ​​/ Brüder / Nachbarn beziehen. Ein Muss in jedem ernsthaften Programmierer-Bücherregal.

Roter Ritter
quelle