First off: Head First does a great job of introducing you to a concept, but you'll want a good reference guide to go along with that. Luckily for you, JavaDoc is legendary in its ability to deliver knowledge quickly, accurately, and often times with great examples, across the many different versions of Java.
Second: Learning a language is good, but game design is TOUGH because of the fact that it is less about programming, and more about user experience, which means that your first goal should be "How can I entertain someone" and not "What can I learn to be able to code a game." Since your question mainly focuses on how to program a game, I'll assume that you have some sort of game in mind, and have dealt with the non-programming items involved with making a game, because that is another question entirely.
Third: Start to look into good code design, specifically architecture. Software Engineers use things called Design Patterns, which you can think of as building blocks, that solve common problems that programmers face when they are designing/implementing the system. Things like "How can I swap out how this object will behave without creating a new one?" or "I have one database that I need to access, but don't want to just make all the methods related to the database static, what can I do instead?". Head First makes a book about design patterns, and I found it to be both fun and informative in terms of what it offers.
Fourth: Once you feel comfortable using these design patterns, try laying out a larger system. You'll quickly realize that design patterns are great for solving problems, but they aren't very good for designing the whole architecture of a system. This is where software architecture comes into play. There are Architectural patterns, that, much like design patterns, are pre-thought up ways of doing things, only instead of solving specific problems, you use architectural patterns to try and achieve quality attributes, like security and performance. There are a lot of books out there, such as the Software Engineering Institute's Software Architecture in Practice, as well as free resources, and by the time that you are at this stage you'll probably know how you learn best and can ask for a book recommendation with a little more knowledge.
Fifth: Have fun. Game design is meant to be fun, but many people approach it expecting to achieve greatness with their first project and I hate to be the bearer of bad news, but that's not how it works. You're going to sink many late nights into your first project only to find that the way you set it up at the beginning means that you can't continue without starting from scratch, and guess what, it sucks. But remember that everything you learn from one failure can be applied to the next project, so keep a positive attitude and don't get burned out! GOOD LUCK!