https://www.quora.com/How-can-I-improve-my-logical-skills-for-programming