Alan Cooper has written some great stuff about what skill level to direct your main design effort to. He calls it the perpetual intermediate, meaning that users' skill levels are often distributed like a Gauss curve:
Beginners will often have such basic questions as "What does the program do?", "How do I print?", "What is the program's scope?", but will often quickly move on to being Intermediates.
Intermediates will ask things like "How do I find facility X?", "What is this control for?" or "Oops! Can I undo?". Most users are likely to remain at this stage, as they don't have the time or will to move on to become an expert. Hence they stay perpetual intermediates.
Experts will do advanced things, such as automating tasks, use shortcuts, customizing the application for their needs.
The focus on designing for perpetual intermediates doesn't mean you should abandon your efforts to bring beginners up to speed, but you should always keep in mind that features that are helpful for beginners can as well be hurdles for intermediates and experts.
Some helpful design principles from his book "About Face" (quotes from chapter 3) include:
- Nobody wants to remain a beginner.
- Optimize for intermediates.
- Imagine users as very intelligent but very busy