You are a blank slate and want to learn how to build a web app from the ground up.<p>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<p>Framework - Flask<p>Database - MySQL (since I've learnt about it from my university)<p>Hosting - AWS or Webfaction<p>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.<p>When developing web applications I still stick to a LAMP stack:<p>Language: PHP on server-side, JS on client-side<p>Server: Apache<p>Database: MySQL<p>Frameworks: Basically any MVC framework<p>Hosting: Completely up to you<p>If you want to built a good web application you have to deal with:<p>Object-orientation, Dependency Injection, MVC, Design patterns, etc.<p>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.
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.<p>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.