Place the tapioca pearls in a saucepan. Cover them with the water. Let them sit for 20-45 minutes until the tapioca pearls have soaked up most of the water and become plump.
Drain any excess water from the pan.
Stir in the whole milk, half and half and salt. Bring the mixture to a very low boil. Watch it closely so it does not over boil. Stir constantly.
Then stir in the granulated sugar. Cook on a low simmer for 5-7 minutes until the pearls continue to get plump and the mixture thickens slightly.
Remove from heat.
Place the beaten eggs in a separate bowl. Stir in a few tablespoons of the tapioca mixture into the eggs. Do this 2-3 more times. This is an important step to bring the eggs to a warm temperature without scrambling them.
Pour the egg mixture into the saucepan with the remaining tapioca mixture. Increase the temperature on the pan to medium heat. Stir and heat (but do not boil) until the mixture has thickened and can coat the back of a wooden spoon.
Remove the pan from the heat. Let the mixture sit for 10-15 minutes. Then stir in the vanilla extract.
Continue to stir the pudding while it cools so that a skim does not form on the top of the pudding mixture. Cover with plastic wrap and chill until ready to serve. Enjoy!