Write a video game. I tell this to everyone who wants to learn to program. Forget web development, initially (unless you want to learn HTML5/Canvas to build the game, which is not a bad idea at all). Game development is probably the best way to learn to program because it's fun, you have some sort of goal, you can be creative, and you have to learn a great mix of skills -- graphics/sprites, sound, timing, interaction, math, physics, etc.
Around 8 years ago I did exactly this. I was (and still am, because my career shifted in another direction) a totally newbie to programming - except from some Basic I did when I was a kid.
I developed some small games and helped a friend with his architecture thesis using Visual Basic 6 + a 3D engine: http://www.truevision3d.com
It was REALLY fun and I was also able to show it to others to get their opinion.
Anyhow... I second the game dev suggestion. Good luck!
Agreed. Game programming will teach you a lot of programming skills, and staying with game programming can elevate you to great heights as a programmer, and it's great fun.
The only negative is that games are relatively closed systems, whereas most of the rest of the software world includes a lot of interaction with other systems (databases, security, operating systems, payment etc etc) which you may never get to practice while programming games (unless you do multiplayer online games i guess).
Oh, and do not expect to earn money programming games.
The Jason Gregory "Game Engine Architecture" is a good place to start for a 10,000 foot overview. Also try "Game Coding Complete," (aka "the Dinosaur Book") which has some more details and nuances. Both books are valuable starting places regardless of what your target language or platform is.
After those two I would consider what gaming topics you want to investigate further(rendering, collision, AI, etc.), and start specializing your search.