Introduction to Python

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, SANDisk, and VMWare) invite me to teach, again and again, to introduce their programmers to Python.

Audience: People with programming experience, ideally in a high-level language (e.g., Ruby, JavaScript, or even Java), 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 little or no experience with Python; if you have been using Python for up to six months, you will likely still get benefit from it.

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, set, and dictionary 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