Your question is framed at someone who "learned" deployments via heroku. I will answer it from a different perspective. I recently started at a company who began their staging and production hosting on heroku. I would have a very hard time recommending it to anyone.
In addition to uncompetitive pricing, the "add-on" architecture is itself expensive and inflexible. Redis feels artificially limited, and the scheduler's timing options are, i kid you not: Daily, Hourly, Every 10 minutes.
To people who know linux hosting: avoid heroku. To people who don't know linux hosting: spend some time gaining a serviceable linux hosting skillset.