Today, I want to share with you the best book to learn Java from scratch, IMHO. If you are looking for a great online Java course, check out my recommendation here.
Building Java Programs: A Back to Basics Approach
The book was written by two Computer Science professors from the University of Washington, Stuart Reges and Marty Stepp. When I was taking my intro Java courses there, the second edition was the most recent one, so this is the version that I’m going to focus on here, however, I will also provide links to the newest version.
The book covers a pretty wide range of topics, such as primitive data types, loops, conditionals, arrays and ArrayLists, OOP, LinkedLists, Trees, and more. See the Table of Contents of the second edition here, and here for the fourth edition.
The authors use the “objects later” approach. It means that first, you will gain a solid foundation of procedural techniques and then learn the object-oriented programming. I think this is a good method for people who are just starting to learn how to program.
- It’s great for beginners because it explains all the basic foundations.
- Each section has a short summary of the topic.
- Each chapter has three different sets of assignments to help you master the material: self-checked problems (answers in an appendix), exercises, and programming projects.
- The book (second edition) comes with additional VideoNotes that can be viewed online.
- It has an accompanying website called Practice-It where you can practice material from every chapter. The system checks if your code is correct. It’s free and you can access it anytime. You don’t need any special code to see or solve the problems.
- The Practice-It site also has previous midterms and finals from CSE142/SCE143 courses (University of Washington Computer Science intro to programming courses) and more.
- The book also comes with PowerPoint lecture presentations – one for each chapter. You can see the list for the second edition here, and for the newest edition here.
- The access to the VideoNotes expires, I think, after a year from the first usage (second edition)
The newest edition (fourth) has an additional chapter on functional programming and some chapters have additional sections and problems to solve. You can also purchase it with MyProgrammingLab that provides even more practice problems (though I’ve never tried it).
If you’re just starting your programming adventure, this is the book that will teach you all the necessary theory and provide enough problems to practice.
If you’re looking for more ways to challenge your programming knowledge, I encourage you to check out the Practice-It site and solve a few problems.