This is a good two part question, let's start with the soap scum which already resides on your shower walls. You're going to need a tub and tile cleaner, a non-scratching sponge, a couple of microfiber cloths and baking soda (this one is optional, but the extra abrasion will really help tackle the stubborn areas).
We'll start by spraying the shower down with your tub and tile cleaner - now there are many different types of finishes in a shower, so make sure you use a product which is safe for your shower type. You really want to soak the area and then let the product sit on the surface for a good five minutes. This is called dwell time and this is how you will spend less time scrubbing the soap scum and more time letting the product do the work.
Next you'll take your sponge and start scrubbing in an 'S' pattern to ensure you get the entire surface. For heavy duty soap scum, you might try sprinkling some baking soda on the sponge for extra abrasion.
The final step involves rinsing everything away using the hottest water you can handle - it is a lot easier if you have a removable shower head for this job, but a bucket of hot water, a sponge and some patience will get the job done also.
The second part of the answer involves preventing soap scum in the first place. I have two suggestions for stopping the scum before it starts, first, toss the bar soap and move to a shower gel or body wash product (which usually leave substantially less residue behind). That said, the most effective way to stop soap scum in it's tracks is to use a squeegee (like this OXO Household Squeegee) after every shower. I know it sounds like a pain, but trust me, the thirty seconds it takes to wipe all the moisture off the shower walls after your shower will save you 20 minutes of scrubbing each week! If everybody does their part, you'll be rid of your soap scum woes rather quickly!