I think overall it depends on what you are trying to achieve. I see many misconception that you only need to know how to write features to build a web app, unfortunately, that is not the case.
Writing a web app is easy, but writing a web app that can scale efficiently is really hard.
Suppose a new developer comes in and wants to build a new groupon clone. He picked up lessons from codecademy and begins writing his app. Few months later he finished his app and deploys it.
What is misleading is that many people thinks that once they finished writing the app they are done. Once your site turns operational and hot that's where the trouble comes in. Queries that normally takes sub milli seconds to work on your pc is now running minutes on your site.
How you write your code(whether is it spaghetti or course meal), how you deploy it(how many clusters, how many database servers, how your queries get passed) all these matters alot if you want to go big.
It is best you think of deployment in long term. I give you a very good scenario if you are going hosted and your site gets so awesome that you want to do some data analysis from your users, you decided to deploy a data warehousing system. You begin looking at options and found this bloody cheap and awesome AWS Redshift that costs only $1000/yr/tb (
Amazon Redshift) . But when you read the faq, you realized that
in order to import your data you need to either use S3 to do it free or sent it via data pipeline. If you intend to use data pipeline this deal doesn't seem so great anymore as you will need to incur additional expense.
Every vendor has their pros and cons, I don't support any because I use it based on what I am trying to do. Heroku is good because it is easy to deploy and once you scale out you don't have to waste so much time thinking about how to configure multiple servers. Some people might say its expensive but depending on your case, you might saved it on labor costs.
I am a wheel dealer, what I do is I get a dirt cheap hourly priced hosted or cloud service like AWS for development (why aren't you using that? heck you can do all sorts of funny things).
BUT when it comes to real deployment, I make sure I planned carefully so that I don't incur so much technical debt (
Technical debt - Wikipedia, the free encyclopedia) .
Unfortunately if you want to build a successful app, you have to at least understand what is the best way to deploy your site. Okay, back to writing code.