https://medium.com/@frankm20/a-beginners-guide-to-programming-languages-and-concepts-overview-and-learning-roadmap-eca90a41d2c4