https://medium.com/@financesamurai/4-essential-tools-for-learning-how-to-code-as-a-beginner-b1f9a46caa4a