You should pick a size that is just big enough for the puppy to stand up, turn around, and lay down in, at least when you're starting out. Buy based on how large your dog is going to be when fully grown, and make sure the crate comes with a divider so it can "grow with" your puppy.
You can basically choose from wire or the plastic type. The wire seems to be the most popular and most cost effective. Personally, I think they're easier to transport and they're plenty for most dogs. It's totally up to you.
I use a Midwest crate. I purchased it on Amazon. Very affordable, and I've never had problems with it. Plenty of other brands, too. Best bet? Google it and read reviews, haha.
Theres so many methods! I would start by looking up "Crate Games" or "Crate Training" on this forum where there are lots of tips and tricks to help make the crate a positive place for your puppy. Each dog is an individual, so different things will work for different dogs. There might be a sticky on the training forum, I think. Read through those, and then if you have specific questions we can help!