I learnt by following thenewboston tutorial series on youtube. This covers all the fundamentals of java, creating classes, learning about functions, right down to how to add two integers. (I hope thats what you meant by complete newbie
I don't know if you have heard of http://projecteuler.net/problems
, but thats a really cool site where you can build these new skills by solving problems, then looking at other peoples code to see how they did it (you have to register to answer questions).
After that I pretty much dived into creating my first 2d side scroller game learning new techniques (bufferstrategy, graphics2d etc. All in java2d, no opengl) I needed on the fly! Of course I had programmed in AS3 before, but nothing like this. This is by FAR, the best way to learn I think, starting to make your own game and solving problems as you get to them. Here is a screenshot of my first:
Now I'm trying to learn openGL in the same way. By converting 'Oasis' from Java2D to openGL, while reducing the tile size for a better look. That probably explains some of the previous questions from me hey! Shaders is my next big thing.
Good luck to your friend!