https://medium.com/@penguin.developer65/10-steps-a-guide-to-becoming-a-python-programmer-470147f37ef2