https://medium.com/@sumankumarphuyal/what-are-the-greatest-techniques-to-learn-programming-5709f193693a