I'll try to come up with a different example: Consider
java.util.List (an interface) and
java.util.LinkedList (an implementation of this interface).
List - the interface - just defines all actions you can do with any list implementations. You can learn how to use a list from a documentation or a tutorial. Then you'll know how to use lists in your code. But to actually use a list in your code, you need to use one of available implementations.
LinkedList is just one of several (another is an
ArrayList, for example). And these implementations can have some specifics:
LinkedList implements more methods than just those prescribed by the
List interface (such as
push() and
pop()), but you cannot use them with
Lists in general. Also, you need to learn how to create or initialize lists - it's an easy deal, of course, you just use the proper constructor, but constructors are not part of the interface (they cannot be), so you don't learn about them just by studying the
List interface.
In this analogy, the JPA is an interface and Hibernate is one of the implementations (OpenJPA is another, for example). So if you'll learn Hibernate, you'll learn something more than just JPA - namely, you'll also learn how to configure and initialize Hibernate in your project, which is essential, but not covered by JPA. If you study JPA tutorials that do not describe any specific implementation, you'll have to learn the missing bits when actually trying to use some implementation in your project.
I personally would probably just start with Hibernate, in the hope that by the time I get well versed in it, the differences between JPA and Hibernate will become much easier to grasp.
I don't have experiences with Hibernate tutorials myself, but I'd probably start with the one hosted by Hibernate itself:
http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/tutorial.html. You might also try to search in our
book reviews forum or in the
Bunkhouse, if you are interested in books on the topics as well.