Building a Web App From the Ground Up
You are a blank slate and want to learn how to build a web app from the ground up.
1. What language(s) are you learning?
2. What Tools are you using?
3. What Infrastructure/Programs are you building it on? (ie What database, hosting, web/app server, etc) Language - Python Framework - Flask Database - MySQL (since I've learnt about it from my university) Hosting - AWS or Webfaction No particular choice of infrastructure. Since I'm learning to build a web app from scratch, I'll tend to focus more on getting various pieces together. I'm a fan of PHP, it was the first scripting language I've learned and I still feel pretty comfortable using it. When developing web applications I still stick to a LAMP stack: Language: PHP on server-side, JS on client-side Server: Apache Database: MySQL Frameworks: Basically any MVC framework Hosting: Completely up to you If you want to built a good web application you have to deal with: Object-orientation, Dependency Injection, MVC, Design patterns, etc. If you follow the most common coding principles, DRY, Separation of concerns, etc. you'll produce clean, maintainable code. Javascript. You have to know it for a web app, so start there. Build the front-end in it. Once you get decent at the front end, you'll know a lot more about programming so you then make a much more informed decision regarding a backend language and framework that works for you. Could be ruby, python, php, clojure, scala, etc. or even more javascript. Delay the decision of which back end to learn to the last responsible moment. That's a great advice. I would say, in this day and age, if you are starting to learn then learn it correct. Learn a JS framework like Angular and build your client as purely browser based and learn another framework such Ruby-on-Rails or Laravel or CodeIgniter to just serve JSON data for your JS client. I think that's the route to go as your data feeds can be leveraged on many different mobile clients as well. I'd definitely go with AWS for deployment only because if you never signed up before you get a micro instance for free for a year in most cases. This gives you an ability to deploy multiple toy projects without having to fork out $5-10/month which isn't a ton but it's still an expense. java/jsp, JSF framework, Mysql, apache server.