Java Resource List
With descriptions and target user bases
Many online and print resources exist for learning the Java language. The challenge actually is not finding resources to use, but sifting through the ones that do exist to determine what tools are best to invest your time in. This page is designed to shed some light on some core tools available and help you decide which ones might be a good fit for you.
The recommended Java text book for this class
This $20 book published by Oracle--the home of the Java language--is the best introductory text I've found for java. It works well with the Oracle online tutorials linked below. Additionally, the pacing is appropriate for beginners and those with some programming background. Link to buy on Amazon.
The danger of web resources is they are often incomplete or paced poorly. I think of online resources as references more than tutorials.
Java Application Programming Interface (API) Documentation
THIS IS THE CORE REFERENCE FOR ALL JAVA PROGRAMMING because it lists the structure of all of the Java library's core classes. When any professional Java programmer is writing code, he/she/they most likely have this documentation opened in a browser tab. The most commonly used classes are in the java.lang package. Navigate to the java.lang in the upper left box, then the classes in that pakage appear in the lower left box. Finally, once you click a class, a full description appears in the right side frame.
There is no better way to learn Java than to read the class descriptions for the core langauge classes. It is dense and technical, but Java is a dense and technical language
Oracle's Java Tutorials
Oracle is a master of the Java language, and their tutorials are a core component of any online Java learning. Their tutorials are extensive and complete, and organized very systematically. There are even little checks for understanding in the form of a litlte quizz
Print resources (Books)
Java books abound. As one of the most popular begining programming langauges many folks have written books for target audiences. This list will provide Eric's ideas about the strengths and weaknesses of each.
Thinking In Java by Bruce Eckel
I highly recommend Bruce Eckel’s Thinking In Java to students who are intrested in developing an in-depth understanding of core concepts and aren't averse to reading a few hundred pages about Java ideas written with a very thoughtful eye toward the reasons behind various langauge features. Eckel is an avid teacher of Java and sevearl other core languages.
He is committed to open source code and publishing. His past editions of Thinking In Java are available for free download on his website and the current edition (4th) which is available for about $30 used on Amazon. I encourage you to have a paper copy of the book since reading a book that is a physical thing is great for brains, which gravitate toward to concrete.
Y. Daniel Liang's Introduction to Java
Laing's book is the best traditional text book I've come across for learning Java. The book covers several courses worth of content, ranging from basics all the way through Java database and network programming. His book is worthile for these reasons:
- His section headers and sub-topics are extremely descriptive and logically grouped.
- Key words are unobtrusively listed in the left and right margins for easy review and preview
- Code samples have outputs attached to each one
- Tips and tricks and warnigns boxes are very informative and are used to segement the text to avoid blobs of paragraphs.
- The code examples he uses are cohesive, meaning he builds classes and applications through a chapter with the reader to illustrate core points.
Sun Microsystem's Official Java Text by Arnold et al.
A more advanced reference-like text is The Java Programming Language, 4th Edition by Arnold, Ken, Gosling, James, Holmes, David. This book is endorsed by Sun, which is a developer of the Java language itself. For beginner programmers, many concepts here will be explained with more depth than needed, but it is good to be exposed to the deeper technical explanations of the language.
This book is best for folks who are committed to reading other Java text as they study and would like this complete reference to dig into the finer points of the langauge and its structure. This text is regarded as a definitive explanation of core concepts. It's not designed to teach beginners. Eric read this book in conjunction with a few other Java books.
O'Reilleys Java in a Nutshell
O’Reilly is a great publishing house for computer books, and tends to find solid authors to write what become definitive texts for many langauges. “X in a Nutshell” is a set of langauge referencs, and the Java in a Nutshell is handy to have around for its condensed language reference. If you enjoy heavy reading about the Java API, this is also a great resource.
This book is over 1000 pages long and contains detailed discussions of the uses of most of the core Java classes. The first hundred pages or so provides a topic-by-topic discussion of each of the core components of the language. I will often read these pages out of the O'Reilley books first as I learn a new language. The text is dependable and comes in handy for door stops or a short stool.