CS107: Livres et Tutoriels sur Java

Introduction

Consulter (ou télecharger dans les cas où c'est possible) un/des livre(s) de référence sur Java est intéressant pour plusieurs raisons:

  1. Les transparents ne peuvent pas mentionner tous les détails du langage
  2. Si vous n'aimez pas ou ne comprenez pas la façon dont la matière est expliquée dans les transparents, le livre vous apportera un autre point de vue qui vous conviendra peut-être mieux.
  3. Vous avez droit à votre livre de référence lors des tests.

Les livres de référence sur Java sont nombreux et de qualité et de style très variables.

L'ouvrage suivant  :


  • "Absolute Java, 6th edition"
    auteur: Walter Savitch et Kenrick Mock
    Editeur: Pearson Education

a une progression proche de celle du cours et constitue une bonne référence.

Il existe évidemment d'autres alternatives et nous vous présentons une liste d'ouvrages sérieux ci-dessous. Avant d'acheter éventuellement un ouvrage, feuilletez les livres sur Java en librairie (ou sur certains sites commerciaux qui vous permettent aussi de consulter les aspects importants du contenu du livre en ligne). Choisissez le livre qui vous convient en suivant les conseils fournis ci-dessous.

L'ordre dans lequel les sujets sont présentés diffère d'un livre à l'autre. Il n'y a aucun livre qui correspond à 100% à la progression du cours. Il ne faut donc pas vous attendre à parcourir les chapitres du livre en séquence durant le semestre.

Quelques conseils d'acquisition

  1. Ce cours nécessite une version >= 11 de Java. N'achetez pas de documentation pour des versions inférieures du langage.
  2. N'achetez notamment pas le livre si vous n'arrivez pas à déterminer la version de Java utilisée.
  3. Votre livre de Java doit traiter tout le langage. N'achetez pas un livre qui vous semble superficiel, par exemple en traitant seulement la programmation d'applets.
  4. Vérifiez qu'il s'agit bien d'un livre sur Java et pas sur un produit de nom similaire, par exemple JavaScript, JScript, J++, etc.
  5. Si vous ne souhaitez pas dépenser trop d'argent, vous pouvez essayer d'acheter un livre deuxième main d'un étudiant qui a suivi le cours l'année passée. Il est à noter que la documentation fournie par le cours peut être parfaitement suffisante dans un premier temps.

Quelques références

Une liste non-exhaustive de bons ouvrages sur Java vous est donnée ci-dessous. Si vous souhaitez nous faire partager vos découvertes et/ou opinions sur les ouvrages (cités ou non ici), vos commentaires sont bienvenus sur le forum du cours.

Pour les notions fondamentales du langage Java:


  • "Absolute Java, 6th edition",
    Auteur: Walter Savitch et Kenrick Mock
    Editeur: Pearson Education
    Ouvrage complet et à la mise en page très agréable. Progression très proche de celle du cours.

  • "Programmer en Java", 9ème édition
    Auteur: Claude Delannoy
    Editeur: Eyrolles
    Bon ouvrage de base. Concis mais instructif. Suit aussi d'assez près la progression du cours.
    Contient des références méthodologiques et des comparaisons avec C++. En français.

  • "Big Java" (7th Edition)
    Auteur: Cay Horstmann
    Editeur: Wiley
    Ouvrage très bien conçu. Aborde les objets d'emblée. A combiner avec le livre suivant (sur l'EDI BlueJ).

  • "Objects First with Java - A Practical Introduction using BlueJ" (8th Edition, Java 8)
    Auteur: David J. Barnes & Michael Kolling
    Editeur: Prentice
    Existe aussi en version française. L'EDI BlueJ est une EDI pédagogique mettant l'accent sur l'apprentissage de l'orienté-objet.
    Les critiques émises à son sujet sont très positives.
    Notez: utilise Java 5

  • "Head First Java" (2nd Edition)
    Auteur: Bert Bates, Kathy Sierra
    Editeur: O'Reilly
    Pas de textes policés, beaucoup d'images, une lecture rapide et des exercices pour vérifier la progression.
    Intéressant (et plein d'humour). Aide sans aucun doute à bien négocier le virage orienté-objet (mais relativement ancien).



  • "Java: The Complete Reference" (11th Edition)
    Auteur: Herbert Schildt
    Editeur: McGrawHill Osborne
    Herbert Schildt est un expert en Java et C++, auteur de nombeux ouvrages (Java 8).
    à la présentations claire et didactique. La première partie de l'ouvrage
    suit d'assez près la progression du cours.

... plus avancés

Les notions de bases sont aussi couvertes par les ouvrages ci-dessous. Elles le sont cependant souvent en présupposant un peu d'expérience en programmation.

  • "Core Java, Volume 1: Fundamentals" (11th Edition)
    Auteurs: Cay S. Horstmann, Gary Cornell
    Editeur: Prentice Hall
    Excellente référence, donnant plein de conseils sur les aspects méthologiques et l'utilisation de l'API.
    Enseigne les bases de Java mais nécessite une certaine expérience en programmation.
    Cet ouvrage est complété par un second volume, référencé ci-dessous,
    et couvrant des notions plus avancées de Java.

  • "Core Java, Volume II: Advanced Features" (11th Edition)
    Auteur: Cay Horstmann, Gary Cornell
    Editeur: Prentice Hall
    Suite du volume I, cité précédemment.

  • "Thinking in Java"(4th edition)
    Auteur: Bruce Eckel
    Editeur: Prentice Hall
    Excellente référence un peu «historique». Notez: reste de très bon conseil pour les aspects méthodologiques en dépit de son ancienneté.


  • Méthodologies de programmation

    Si vous avez acquis les bases mais souhaitez acquérir plus de savoir-faire au niveau de votre méthodologie de programmmation (Java et/ou orienté-objet):


    • "Refactoring -- Improving the design of existing code"
      Auteur: Martin Fowler (et al.)
      Editeur: Addison-Wesley
      Ouvrage incontournable pour acquérir un savoir-faire orienté-objet (ne vous sera pas utile que pour les cours de programmation de première année~!). Illustre au moyen de cas concrets des situations typiques en programmation OO en Java. Pour chaque cas, sont présentées de façon claire et détaillée, les solutions qu'il est conseillé d'adopter.

    • "Effective Java" (2nd Edition)
      Auteur: Joshua Bloch
      Editeur: The Java(TM) series (Sun)

    Toujours sous la même rubrique, mais un peu plus poussés:

    • "Design patterns -- Elements of reusable object-oriented software "
      Auteur: E. Gamma, R. Helm, R. Johnson, J. Vlissides
      Editeur: Addison-Wesley
      "La" référence en matière de méthodologie OO.

    Algorithmique et Java

    Enfin, si vous vous intéressez de plus près à des concepts algorithmiques:

    Autres références

    D'autres références Java commentées sont disponibles sur le site developpez.com. En particulier:

    Les tutoriaux de openclassroom sont souvent appréciés pour les premiers pas et quelques compléments pratiques.

    Et pour finir...

    Petite leçon d'humilité (ou comme quoi il faudra quand même passer un peu de temps à pratiquer toutes les notions apprises dans la littérature) :