Est-il avantageux de lire d'anciens livres de programmation Java? [fermé]


10

Beaucoup de mes livres Java ont entre 5 et 10 ans. Est-il toujours utile de les lire, ou dois-je utiliser quelque chose dans les 2 ans.


2
dépend est-il encore obsolète le temps de retour investi pour le lire doit également être comparé à l'utilisation du temps pour lire le livre à jour.
Sarawut Positwinyu

Réponses:


26

Si les livres concernent la langue elle - même , perdez-la et obtenez-en une nouvelle.

Si le livre traite de la programmation en tant que sujet (art, sujet, discipline, techniques, etc.), il vaut vraiment la peine d'être lu. Les meilleurs livres de programmation que j'ai écrits ont été écrits il y a plus de 10 ans.


12
On peut affirmer que K&R concerne C lui-même et que c'est le meilleur livre C que vous trouverez.
Vitor Py

7
Je suis d'accord avec @Victor Braga. Il ne s'agit pas de savoir quand le livre a été écrit, mais de savoir à quel point la langue a changé. Java a beaucoup changé au cours des 5 à 10 dernières années. Cependant, C ne l'a pas fait. Vos livres Java de 5 ans sont à peu près sans valeur. Cependant, votre première édition du livre K&R C de 1978 est beaucoup plus à jour (bien qu'elle ne soit pas exacte à 100%, pas plus que la deuxième édition de 1988). Le facteur principal est à quel point la langue et les outils de support ont changé entre la publication du livre et le moment où vous souhaitez l'utiliser.
Thomas Owens

1
+1 Les livres smalltalk ont ​​30 ans et sont toujours inestimables.
Kamil Tomšík

8

Cela dépend du livre et de ce que vous voulez apprendre d'eux et de vous.

Il y a de bonnes raisons de lire de vieux livres:

  • S'ils enseignent des concepts mieux que leurs nouveaux équivalents.
  • S'ils enseignent des principes généraux plutôt que des technologies spécifiques.
  • Si la technologie qu'ils enseignent n'a pas beaucoup changé.

Personnellement, je garde CERTAINS de mes anciens livres de programmation:

  • Je sais où trouver ce que je cherche.
  • Ils contiennent mes annotations.
  • Ils font mieux ma mémoire que les nouveaux livres.
  • C'est (évidemment) moins cher que d'en acheter de nouveaux.

Par exemple, le manuel d'utilisation du ZX81 (datant d'environ 1981) contient une excellente description d'un algorithme de dessin en ligne droite. Cela a toujours plus de sens pour moi que tout ce que j'ai lu depuis. Je l'ai utilisé comme base d'une implémentation à plusieurs reprises au fil des ans.

Cela dit, j'ai aussi lu de nouveaux livres. Je ne veux certainement pas rester coincé dans les âges sombres.


4

S'ils étaient bons alors et que les fonctionnalités linguistiques qu'ils enseignent n'ont pas changé - alors pourquoi pas!

Je ne pense pas que les fondamentaux de Java aient beaucoup changé depuis 1.2 (ou Java 2).


6
Cela dépend de la façon dont vous définissez les fondamentaux. Il y a 5 à 10 ans, des choses comme les génériques, la mise en boîte automatique, les énumérations, les varargs et la boucle for-each étaient nouvelles ou n'existaient pas encore. Je pense que ces fonctionnalités ont fondamentalement changé la façon dont vous écrivez des logiciels de bonne qualité, lisibles et maintenables en Java. Sans oublier, un certain nombre de fonctions standard ne seraient pas couvertes car les gens devraient rouler les leurs. Pourquoi apprendre des pratiques et des habitudes de 5 à 10 ans que vous n'aurez qu'à casser et apprendre de nouvelles techniques?
Thomas Owens

5
@World Engineer - C'est effrayant. Il y a 12 ans, c'était en 1999, ce qui signifie que Java 1.2 était sorti. Après cela, des modifications ont été apportées à RMI, JNDI est devenu le noyau, le mot-clé assert a été ajouté, des modifications ont été apportées à regex, et les API NIO et de journalisation, les génériques, la classe Scanner, l'autoboxing, les énumérations, les varargs et la boucle pour chaque ont été ajoutée. Sans parler des modifications apportées à AWT, Swing, JDBC et au compilateur et au compilateur JIT. Cette université enseigne de mauvaises habitudes à quiconque lit ce livre. Je devrais remettre en question la valeur de toute personne diplômée de ce programme si elle ne peut pas utiliser les ressources adéquates pour les premiers cours
Thomas Owens

3
@Thomas Il a dit "cours d'ouverture". Rien de ce que vous avez énuméré n'est enseigné dans un cours d'introduction, à l'exception peut-être d'un foreach.
Pete

2
@Pete Nous avons utilisé ou discuté des génériques, Scanner, enums, autoboxing et Swing au cours des deux premiers trimestres (environ un semestre et demi) de ma séquence CS de première année.
Thomas Owens

1
Le texte était plus une référence, Swing and Scanners est apparu la première semaine.
World Engineer

2

L'un des meilleurs livres de génie électrique (l'art de l'électronique) a été écrit il y a plus de 20 ans et même si le domaine du génie électrique a augmenté à pas de géant, peut-être la plus grande croissance de toute l'industrie, le livre est toujours connu de beaucoup comme le texte unique faisant autorité.

Bien que de nombreux exemples du livre soient obsolètes et remplacés par des conceptions plus récentes, le livre ne vise pas à vous apprendre à construire une horloge numérique, mais à en concevoir une. Les règles fondamentales s'appliquent toujours et si c'était un bon livre, alors c'est un bon livre maintenant.

Évidemment, si c'est un livre sur une API ancienne et obscure, cela peut ne pas être utile aujourd'hui ou dans un avenir proche et vous pouvez probablement vous en passer. mais encore une fois, un livre comme celui-ci ne vous dit que comment construire quelque chose et, par conséquent, sa durée de vie est limitée, restez avec des livres généralisés.

Gardez les livres qui vous apprennent à concevoir une solution et non ceux qui vous expliquent comment la construire. Il peut être clair quelles méthodes ont changé et vous pouvez simplement ignorer ces parties, mais un bon livre sur C vaut toujours son pesant d'or.


1
La première partie est vraie, mais je ne suis pas d'accord avec la deuxième partie. Un livre sur Java va généralement vous apprendre à construire avec Java, pas à concevoir un système qui sera éventuellement implémenté en Java. Et aussi, comparer un langage relativement immuable (comme C) à un langage à évolution rapide (comme Java) est défectueux.
Thomas Owens

2

Il peut être utile de conserver les anciens livres comme référence si vous travaillez sur des systèmes hérités basés sur une technologie obsolète, en particulier les anciens systèmes J2EE. J'avais l'habitude de garder un vieux livre J2EE parce que je rencontrais parfois un ancien code qui utilisait EJB 2.1 ou un ancien code Swing.

La dernière version de Java à introduire de gros changements dans la langue était Java 5 en 2004. Tous les livres écrits après cette date devraient incorporer ces changements de langue et devraient pouvoir être lus en général (et il se peut même qu'aucune édition plus récente n'ait été publiée). Notez cependant que beaucoup de choses ont changé dans l'écosystème Java depuis cette époque; le framework Spring et Maven par exemple sont maintenant des technologies largement utilisées qui n'étaient pas si répandues à l'époque.


0

Allez sur amazon.com et recherchez des livres java. Habituellement, les livres sont à peu près les mêmes, mais vous pouvez déterminer lequel est le meilleur en lisant les critiques. Je choisis toujours les livres comme ça - lisez les critiques et décidez ensuite lequel je vais lire.


-1

Pour le langage Java et comment programmer en java, il est bon d'avoir les dernières éditions de ces livres, par exemple la classe WeakReference est de Java 1.2 et il n'y a pas beaucoup de programmeurs qui ne savent pas que cette classe existe même dans Java SE , ce qui signifie que la lecture des derniers livres pour Java est la meilleure chose, cela n'est bon que pour certains frameworks, mais pour comprendre ces derniers livres, vous devez avoir des bases, que vous n'obtiendrez pas avec les derniers livres, mais le avec les livres les plus recommandés. Je pense que la dernière édition de Penser en Java est un bon livre pour commencer avec Java

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.