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 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.
+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!
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.
+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.
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 .
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
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.
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!
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.
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 .
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.
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
Java-Nebenläufigkeit in der Praxis Von Brian Goetz, et. al.
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)
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.
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.
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. :)
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 .
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.
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
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.
Antworten:
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.
quelle
Einfach.
quelle
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 .
quelle
Erwähnenswert:
Der mythische Mann-Monat
quelle
Einführung in Algorithmen
quelle
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.
quelle
Robert C. Martins Clean Code
Sprachen, Frameworks, Methoden kommen und gehen, aber viele Ideen in diesem Buch sind, wie ich vermute, für immer.
quelle
Refactoring: Verbessern des Designs von vorhandenem Code
quelle
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 .
quelle
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.
quelle
Die Kunst der Computerprogrammierung von Donald Knuth
quelle
Die Java-Bücher, die man haben muss:
Effektives Java Von Josh Bloch
Java-Nebenläufigkeit in der Praxis Von Brian Goetz, et. al.
Java Puzzlers Von Josh Bloch, Neal Gafter
quelle
Codierer bei der Arbeit von Peter Seibel
Interessant und inspirierend, sehr zu empfehlen.
quelle
Gödel, Escher, Bach.
!
quelle
Der Pragmatische Programmierer: Vom Gesellen zum Meister (Andrew Hunt und David Thomas)
quelle
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.
quelle
Die C ++ - Programmiersprache von Bjarne Stroustrup
quelle
Windows über C / C ++, Jeffrey Richter
quelle
Das Zen der Code-Optimierung von Michael Abrash
Ein Muss für Echtzeit-Programmierer - selbst wenn die prozessorspezifischen Informationen aktuell sind, ist die Denkweise von unschätzbarem Wert.
quelle
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.
quelle
Entwurfsmuster in Ruby:
quelle
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 .
quelle
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.
quelle
Jon Skeets "c # in Depth"
quelle
Objektdesign: Rollen, Verantwortung und Zusammenarbeit
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.
quelle
Eines meiner beliebtesten Bücher;
Objektorientierter Denkprozess von Matt Weisfeld
quelle