@smartguy:
Just because that is the most common path, doesn't mean it is always the right one.
3D has a lot to teach a beginner.
1) The dream shatterer role. 3D is easy to start but difficult to actually get a GAME going, rather than just a tech demo type thing. In this regard it teaches beginners how hard it is to program, so that they don't say "Hm, I can put a sprite on the screen...MMO TIME!!!"
2) Its easy. You can turn things around and get familiar with the language while just having fun and messing around in 3d.
Now, 3D for beginners also has some negative side effects as well:
1) Many good practices and experiences with well structured coding that you learn in text and 2d forms are ignored, leading to sloppy, un-commented code.
2) A cap for production. As a beginner, you won't really be able to go far in 3d, mostly because you lack experience THINKING correctly. This creates a limit to how much you can get done initially which can be demoralizing to some beginners, putting them off of programming entirely.
Summing up:
Jumping straight into 3D is a fun way to jump in and just do stuff. However, if you want to learn the language in its entirety, start basic and work your way up. Then, once you hit 3D, you will realize that all the tricks you learned (and were forced to learn) in 2D will help you rid yourself of the limit imposed by 3D on beginners.
Great Quote:
"Time...LINE??? Time isn't made out of lines...it is made out of circles. That is why clocks are round!" -Caboose