This advice is so bad I think it just gave me cancer.
The OP is asking "what abilities are required to effectively build complex web apps and services?"
99.9999999999% of data structures in web programming are arrays and hashes. Look those up on wikipedia and read it, then you are done, now get to work.
Processor architecture??? Is that really to be taken seriously? Not only was it previously not relevant to the OP's question, but its becoming more irrelevant because virtual machines and the "cloud" paradigm.
OOP details are great if you are going to write your own libraries or plugins, but its not necessary for cranking out websites. Most of the time the OOP you are going to be dealing with you can fake.
Javascript is a must have, but you don't have to get so fancy with it. Just enough to drive a popular framework. I'd recommend jQuery, it seems to be the emerging winner.
Learn the CSS, broken browsers, and the box model, which will waste so much of your time.
If you just want to work for yourself try a few web frameworks and go with what works for you. Using anything from PHP to rails to Django, you could take over the world, they are all good.
Look into scalability. Its fun stuff to learn about, even if you never lucky enough to need it, here's a good place to start http://highscalability.com/
As part of scalability look into AWS like EC2, EBS and S3, they are game changers. You don't have to use them, but if you need them, they are there to save your ass.
Learn about "viral" marketing and how sites go viral.
Learn about database backup and recovery, and as part of scalability learn how you can scale databases.
Learn about unit testing, QA or even something like Selenium, figure out which works for you best and in which ways.
Learn to figure out what users want and what itch you need to scratch.
Figure out how to make interfaces that don't suck. And when you do, let me know how.