I use a harness. It costs a bit more, as puppies outgrow sizes pretty quickly, but since I can keep using the outgrown harnesses for foster dogs, I don't feel like it's wasted money. You can always donate the harnesses to a rescue group (who will be grateful for the equipment, as they're always short on flat buckle collars, leashes, and harnesses) when you're through.
I used both, and alternated, for walks with me because I didnt want my dog to get used to only walking on a harness. Whenever I let her run around though and drag a leash around, I used a harness in case the leash caught on anything
my dog had a flat collar untill he was 9 months old. then i used
a choker. at 9 months old my dog was trained to "heel" so there was
no pressure on the choker. sometime after 9 months old he was trained
to heel on either side with or without a leash. depend on training more so
than a collar, harness or leash for whatever you want your dog to do.
Do you plan on doing and training with a trainer with your dog? My trainer asked that we only use the flat collar while she is a puppy when she is working/training. That way they learn to distinguish that when the flat collar is on it is time to train. If you are training them yourself you might ignore that, but if you are going to use a trainer they may have an opinion on it. I know different ones do it different ways.
One thing to consider is that if your dog pulls on a flat collar a harness can actually encourage them to pull more. I use a front clip harness so that if she pulls it turns her instead of the the top clip that can encourage pulling.