There is no single, correct path to mastery of web programming...it's a very zen kind of thing. I started in Mathematics and learned some very "mathy" (non-web) programming languages for problem solving in an arcane profession in the '80's. I studied a lot of formalisms of programming over the course of about a quarter century of corporate practice. I evolved to web programming much later in life - been doing it since 1999, after a preceding career of 15 years of professional, non-web programming. I've known corporate professionals who to web work by picking up HTML and CSS in high school without college; they got just enough independent work to build a portfolio that got a real employer interested enough to hire them. I've worked with people who went to college from start to finish to gain a degree targeted at software engineering in general or web development (mostly Java) in particular.
There are a number of things common to all of the competent, successful web professionals I've known, regardless the directness or twistiness of the path they took to enter the trade:
- AT LEAST mildly obsessive/compulsive (or a capacity to be VERY focused)
- willing to work lots of 60 hour weeks and occasional 80 hour weeks
- able to learn independently
- obsessively curious
- compulsively innovative
- not afraid to work without a safety net
As for topics to learn, there are the base language aspects, general programming skills, programming models, and architecture. There are IDEs, development frameworks, OS platforms, etc. The more of these you know, the more sophisticated and probably correct your solutions will be. However, becoming expert in lots of these takes a LONG time. For the moment, pick a model, I'd recommend OOP (object oriented programming), since it's both a popular and powerful software engineering model. I suggest studying one or more of the Agile development methodologies. Pick up a solid version control system - I recommend svn (subversion). Learn a good, solid text-oriented IDE - Eclipse is IMO the best and is free.
From the languages hat, I suggest you definitely pull HTML, CSS, and JavaScript, since that makes you master of the browser (client side). Further, with those you can practice everything related to markup, styling and programming (NEVER let anyone tell you JavaScript is less than a full-featured, OOP language - it can be used in other fashions, but is not limited in the ways so many claim). When it comes to server side languages, I recommend Java and/or PHP, i.e., one of more mainstream, Open Source, non-proprietary, non-Microsoft languages that can be configured to run on your desktop while you're learning. Bear in mind that my advice here is colored by my own training...on the server side of web-land, I own 10 years of Java experience and 2+ of (fiddlin' with) PHP.
I replied to a question that has some bearing on this one, in the sense of talking about what the various roles are in web dev and figuring out what you really want to be when you grow up, at:
https://answersrip.com/question/index?qid=20100709002048AA26YdD&show=7#profile-info-C2Bwxh1haa
I privately maintain a list of links to client-side programming resources at:
http://home.comcast.net/~richarduie/
The right-hand nav-bar has links to free online learning sites graded as "novice" and "expert." There's a few other items that may interest you in your pursuit of improving your skills.
To summarize, learning languages alone is NOT enough. Exactly what to learn in addition and the exact order is fuzzy. Figure out what you want to be, how much you want to earn, how you want to live, and ask more explicit questions.