I'm fairly new to SMT myself, but I'm having amazingly good luck. Here are a few things I've found that help, FWIW:
- If you're doing anything smaller than 0805 and huge pin-to-pin spacing on ICs, get a stencil. OSH Stencils and the like are making them for peanuts now. Take advantage of that.
- Make sure the stencil is FLAT on the board. This one is a killer for tiny packages. I have some 4mm x 4mm, 10-pin dual-output linear regulators with a large ground pad on the bottom -- these things were a bit of a challenge, since the pads need to have some solder paste directly on them (meaning, good stencil registration), but not too much (meaning tight coupling of the board and stencil, and adequate control over paste application.) Tape your board down, tape your stencil to the board, and make sure it's stretched out enough to remove any waviness. If your paste is smearing, you should work on your application process.
- If you have solder mask, a stencil, and good paste application, you won't get bridges. If you still get bridges, work on fixing those three things first.
- Using a hot air station, warm your whole board at ~100C for a bit, then ramp it up to operating temperature. Your parts will align nicely if all sides are able to reflow around the same time. Placement isn't nearly as critical then. When you get the hang of this, it's so quick and easy with a good air wand that I don't see any reason why anyone would ever want to go back to a soldering iron.
- If you can develop your board in such a way that you can assemble it in pieces, that's best for the reasons already given -- particularly, being able to test the PSU section before populating the rest. I have cut stencils into "areas" and built those areas one-by-one, but it takes some thought during layout to make that possible. On dense boards, it's often all or nothing, since you don't want to thermally-stress neighboring stuff too much, or risk unintentional (potentially botched) reflowing.
As for your circuit design, always think about what happens before the entire thing is up and functional. Think about what happens while the PSU is ramping up; if the PSU is under-volted; if the MCU locks up; if the MCU hasn't initialized; etc. etc. Make sure the default state, before the whole thing is under software control, is safe and sane. Pull-ups / downs are cheap insurance. I often take all the IC reset pins and bring them to a central pull-up with MCU override, so they're all held in reset until the software is ready to bring them online. If the MCU has brown-out protection, this helps to make sure they're not allowed to initialize (or stay active) under less-than-optimal PSU conditions also.