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 eventually become an advanced Python programmer, or Pythonista. The course starts by providing novice software programmers with foundational knowledge on Python's key 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 that focuses 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 brings together all the insights and knowledge acquired throughout their course by focusing on wrangling data, network programming, and developing continual testing strategies.