When I first got my 5 shifting was hard as hell. I was used to driving my VW Turbo diesel and since it’s a diesel it doesn't care how or when you shift, the high torque at low RPMs make it really hard to stall. When I first started driving the BMW it was a living hell. I was used to just letting go of the clutch without giving any gas at all because the torque was so damn high the car efortlessly took off. With gasoline engines its different though, you have to give it some gas (obviously). Since BMWs are performance cars and are very sensitive it takes some precision and practice to making a smooth shift, most of my friends with BMWs still jerk the car a bit when shifting and they've had them for awhile (that’s because they suck!). Maybe you're just not giving it enough gas, try doing this, I hope it helps:
1. First of all, you have to know how the clutch works. If you don't go to
www.howthingswork.com and see it there, it is explained very well, then come back and read this.
2. Try giving the engine a bit more gas (just don't go past 3,000, as this is pointless unless you're racing) and then very slowly START RELEASING THE CLUTCH. When you feel the car start moving, KEEP THE CLUTCH WHERE IT IS, let the engine overcome the weight of the car as you begin moving.
3. When you feel that the car has started moving, then you can SLOWLY release the clutch all the way, then give a bit more gas and the car should smoothly take off. As you gain speed it starts getting much easier, starting from dead point with a manual is toughest. That's all theres to it.
By the way, I usually up shift at 2,500 RPM, and downshift at around 1,900. I don’t know if the same can work with a 3 series since I've never driven a manual one but you should just try to find that "sweet spot." Good luck.