For each step build 1-2 basic apps. (Basic app = 1-3 days of work).<p>Basic HTML + CSS (don't spend too much time here) + skim the Bootstrap docs (you should use Bootstrap for everything after this).<p>Basic JS. Go deeply into JS (inheritance, etc) if you want to do rich client-side front-end JS or Node.js (more on that choice later); otherwise that is unnecessary.<p>jQuery. Also learn to use AJAX with jQuery (and learn about REST/HTTP).<p>Basic SQL and setting up your own schemas (set up tables in the command line interface for MySQL/PostgreSQL/SQLite). I recommend Postgres.<p>Now pick one of 3 web backend ecosystems: Ruby, Python, or Node; and learn the language. Pick Ruby or Python if you already know one of them. Pick Node if you want to make real-time and concurrent apps or don't want to learn another language (I'm talking true realtime - i.e. collaboration tools, chat, dispatch systems, etc). Pick Python if you want to integrate machine learning/data analysis/natural language processing into your app. Otherwise, pick Ruby (best job prospects, biggest web development ecosystem).<p>For Ruby, start with Sinatra. For Python, Flask. For Node, use raw Node, and then use Express. Use raw SQL, then try an ORM (ActiveRecord, SQLAlchemy, Sequelize).<p>Optional: Rails, Django, or Meteor. (Meteor is not really comparable. It's very immature/bleeding edge and has a different use case. I put it there because it's the most popular full-stack big JS framework). I say optional because there are essentially two models for web development: server-centric (everything rendered on server and served), or api-client-side-centric (server = API, browser/mobile app = rich client side). For server-centric development you'll want to learn Rails/Django. For rich client you can stick with Sinatra/Flask (Meteor would be rich client, though).<p>If you do go the rich-client route, do a little Backbone. I personally never liked Backbone; if you also dislike Backbone, consider AngularJS or Ember (AngularJS is what I'm using now).<p>With this broad foundation, start with a longer-term project idea and build out its entire stack.<p>Some topics to explore after you've gotten a foundation: MongoDB/NoSQL, regular expressions, advanced CSS3, advanced HTML5 features, dev ops, socket.io (for Node), promises/fibers (for Node), CSS pre-processors, CoffeScript, d3 (front-end JS).<p>EDIT:<p>REST and ORM are merely concepts. You will learn what an ORM is by the process of first learning SQL, and comparing that to your experience with using ActiveRecord/Sequelize/SQLAlchemy. You can simply google "What is REST?", or "REST API tutorial."<p>As to your questions about Foundation and Go: what I've proscribed here is a foundation. Not a definite, set-in-stone path. There is certainly a lot of buzz around Go. Yet the question is not whether you should learn Go. The question is whether you, as a beginner, should learn Go <i>now</i>. Go is bleeding-edge and highly immature (in terms of the ecosystem). It is not something you should tackle first. As for the Foundation vs. Bootstrap debate, the reason I mention Bootstrap is because it is more or less the de-facto standard HTML/CSS framework. But ultimately it doesn't matter which you pick. I've never used Foundation but I could read the docs in an hour. This is the least of your worries. Just pick one and go with it. Baby steps.