I won't claim huge expertise but have three labs, ages 16 weeks to 2.5 years, that love being in the water, and have helped others introduce their pups to water as well.
The "trick" is maximum fun, minimum trauma. I start them off running through shallow water -- ponds and creeks -- as part of retrieves and while just playing. Either I or my older dogs lead the way.
When I think they're ready to begin real swimming (8-11 weeks), I tie a bumper to a check cord and toss it a little ways out into a lake or pond with a gradually sloping shoreline so the pup can run most of the way to the bumper before having to swim. As I repeat the process, I throw it further and further out. If the pup is nervous, I use the check cord to pull the bumper a little closer. It normally only takes one session to get the pup to be willing to swim happily.
Once the pup is swimming, I try to make swims part of their daily exercise, extending the length of their swims. I live near a canal and begin throwing bumpers all the ways across so they also get used to exiting and reentering the water on their own. The final challenge is getting them to enter water with steep (vertical or near vertical) banks, big drops to the water, or walls such as a swimming pool. I tend to leave that until they are completely comfortable with water and swimming.