I wrote this post as a reference point for having a system to quickly set up high-end VMs on AWS.
The problem I was usually faced with as a MSc student in data science is that I would be trying to develop/run machine learning algorithms on my laptop but it would take too much time.
The two alternatives I have are either buy a high end PC or learn how to use the cloud VMs.
Since I didn't have the budget to buy a high end PC, I was left with the option to create VMs on AWS, though this had problems of it's own, mainly it takes a bit of time to create and configure the machine.
That's why I tried to automate this procedure and ended up with this guide.
Regarding the MSc it's more than I could ask for. There are introductory courses in statistics, programming, databases, machine learning etc and there are specific elective courses like Big Data Systems, Natural Language Processing etc.
TBH I think that especially the math/stats background is something invaluable that is not really learned by reading data science specific books, and usually it's neglected. It might not be what strictly prerequisite to work with machine learning algorithms but it's a huge help to delve deeper into it.