Source: https://www.halvorsen.blog/documents/programming/python/resources/Python for Software Development.pdf