If you wanted to get to that rather ambitious destination from your starting point, I would suggest that you would have to build a (very basic) product idea from scratch in JS + PHP + MySQL on month 2, or at the latest, month 3 -- just so that you know what the Web 1.0 technologies were. It would be one heck of a rush, but thankfully, you wouldn't necessarily have to market it. (Although you should spend a couple days learning XSS and XSRF and guarding your site against them, salting and hashing passwords against database compromise, and so on.) If you know that many-to-many relationships require a new table then you've at least got the basics down. If you can JSLint your code and understand which of the good parts of JS are good and why, then you've got those basics down, too.<p>As for the first month, it's worthwhile to learn two programming languages at once, so that you don't get "locked into" one particular way of thinking these things. Python's generators represent probably the prettiest iterative programming I have seen, so you might want to go with a functional language to balance it, so that you're forced to think recursively. If you're really ambitious you'll do Haskell, but that's a bit crazy, and more conservative would be to take the Abelson-Sussman lectures, crap though their audio might be, so that you learn a Lisp:<p><pre><code> http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/
</code></pre>
Okay, so assuming that you've spent your first month learning two languages to tackle problems, then your second month learning the core web languages and getting some project done, what would you have to do your third month? There are a couple of options for an aspiring junior developer. One would be to write a totally new application in some other language, so that you can see what the other ones are thinking. You could go with the language that you started with, and code in Python's Django, or the confusing language that you only half-know, called JavaScript, by developing chat rooms in Node.js -- but those are probably boring, and you might want to spend a whole month learning Ruby and developing with Ruby on Rails. (It could make you much more attractive to a random employer.)<p>If you have done all of those and have not passed out from exhaustion, then you might start to refactor a project. Figure out the ugly stuff you did in month 2, and how to make it not so ugly. Ask people on IRC to look through your code. There is a central principle of writing good essays and novels: "There is no good writing, only good rewriting." If you come back with fresh eyes you can actually learn a lot. What library functions did you accidentally forget to use when you were writing PHP? (PHP has huge libraries and if you try to code something on them you're liable to end up on TheDailyWTF.)<p>And your fifth month, after all that work, should be devoted to some wild project which strikes your passion after the past four months. I imagine that you'll be lost and confused by month 3 and that month 4 will be a breather, then month 5 is to really take a new idea that's way out there, and make it shine a little.<p>At least then, you might have three projects you can point to with an employer and say, "look, here's a portfolio, it's not as visually polished as you might like but I was focused on functionality and it all works.<p>If you could really stay committed, then I think you could have a quite spectacular resume for applying as a junior developer in 5 months of full-time work.