https://medium.com/@shariq.ahmed525/5-things-that-you-should-consider-before-learning-programming-182bca0809c0