Sorry I haven't chimed in about the crate training! I don't claim to be a trainer, so the info I give you is my own experience. I'm just a vet student with an interest in animal behavior (and having a dog I adopted who was a stray with a lot of anxiety has taught me a LOT!)
Anyway, we've crated all our dogs. With our cattle dog and golden, we started them as puppies. We gave them crates that were just big enough to stand, stretch a bit, and turn around (means you may have to invest in a couple crates as the puppy grows) and we just put them in there to sleep every night. We never used it as a punishment, and you can start slow if they are not tolerating it as well (crying, etc). I found giving a treat for going inside the crate helped give a positive association to the crate. You could also put the dog in the crate, wait for the puppy to show any sign of calming, then let them out. Repetition has always been my friend with dogs!
Our cattle dog was so smart and really didn't cry much at all in the crate. He loved his crate and would go in all the time on his own. I think it's good to leave the crate open so they can go in whenever they want. For many dogs, it can be a safe haven. Some dogs do well with a covered crate, but beware dogs that like to chew! You don't want to end up with foreign bodies. Same goes for toys. I don't leave any toys in the crate, but my parents used to give the cattle dog this really tough black bone thing. With supervision, a Kong with treats or peanut butter is another great way to give a positive association with the crate. Stick them in the crate with that and just keep an eye on them.
The dog I have now I adopted at about two years of age. She was a stray the shelter had picked up and I have no idea if she was ever crate trained. She was a bit scared at first, but it didn't take long for me to lure her in with treats. She seemed quite content in the crate after she learned it wasn't going to kill her. Not she goes in the crate as soon as she hears the treat bag, and at my parent's house she'll wait outside the crate when it is bed time for someone to open it for her. Tonight I left her out in the apartment (that's rare. She usually goes in her crate when I am not home so she doesn't bark or get into trouble) but when I came home, she had gone in her crate all on her own. It was actually really cute!
I think the younger you start, the better. Positive associations are your friend!
Another thing I would do if I was getting a puppy is socialize the heck out of it, and get it used to everything. Tugging everywhere, handling of the feet, poking, loud noises, etc. I also taught my current dog to give me her paws to clip her nails. I got her to do that by asking for a paw, clipping JUST the tip of the claw (you do NOT want o hit the quick or the dog will have a hard time trusting) and then said "good!" And gave a treat. I do this for every nail. She's so conditioned that when she sees the clippers she sits there with her paw up waiting. Let me tell you, this has been a tremendous thing. It makes doing that so easy!
Clicker trainer is a lot of fun too. If you can get a book on it, I recommend it. Once a dog gets the hang of a clicker, you can use it to train so many things. We both enjoy learning tricks using the clicker!