Code Complete: http://cc2e.com/
Introduction to Algorithms (google that one, it's hard to find a good link)
Domain Driven Design: http://domaindrivendesign.org/books/evans_2003
Design Patterns: Elements of Reusable Object-Oriented Software
The term "web development" doesn't mean much. There is web design. There is application development. When the two mix, there is web application development. Any kind of application development is hard, and simply knowing a language or two isn't going to make you a good application developer any more than knowing english will make you Stephen King. (IMO)
I disagree that application development and web development are similar. When you build web apps like 'real' applications, you end up with all those heavy java frameworks. And god help your sanity if you ever been subjected to the code of a desktop application written by a web developer.
In fact most of the real apps I have been working on lately aren't one or the other, they are a mix. Basically a core of domain logic, with thin patches of external interface exposing it. A web page here, a web service there, a desktop app over there, a server here.
And the line between is getting fuzzier. I hear some places are standardizing on technologies like Flex that can be either web apps or desktop apps depending on configuration.
If I understand you correctly you are implying that web apps don't need to have as clean a design as desktop apps. I am not sure if that is what you mean, but if it is, then you are going have the same trouble with maintenance as a product matures if you ignore e.g. SOLID principles, separation of concerns etc, whether it is a desktop or web app. And you don't need any "heavy java frameworks" either. If anything web frameworks like rails encourage a cleaner design (ie via MVC) than typical desktop tools like what C# developers might use to make an app.