Introduction
Si les transparents sont une très bonne base pour prendre vos notes, l’usage d’un livre de Java reste tout à fait recommandé. Il y a plusieurs raisons à cela :
- Les transparents ne peuvent pas mentionner tous les détails du langage.
- Si la manière dont le contenu est présenté ne vous convient pas ou ne vous semble pas clair, le livre pourra vous amener un point de vue ou une approche différente qui pourrait mieux vous convenir.
- Vous pouvez utiliser votre livre pour préparer les examens avec des questions supplémentaires et approfondir certains sujets.
Les livres de référence sur Java sont nombreux et de qualité et de style très variables. Le meilleur ouvrage que je peux vous conseiller, malheureusement uniquement disponible en anglais, est :
- « Absolute Java, 4th edition » et suivantes
auteur: Walter Savitch
Editeur: Addison Wesley Hall / Pearson Education
Les explications du livre sont claires, les exemples précis et il contient également une très grande quantité d’exercices de tous types et de toute complexité. Bien entendu, ce n’est pas le seul ouvrage traitant du Java et notre bibliothèque dispose d’une certaine quantité d’ouvrages intéressants. Le plus simple selon moi est encore de vous rendre directement sur place et de feuilleter directement les livres pour voir s’ils correspondent à vos attentes. Vous y trouverez notamment le livre mentionné ci-dessus.
Dans tous les cas, vous retrouverez ci-dessous quelques références commentées (tiré du site web du cours de Java de Jamila Sam et Frédéric Chappelier à l’EPFL) :
Quelques conseils d’acquisition
- Ce cours utilise la version 8 de Java (JDK 8).
- N’achetez pas le livre s’il ne traite pas au moins de Java 6.
- 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.
- 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.
- 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. Vous pouvez aussi vous contenter de complémenter les transparents du cours par le tutorial Java en ligne de Sun et la documentation sur l’API. Mais ces documents de référence sont parfois un peu techniques pour des débutants et comportent en général peu de réflexion sur des questions de méthodologie en programmation.
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 suggestions sont les bienvenues !
Pour les notions fondamentales du langage Java:
- « Absolute Java, 4th edition »
Auteur: Walter Savitch
Editeur: Addison Wesley Hall / Pearson Education
Ouvrage complet et à la mise en page très agréable. Progression très proche de celle du cours. - « Programmer en Java », 5ème édition (Java 5 et 6)
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 » (4th 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 » (4th Edition)
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. - « 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.
Notez: utilise Java 5. - « Java Programming: From the Beginning »
Auteur: K. N. King
Editeur: W.W. Norton & company
Notez: le livre est plus vieux, n’utilise pas Java 6. - « The Java(TM) Programming Language » (4th Edition)
Auteurs: Ken Arnold, James Gosling, David Holmes
Editeur: The Java(TM) series
Référence de base par les créateurs de Java
Notez: utilise Java 5. - « Java: The Complete Reference »(7th Edition)
Auteur: Herbert Schildt
Editeur: McGrawHill Osborne
Herbert Schildt est un expert en Java et C++, auteur de nombeux ouvrages
à la présentations claire et didactique. La première partie de l’ouvrage
suit d’assez près la progression du cours. - « Java for Students » (6th Edition)
Auteur: Doug Bell, Mike Parr
Editeur: Prentice Hall
Notez: utilise Java 5.
… 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 » (8th 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 » (8th 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. L’édition 3 est de surcroît téléchargeable en ligne. Notez: utilise Java 5.
… et si vous souhaitez vous « guru-iser » :
- « Java in a Nutshell » (5th Edition)
Auteur: David Flanagan
Editeur: O’Reilly
Notez: utilise Java 5. - « The Art of Java »
Auteur: Herbert Schildt, James Holmes
Editeur: McGrawHill Osborne
Notez: utilise Java 1.4. - Java Foundation Classes in A Nutshell Auteur: David Flanagan
Editeur: O’Reilly
Notez: le livre est plus vieux, n’utilise pas Java 6. - « Sun Certified Programmer for Java 6 Study Guide »
Auteur: Kathy Sierra, Bert Bates
Editeur: McGraw-Hill Osborne Media
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):
- « Mieux programmer en Java »
Auteur: Peter Haggar
Editeur: Eyrolles
Très bon ouvrage présentant un certain nombres d’astuces et subtilités pour améliorer ses programmes Java (illustrés par des exemples concrets). - « 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 Programming Language Guide » (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.
- « Program Development in Java: Abstraction, Specification, and Object-Oriented Design »
Auteur: Barbara Liskov, John Guttag
Editeur: Addison-Wesley
Algorithmique et Java
Enfin, si vous vous intéressez de plus près à des concepts algorithmiques:
- « Data Structures and Algorithms in Java » (5th Edition)
Auteur: Michael T. Goodrich and Roberto Tamassia
Editeur: John Wiley & Sons, Inc. - « Algorithms in Java » (3th Edition)
Auteur: Robert Sedgewick, Michael Schidlowsky
Editeur: Addison-Wesley - « Algorithmes et structures de données avec Ada, C++ et Java » (2ème Edition)
Auteur: A. Guerid, P. Breguet, H.Roethlisberger
Editeur: PPUR
Autres références
D’autres références Java commentées sont disponibles sur le site developpez.com. En particulier:
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) :
- « Teach yourself programming in ten years » (article en anglais, par Peter Norvig)