The course objective is to provide learners with the knowledge and skills required to be a Python novice and to build upon those skills to become an advanced Python programmer, eventually Pythonista. The course starts by providing novice software programmers with a foundational knowledge of Python’s essential libraries and frameworks so they can take on basic tasks and projects using Python. From there, a Python Novice may move into the Python Apprentice role, focusing more on web programming and using Python to develop front-end projects. After that, a Python Journeyman will employ Python for tasks and projects and will be able to stitch the front-end and back-end of an application together. Finally, a learner can become a Pythonista who combines all the insights and knowledge acquired throughout their course by focusing on wrangling data, network programming, and developing continual testing strategies.