For me, web development seems like the exact opposite of desktop development.
In desktop development, you learn the underlying foundations first (the programming language, files, networking, graphics, GUIs, etc), then weave them together to build your application. It's slow, but worth it -- often the concepts are universal. How many times do you have to re-learn file IO?
In web development, it's really easy to build the finished application quickly but not understand any of the foundations. Look at how many "rapid development" frameworks there are out there; most of then are fast to install, and the result is usually awesome. And plugins! There are plugins for everything, and they work so well! But the foundations are intimidating -- especially because there are so many layers of abstraction piled on top of each other. Where would you start? The browser DOM? How JavaScript is interpreted? How your database implements transactions? The more web development I do, the more I realize how freakin' tall the stack is...and how little I really know about it. Kind of scary.