PPs have great advice, and I would add making an effort to give him as much control as possible. Really evaluate whether something is important to you before you say "no." How important is it that he not have a snack? Maybe he will eat less dinner, but if the snack isn't junk food, then why not? In fact, letting him eat anytime he's hungry teaches him to listen to his body and honor his hunger cues. Not keeping any junk in the house, so that all food options are acceptable, can really cut down on food struggles.
How important is it that he not go outside? If there is something specific going on, like you're in the middle of cooking something, be sure to explain exactly why he can't go outside. If it's just because you're tired, or it's hot, or whatever, you might try negotiating so that the answer isn't a flat "no" and he feels that his voice is being heard. We'll go outside for fifteen minutes, or however long.
With leaving places, make sure you're giving ample warnings, and understand that he doesn't grasp the concept of time well. Either give lots of warnings, like fifteen, ten, five, two, and one minute, or maybe get a ten minute hourglass that you can put on a table, or a watch with hands that he can see moving, so the time concept is more concrete. Or things like, "we can throw the ball five more times, then we need to go home and cook dinner" or down the slide five more times, etc.
You might look into a book that will help you get inside his brain a little and understand things from his perspective. The Emotional Life of a Toddler is good.