In The Art and Science of Java, Stanford professor and well-known leader in CS Education Eric Roberts emphasizes the student-friendly exposition that led to the success of The Art and Science of C. By following the recommendations of the Association of Computing Machinery’s Java Task Force, this first edition text adopts a modern objects-first approach that introduces students to useful hierarchies from the very beginning. Packages are translated into a minimally complex collection of pedagogical resources that make it easier to teach Java while retaining the language’s industrial strength.
This is for the iTunes U course Computer Science 106A, course materials from Stanford University. I found it on some weird book seller site for $60 instead of Amazon's $99. So far I'm loving it- it's very clear and direct yet conversational in tone. Only finishing up Chapter 2 but this may be one of my favorite textbooks in terms of enjoyability.
Disclaimer for those who are reading this book and taking the CS106a iTunes U course: I thought I was super slick by not only doing the course assignments but also doing every review question and assignment in this book (have to get my $60 worth after all). Around Chapter 4 (question 11) I ran into a question (nested for loop brick pyramid) that, despite having pored over the chapter, I was ill-equipped to answer or even fully grasp the simplest solution that I could find after vigorous googling. I grappled with it for weeks. When I finally gave up and decided to skip the rest of the programming exercises and move on with the course I realized I had been trying to do work more advanced than the class was assigning. At least I had pre-written code for upcoming assignments. I'm actually ahead in the course rather than behind.
tl;dr: Only do the programming assignments / exercises given by cs106a, don't bother with the ones in the book, trust me.
Amazing computer science methodology textbook. I learned to program in what was considered at the time, the most difficult language. This textbook just made it easy for me. The exercises are gradual, and they make you do the work. If you did not complete the exercises, you simply cannot continue to next chapter. By the end of the book, you will have some solid computer engineering principles.
Used this as recommended read for Stanford CS106A. The book feels really comprehensive and simplifies rather complex topics such as memory allocation, hash maps or recursion. Before getting there, it teaches the principles of object oriented design and Java in great detail. The absolute best part are the ~200 programming exercise, which are not necessary for CS106A. In average, if it took me a day to read a whole chapter, it would take me 6 or more days of coding to complete all the exercises at the end of the chapter. Going through the exercises will give you a hole new level of understanding of the topics on each chapter.
Started coding a while back without starting out with a good foundation (I basically tried the trial and error process). After Studying this book in a course in school it built the foundation I was missing to build every program I write today (whether it's JS, Obj-C, Java, etc.)
Really clear and easy-to-follow guide! Of course it can't cover every aspect of the language but it does cover a pretty good amount of it to give you a working knowledge of Java.