My dog was trained to stay off the couches and my parents bed but he was allowed to goon my and my three brothers beds. I was gonna try to keep him off but 1) I actually liked sleeping with him and 2) I had to leave the door open because the cats believe my room is their room and if I close the door Then I have to put up with two screaming siamese cats, which I can put up with but it wakes my brothers and mom up, so there was no way to keep him off my bed while I was sleeping.
Anyway I found keeping the dog of the couches was very easy to train and my dog had been going on couches for 5 years when we decided to train him to stay off. I used the command "off" which can be used to keep him off any furniture and to keep him off people if he jumps up. To train this your dog must have a bed/crate of his own first, or some type of sleeping surface. Since the dog will be a puppy your main line of defense is to make sure he never gets on the couch in the first place, since you are housebreaking you will be constantly supervising him anyway so this will be simple. If you see the dog is about to jump on the couch (staring intently on top of couch, getting ready to pounce) quickly interrupt him with a noise (clap or make squeaking sound, anything that will make him look at you) don't yell though you don't want to scare him. When he looks at you call him over if he listens to that or bring him over to his bed and place him on it, command him "bed" or "go to bed" as you place him there. Then give him a yummy treat. Make sure you do this every time he is about to jump on furniture, never let him get on. If he never gets on the couch you may never need to teach him off (although you may want to if he jumps on guests).
If he ignores your distraction or you don't stop him in time you will need to teach him "off." To do this, once he is on the couch walk over to him immediately and either coax him off or if he really does not want to get off gently pull him off by the collar. As he starts to jump off say the command "off" and give him treats and praise as soon as his paws touch the ground. Then once again get him to his bed and say "bed" or "go to bed" and give him praise and a treat when he gets their (later when he knows the "down" command you will require he lays down on his bed when you tell him "go to bed" but until he knows down just have him go to the bed). In both cases he will learn when he goes on the couch nothing good happens but when I get off or go to my bed instead I get yummy treats, and he will stop doing the behavior.
If he jumps on the couch while you are sitting there because he wants your attention or simply to be with you, Get up immediately and walk a few steps, If he jumps off turn around right away and give him lots of praise and a treat. Do this every time and he will learn that getting on the couch makes you go away but getting off the couch gets me attention. If he does not get off when you start to walk away you will do the same thing as when he jumps on the couch and your not sitting there.
I also suggest praising him whenever you see him go to his bed on his own. Even when you did not just make him get off of something, so he figures out that his bed is the right place to be.
Of course preventing him from ever getting on the couch in the first place is the best thing but is not always possible. If I were you I would always have a pocket full of treats whenever you are home so you never miss giving him a treat for good behavior, that goes for any good behavior not just getting off furniture. It also means you will never forget to grab a treat or two when you take him out to potty, especially if you are stopping him right when he is abut to go and need to get out fast. Hope I helped, please ask if you have any more questioned as I'd be glad to answer them if I can.