• Home
  • Python Practice Workshop

Duration: 1-3 days (8-24 hours)

Python has become extremely popular in the last decade; on Stack Overflow, it is both the most popular programming language and the fastest-growing one. However, using Python well requires practice and experience. Its syntax might be clear and straightforward, but knowing how and when to use different techniques, which idioms are appropriate in different contexts, and how to combine techniques to solve real-world problems, takes time.

Most Python courses want to teach you new techniques. By contrast, this course is designed to help you gain fluency and understanding in techniques you have probably learned, but which you haven’t necessarily had a chance to explore in depth.

The course consists of a series of hands-on exercises. Each exercise will require the use of one or more Python data types and techniques. After each exercise, we will review and discuss each other’s solutions. The instructor’s role will be to provide help while working to solve the exercises, to explain techniques that participants might not understand well, to walk through the solution to each exercise, and to facilitate the discussion session for each exercise.

Among the Python techniques we’ll explore in this course are:

  • Nested functions
  • Combinations of lists, tuples, dicts, and sets
  • Advanced object-oriented design
  • Multiple inheritance
  • Generator functions
  • Decorators
  • Threads and processes
  • Comprehensions (list, dict, and set — including nested comprehensions)
  • Functions as arguments
  • Working with files and directories
  • Reading and writing various file formats (e.g., tar, zip, CSV, JSON)
  • Using Python’s “pickle” library
  • Parsing and interpreting logfiles
  • Working with relational databases
  • Consuming Web services


Employees who have already taken one or more Python courses, and are interested in improving their Python fluency. The assumption is that participants have a solid grasp of Python data structures, functions, objects, and libraries, and are looking to improve their fluency and efficiency


  • Become more fluent at solving problems with Python
  • Become more familiar with advanced Python techniques and libraries
  • Gain the confidence to solve larger problems using Python


This course consists of numerous exercises, typically 6-8 per day. In each exercise, the user is asked to perform a task that will help them to improve their Python understanding. For each exercise, participants will have ample time to ask questions before and during the time they’re working to solve it. The exercise solution will be presented collaboratively, with a discussion of the relative benefits of each solution.