Length: 4 days (32 hours)

Description:This is an introduction to Python for experienced programmers. After taking this course, you will be ready to start using Python in your day-to-day work, helping your company to reap the benefits of the Python language.

This is the course that some of the world’s largest and best-known companies (e.g., Apple, Cisco, HP, Western Digital, and VMWare) invite me to teach, again and again, to introduce their programmers to Python.

Audience: People with programming experience who wish to learn Python and taken advantage of its power.  If you don’t have any experience programming, you should probably consider my  Intro to Python for non-programmers.

The course assumes that participants have up to one year of experience with Python, including zero experience. Most people taking this class have several years of experience with C, C#, C++, and/or Java. Many people who took university-level courses in Python thought that this class was the right level.

The course looks at Python’s basic data structures and functions, and introduces both functional and object-oriented programming techniques with the language. The course includes a large number of exercises for hands-on practice, as well as live demos and the opportunity for questions.

Participants will receive PDF copies of the slides, files with the answers to exercises, as well as an IPython notebook from all live-coding demos.

This course, like all of my courses, can be given either in-person or virtually. Contact me for availability and pricing, but be warned that my time tends to fill up months in advance.

Data structures

  • Interactive Python
  • Variables — dynamic and strict typing
  • Blocks and indentation
  • Writing and executing programs in files
  • Conditionals
  • Basic types: None, boolean, numeric, string, list, tuple, dictionary, set
  • Loops
  • Sequences
  • Reading from and writing to files
  • Creating and working with complex data structures

Functions and functional programming

  • What is a function? Functions as objects
  • Writing functions
  • Return values, returning sequences
  • Function parameters
  • Variable function parameters with *args and **kwargs
  • Variable scopes in Python: LEGB
  • Functional programming introduction
  • List comprehensions
  • Customizing sort by passing function arguments
  • Modules and packages


  • What is an object?
  • Classes and instances
  • Constructors and destructors
  • Instance attributes
  • Getters and setters
  • Class attributes
  • Attribute scoping rules
  • Inheritance
  • Exceptions