I will be purchasing a baby Ball Python soon and would like to set up the enclosure as soon as possible so it's all ready and set when I get the snake.

I was wondering is a 20 gallon glass aquarium too large for a 3-5 month old Ball Python? I've heard lots of people mentioning a 10 gallon, but will a 20 gallon be more suitable so the snake doesn't outgrow it so quickly?

Also...can you guys please give me a general setup of what I will need?

-Glass aquarium (10 or 20 gallon) with screen top
-Water bowl (for soaking and drinking....size?)
-Bedding (what kind?)
-Heating sources (Heat Lamp or under-tank heat mat? What are the best?)
-Thermostats (?)

What type of hiding areas should I provide? Just one or more than one. And should it be natural like a tree with holes in it that the snake can crawl through and hide or more unnatural like a overturned pot with a hole in the side?

Anything else?