I am novice in web development, but I desire to learn all aspects of web development like web security, web API development etc. What is the best approach to learn them all progressively (a step by step way) ?
For each step build 1-2 basic apps. (Basic app = 1-3 days of work).
Basic HTML + CSS (don't spend too much time here) + skim the Bootstrap docs (you should use Bootstrap for everything after this).
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.
jQuery. Also learn to use AJAX with jQuery (and learn about REST/HTTP).
Basic SQL and setting up your own schemas (set up tables in the command line interface for MySQL/PostgreSQL/SQLite). I recommend Postgres.
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).
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).
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).
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).
With this broad foundation, start with a longer-term project idea and build out its entire stack.
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).
EDIT:
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."
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 now. 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.
Really good write-up (I've built myself a syllabus coincidentally similar to what you've described, which gives me some peace of mind). However, I'm assuming hiteshtr was specifically asking about the (ZURB) Foundation framework and how it compares to the Bootstrap framework (I would attempt to answer myself, but have little to no experience with Foundation).
yes you are write I was asking for comparison between ZURB's Foundation or Bootstrap, i searched a lot but didn't got satisfied answer as some are in favor of ZURB and other are in favor of Bootstrap
thank you for your comment, some more things i want to know that how to learn ORM and REST, other thing is which one you rate more Foundation or Bootstrap (i have worked in foundation) and does Go is worth learning as it is the latest buzz.
I agree with you. I suggested these sites to a friend of mine and after then he really got into javascript and ruby. After learning the fundamentals, books are more understandable and more usable lets say.
And if you're failing to come up with any unique ideas for an app on your own, as a learning experience there's no shame in copying something else. It seems like many web developers try their hand at building their own blogging platform. Such an exercise should introduce you to a lot of the fundamentals of how a web application is put together. Or, pick a popular web app (Facebook, Twitter, Flickr), and try to replicate some of its features. Your app won't even come close to nailing down the whole set, and the things you implement will likely be buggy and inefficient versions of their professional counterparts, but if the point is just to learn I don't see why copying is a bad way to start. Many beginning artists learn technique by copying too. [citation needed (:]
Basic HTML + CSS (don't spend too much time here) + skim the Bootstrap docs (you should use Bootstrap for everything after this).
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.
jQuery. Also learn to use AJAX with jQuery (and learn about REST/HTTP).
Basic SQL and setting up your own schemas (set up tables in the command line interface for MySQL/PostgreSQL/SQLite). I recommend Postgres.
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).
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).
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).
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).
With this broad foundation, start with a longer-term project idea and build out its entire stack.
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).
EDIT:
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."
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 now. 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.