Ist es vorteilhaft, alte Java-Programmierbücher zu lesen? [geschlossen]

10

Viele meiner Java-Bücher sind 5 - 10 Jahre alt. Hilft es immer noch, sie zu lesen, oder sollte ich innerhalb von 2 Jahren etwas verwenden?

Adel
quelle
2
Abhängig davon, ob die zum Lesen investierte Rückgabezeit noch veraltet ist, sollte sie auch mit der Zeit verglichen werden, die zum Lesen des aktuellen Buches benötigt wird.
Sarawut Positwinyu

Antworten:

26

Wenn es in den Büchern um die Sprache selbst geht , verlieren Sie sie und holen Sie sich eine neue.

Wenn es in dem Buch um das Programmieren als Fach geht (Kunst, Fach, Disziplin, Techniken, was auch immer), dann ist es definitiv lesenswert. Die besten Programmierbücher, die ich je geschrieben habe, wurden vor über 10 Jahren geschrieben.

CesarGon
quelle
12
Man kann argumentieren, dass es bei K & R um C selbst geht und es das beste C-Buch ist, das Sie finden werden.
Vitor Py
7
Ich stimme @Victor Braga zu. Es geht nicht darum, wann das Buch geschrieben wurde, sondern darum, wie sehr sich die Sprache geändert hat. Java hat sich in den letzten 5-10 Jahren stark verändert. C hat jedoch nicht. Ihre 5 Jahre alten Java-Bücher sind so ziemlich wertlos. Ihre erste Ausgabe des K & R C-Buches von 1978 ist jedoch weitaus aktueller (obwohl sie nicht 100% genau ist und die zweite Ausgabe von 1988 auch nicht). Der Hauptfaktor ist, wie sehr sich die Sprache und die unterstützenden Tools zwischen der Veröffentlichung des Buches und dem Zeitpunkt, zu dem Sie das Buch verwenden möchten, geändert haben.
Thomas Owens
1
+1 Smalltalk-Bücher sind 30 Jahre alt und immer noch von unschätzbarem Wert.
Kamil Tomšík
8

Es hängt vom Buch ab und davon, was Sie von ihnen und von Ihnen lernen möchten.

Es gibt gute Gründe, alte Bücher zu lesen:

  • Wenn sie Konzepte besser lehren als ihre neuen Entsprechungen.
  • Wenn sie eher allgemeine Prinzipien als spezifische Technologien vermitteln.
  • Wenn sich die Technologie, die sie unterrichten, nicht sehr verändert hat.

Persönlich behalte ich EINIGE meiner alten Programmierbücher:

  • Ich weiß, wo ich finde, wonach ich suche.
  • Sie haben meine Anmerkungen in sich.
  • Sie erinnern mich besser als neue Bücher.
  • Es ist (offensichtlich) billiger als Neukauf.

Zum Beispiel enthält das Benutzerhandbuch für den ZX81 (ab etwa 1981) eine hervorragende Beschreibung eines Algorithmus zum Zeichnen gerader Linien. Es macht für mich immer noch mehr Sinn als alles, was ich seitdem gelesen habe. Ich habe es im Laufe der Jahre mehrfach als Grundlage für eine Implementierung verwendet.

Trotzdem habe ich auch neue Bücher gelesen. Ich möchte auf keinen Fall im dunklen Zeitalter stecken bleiben.

Kramii
quelle
4

Wenn sie damals gut waren und sich die Sprachfunktionen, die sie unterrichten, nicht geändert haben - warum dann nicht?

Ich glaube nicht, dass sich die Grundlagen von Java seit 1.2 (oder Java 2) sehr verändert haben.

Martin Beckett
quelle
6
Dies hängt davon ab, wie Sie die Grundlagen definieren. Vor 5-10 Jahren waren Dinge wie Generika, Autoboxing, Aufzählungen, Varargs und die for-each-Schleife neu oder existierten noch nicht. Ich glaube, dass diese Funktionen die Art und Weise, wie Sie gute, qualitativ hochwertige, lesbare und wartbare Software in Java schreiben, grundlegend verändert haben. Ganz zu schweigen davon, dass eine Reihe von Standardfunktionen nicht abgedeckt würden, da die Leute ihre eigenen rollen müssten. Warum sollten Sie 5-10 Jahre alte Praktiken und Gewohnheiten lernen, die Sie nur brechen und neue Techniken lernen müssen?
Thomas Owens
5
@ World Engineer - Das ist beängstigend. Vor 12 Jahren war 1999, was bedeutet, dass Java 1.2 nicht verfügbar war. Danach wurden Änderungen an RMI vorgenommen, JNDI wurde zum Kern, das Assert-Schlüsselwort wurde hinzugefügt, Änderungen wurden an Regex vorgenommen und die NIO- und Protokollierungs-APIs, Generika, Scanner-Klassen, Autoboxing, Enums, Varargs und die for-each-Schleife wurden hinzugefügt. Ganz zu schweigen von Änderungen an AWT, Swing, JDBC sowie dem Compiler und JIT-Compiler. Diese Universität lehrt jeden, der dieses Buch liest, schlechte Gewohnheiten. Ich müsste den Wert eines jeden in Frage stellen, der dieses Programm abschließt, wenn er keine angemessenen Ressourcen für die ersten Kurse verwenden kann
Thomas Owens
3
@ Thomas Er sagte "Eröffnungskurs". Nichts, was Sie aufgelistet haben, wird in einem Einführungskurs unterrichtet, außer vielleicht einem Foreach.
Pete
2
@Pete In den ersten beiden Quartalen (ungefähr anderthalb Semester) meiner CS-Sequenz im ersten Jahr haben wir Generika, Scanner, Enums, Autoboxing und Swing verwendet oder diskutiert.
Thomas Owens
1
Der Text war eher eine Referenz, Swing und Scanner tauchten in der ersten Woche auf.
Weltingenieur
2

Eines der besten Bücher der Elektrotechnik (die Kunst der Elektronik) wurde vor über 20 Jahren geschrieben, und obwohl das Gebiet der Elektrotechnik sprunghaft gewachsen ist, möglicherweise das größte Wachstum aller Branchen, ist das Buch vielen immer noch als das bekannt einzelner, maßgeblicher Text.

Während viele der Beispiele im Buch veraltet sind und durch neuere Designs ersetzt werden, geht es in diesem Buch nicht darum, Ihnen beizubringen, wie man eine Digitaluhr baut, sondern wie Sie eine entwerfen sollten . Die Grundregeln gelten immer noch und wenn es ein gutes Buch war, dann ist es jetzt ein gutes Buch.

Wenn es sich um ein Buch über eine alte und obskure API handelt, ist es heute oder in naher Zukunft möglicherweise nicht nützlich, und Sie können wahrscheinlich darauf verzichten. Aber auch hier sagt Ihnen ein solches Buch nur, wie man etwas baut, und daher ist seine Lebensdauer begrenzt. Halten Sie sich an allgemeine Bücher.

Bewahren Sie die Bücher auf, in denen Sie lernen, wie Sie eine Lösung entwerfen, und nicht die, in denen Sie erfahren, wie Sie sie erstellen. Es mag klar sein, welche Methoden sich geändert haben, und Sie können diese Teile einfach ignorieren, aber ein gutes Buch über C ist immer noch Gold wert.

Silberfeuer
quelle
1
Der erste Teil ist wahr, aber ich stimme dem zweiten Teil nicht zu. In einem Buch über Java lernen Sie normalerweise, wie man mit Java baut, und nicht, wie man ein System entwirft, das irgendwann in Java implementiert wird. Außerdem ist der Vergleich einer relativ unveränderlichen Sprache (wie C) mit einer sich schnell ändernden Sprache (wie Java) fehlerhaft.
Thomas Owens
2

Es kann hilfreich sein, alte Bücher als Referenz aufzubewahren, wenn Sie an Legacy-Systemen arbeiten, die auf veralteter Technologie basieren, insbesondere an alten J2EE-Systemen. Früher habe ich ein altes J2EE-Buch aufbewahrt, weil ich gelegentlich auf alten Code stieß, der EJB 2.1 oder alten Swing-Code verwendete.

Die letzte Version von Java, die große Änderungen an der Sprache einführte, war Java 5 im Jahr 2004. Alle Bücher, die nach dieser Zeit geschrieben wurden, sollten diese Sprachänderungen enthalten und allgemein lesbar sein (und möglicherweise nicht einmal eine neuere Ausgabe veröffentlicht haben). Beachten Sie jedoch, dass sich seitdem viel im Java-Ökosystem geändert hat. Das Spring Framework und Maven zum Beispiel sind heute weit verbreitete Technologien, die damals nicht so verbreitet waren.

Ken Liu
quelle
0

Gehen Sie zu amazon.com und suchen Sie nach Java-Büchern. Normalerweise sind Bücher ungefähr gleich, aber Sie können herausfinden, welches besser ist, indem Sie Rezensionen lesen. Ich wähle die Bücher immer so aus - lese die Rezensionen und entscheide dann, welche ich lesen werde.

Sergey
quelle
-1

Für die Java-Sprache und das Programmieren in Java ist es gut, die neuesten Ausgaben dieser Bücher zu haben. Die WeakReference-Klasse stammt beispielsweise aus Java 1.2, und es gibt nicht viele Programmierer, die nicht wissen, dass diese Klasse überhaupt in Java SE vorhanden ist Das bedeutet, dass das Lesen der neuesten Bücher für Java das Beste ist. Dies ist nur für einige Frameworks gut. Um diese neuesten Bücher zu verstehen, benötigen Sie jedoch Grundlagen, die Sie mit den neuesten Büchern nicht erhalten werden, aber die mit den meisten empfohlenen Büchern. Ich denke, Thinking in Java neueste Ausgabe ist ein gutes Buch, um mit Java zu beginnen

user31645
quelle