Python Fundamentals Training Course

Course Summary

Python Fundamentals is a 4-5 day training course in the Python language and its many applications. The course covers the language itself, explains object-oriented as well as functional programming techniques, error handling, packaging, system and network programming, many of the Python extensions (libraries), as well as best practices. All concepts are explained through hands-on examples and exercises, so students learn by coding in Python.


Duration [top]

5 days.

Objectives [top]

This is a fast-paced lab course, designed to bring seasoned programmers up-to-speed in Python, as quickly as possible. While attending this course, you will experience:

  • Pythonic thinking.
  • Python's input and output details: stdio and file io.
  • Python's interesting and extra-useful flow-of-control devices.
  • Python's simple and robust error handling.
  • Python's flexible function protocols.
  • Python's memory model.
  • Python's straight-forward object-oriented features.
  • Python's built-in data types: using them, and inheriting from them in classes you design.
  • Python's list comprehensions, decorators, iterators, generators, context managers.
  • Python's scheme for creating and using libraries and packages.
  • Python's handy libraries for many developer/administrator tasks: shutil, tempfile, subprocess, glob, profile, shelve, os, sys, optparse, unittest.
  • Python's architecture, which allows you to get working very quickly with any Python library (there are thousands).

Audience [top]

This course is designed for developers, system administrators, and QA engineers, who wish to be able to develop, automate, and test applications and systems using one of the most powerful programming languages available today.

Prerequisites [top]

Students should have prior programming experience and be familiar with basic concepts such as variables/scopes, flow-control, and functions. Prior exposure to object-oriented programming concepts is not required, but definitely beneficial.

Instructors [top]


Aaron Maxwell is a technology entrepreneur with a strong background in software engineering and scientific research. He is a frequent public speaker, author of books and essays, contributor to open-source and free software, and an enthusiastic teacher. As an engineer, his areas of impact and interest have ranged from the mobile web, to cloud computing, to building robustly concurrent systems and languages. He currently lives in San Francisco, CA, USA.

More about Aaron Maxwell...

Alex Vidal’s first job as a programmer came at 18, for the United States Air Force, where he worked in the Pentagon on web applications used internally by the Department of Defense.

His career picked up speed, after the USAF and years of contract work, when he took a position at a home security company based in Austin, Texas. Alex entered the organization as a PHP developer and 7 years later worked directly alongside the CTO, as the Lead Engineer and Chief Architect for all levels of development, both internal and customer facing.

During this time, Alex led the transition from an aging PHP codebase to Python running on the then-young Django web framework. He also deployed and managed a large number of projects, ranging from a customer support ticketing system, to a network service that was built to configure and query hardware installed at their customer’s homes.

Throughout his career, Alex has always imagined himself a teacher, and says, “I enjoy my daily job the best when I can spend my time helping my coworkers improve, or, when I’m running informal training and hack sessions.”

Alex is engaged, he and his fiancee are parents to a 4 year old boy, and his wedding is planned for the fall of 2014. Born in New York City, he has lived in Austin since the late 90s and calls it home.

More about Alex Vidal...

Brian is an independent consultant with 30 years' experience as a software developer and worked for a stock exchange, the U.S. Navy, a large software company, and several startups and small companies, before striking out on his own. Brian is fluent in many languages, including Scala, Java, Python, Ruby and C#, and C. In addition, he is highly familiar with current web application technologies, including frameworks like Play!, Ruby on Rails, Django, and front-end technologies like Knockout.js and Angular.js.

Brian founded the Philly Area Scala Enthusiasts in 2010 and, since 2011, has been a co-organizer of the Northeast Scala Symposium; he was also co-organizer of Scalathon, in 2011 and 2012. He maintains a substantial GitHub repository of open source projects and is fond of saying that even after many years as a software developer, "programming is still one of my favorite activities."

More about Brian Clapper...

Doug Bateman is the Director of Training at NewCircle, where he oversees the quality and direction of NewCircle’s training offerings.

Doug has delivered over 100 corporate trainings on technologies including Java, Spring, Hibernate, Python, and Android and draws from over 15 years of experience as a professional software architect.

Previously Doug was the director of professional services for The Middleware Company, responsible for training, consulting, and new course development. Some of his notable projects and customers include Cisco,, HSBC Bank, NASA, and the Florida State water management system.

In his spare time, Doug enjoys sailing and snowboarding.

More about Doug Bateman...

Greg Sadetsky has spent the last 10 years as an entrepreneur, software engineer and scientist. Besides starting a coworking space and an online TV broadcasting outlet, he co-founded and led a successful web mapping consultancy, whose clients included major US technology companies.

His development experience includes building web-based hurricane and forest fire tracking maps, interfacing with physical access control systems and doing real-time processing of biological images in the context of medical research. His weapons of choice have been Python and JavaScript.

Greg has completed his Master's degree in Biophotonics at University Laval and lives in Montreal.

More about Greg Sadetsky...

Jeremy never expected nor planned on becoming a hardcore programmer, much less a computer language polyglot, but that is where his varied career has taken him. Much more interested in the technical side of things, he's worked on projects from MUDs to mapping APIs to a browser front end for corporate file sharing. Jeremy likes to learn new technology by diving in, writing a lot of bugs, and then debugging everything to get a thorough understanding of how things work. There's nothing better than finding out just what a platform is capable of, and where the boundaries still exist. Jeremy's current favorite languages are JavaScript, Python, and Lua.

When he's not teaching, he's probably rock climbing with his son, writing code for that game that maybe-someday will be published, or reading yet another classic novel that he should have read in school but didn't.

More about Jeremy Osborne...

Kenneth Love is a full-stack, freelance web developer who focuses mostly on Python and Django.

Kenneth created the Getting Started with Django tutorial series for getting people new to Django up to speed with best practices and techniques. He also created the django-braces package which brings several handy mixins to the generic class-based views in Django.

More about Kenneth Love...

Outline [top]

Getting Started

  • Lesson Objectives
  • The Interactive Interpreter
  • Lab
  • Getting Started Follow up

Simple Functions and Test Driven Labs

  • Lesson Objectives
  • Writing simple functions
  • Lab
  • Completing Test Driven Labs
  • Lab
  • Test Driven Labs Follow up

Types and Variables

  • Lesson objectives
  • TOPIC: Types
    • Strings
    • Integers
      • Integer Division
    • Floats
    • Complex
  • TOPIC: Variables
    • Definining
    • Dynamic Typing
    • Strong Typing
    • Managing your types
    • Internals
  • Lab
  • Types and Variables Follow-up

Simple Expressions

  • Lesson objectives
  • Boolean Evaluation
  • Truthiness
  • Branching (if / elif / else)
  • Block Structure and Whitespace
  • Lab
  • Simple Expressions Follow-up

Advanced Types: Containers

  • Lesson objectives
  • TOPIC: Lists
    • Lab
  • TOPIC: Strings Revisited
  • TOPIC: Tuples
    • Lab
  • TOPIC: Dictionaries
    • Lab
  • TOPIC: Sets
  • TOPIC: Collection Transitions
    • Lab
  • Advanced Types Follow-up

A Bit More Iteration

  • Lesson objectives
  • TOPIC: break and continue
  • TOPIC: Loop-Else
  • More Iteration Follow-up


  • Lesson objectives
  • Defining
  • Arguments
  • Mutable Arguments and Binding of Default Values
  • Accepting Variable Arguments
    • Lab
  • Unpacking Argument Lists
  • Scope
  • Lab
  • Functions Follow-up


  • Lesson objectives
  • Basic Error Handling
  • Raising and re-raising exceptions
  • Exceptions Follow-up

Code Organization

  • Lesson objectives
  • TOPIC: Namespaces
  • TOPIC: Importing modules
  • TOPIC: Creating Modules
    • Preventing execution on import
  • Code Organization Follow-up

Working with Files

  • Lesson objectives
  • TOPIC: File I/O
  • TOPIC: Iteration 
  • TOPIC: Context managers
  • TOPIC: Duck Typing
  • Working With Files Follow-up

Interacting with the Outside World

  • Lesson objectives
  • Options
  • Lab
  • Interacting with the Outside World Follow-up

Regular Expressions

  • Lesson objectives
  • The re module
  • Lab
  • Regular Expressions Follow-up

Functional Programming

  • Lesson objectives
  • TOPIC: Functions as Objects
    • Higher-Order Functions
    • Sorting: An Example of Higher-Order Functions
    • Lab
  • TOPIC: Anonymous Functions
  • TOPIC: Nested Functions
  • TOPIC: Closures
    • Lexical Scoping
    • Useful Function Objects: operator
    • Lab
  • TOPIC: Decorators
    • Lab
  • Functional Programming Follow-up

Advanced Iteration

  • Lesson objectives
  • TOPIC: List Comprehensions
    • Lab
  • TOPIC: Generator Expressions
  • TOPIC: Generator Functions
    • Lab
  • Iteration Helpers: itertools
    • chain()
    • izip()
  • Advanced Iterations Follow-up

Debugging Tools

  • Lesson objectives
  • TOPIC: logging
  • TOPIC: pprint
  • TOPIC: pdb
  • Lab
  • Debugging Tools Follow-up

Object-Oriented Programming

  • Lesson objectives
  • TOPIC: Classes
    • Emulation
    • classmethod and staticmethod
    • Lab
  • TOPIC: Inheritance
    • Lab
  • TOPIC: Encapsulation
    • Intercepting Attribute Access
    • Properties
    • Descriptors
    • Lab
  • Object Oriented Follow-up


  • Lesson objectives
  • UnitTest
    • Lab
  • UnitTest Follow-up

Additional Notes [top]

About the Platform

This course can be taught on most major operating systems, which support Python, such as Windows, Linux, Mac OS X, etc.

Online Training - What's it Like?

Greg Sadetsky gives you a quick intro to what it's like to take an online training with NewCircle in this short demo of regular expressions from NewCircle's Python Fundamentals course.

Student Testimonials [top]

Trainings can be boring if the instructor is not expressive. Greg is definitely an instructor, who has been a reason that I got to know Python this well. This has definitely been a good training from all aspects. Looking forward to more like these.

Sajeesh -

Keiran and jMyles did a great job of making sure that each student had the attention they need, and that all the material was understood.

Tia -

I think everything was perfect and, as I said, I enjoyed the class a lot, and would definitely recommend the training to friends should they ask me for recommendations.

Julia - Symantec Corporation

Labs = great! I wanted more of them, and more time to do them, at every step of the way. It makes it easier to learn that way. Simeon is SUPER knowledgeable with Python AND many other languages, which is great because he can compare and contrast them. He now only knows teaches the syntax and language, but how to use it efficiently. I was a bit under the learning level, not having programmed before like most everyone else in the class, so I felt like I was constantly having to catch up, but I still learned a LOT and highly recommend this class for programmers fluent in Java or C or such that want to learn Python as well. Take this and you will be off and running!

Chris - Bank of the west

This was seriously one of the best training classes I have attended. I have enjoyed it a lot and feel like I have learned a ton.

Ken -

Trainer (Greg) extremely good in handling the topics on the syllabus in a very understandable way. It's a very good training on python.

Surendra -

Simeon was great.

Danny - Schwab

Doug was a great Instructor, he has been very helpful in the class. I was able to learn a lot in this class.

Sandeep Kumar -

Excellent coverage of the techniques and pitfalls of Python Programming using extensive examples and code walk-through's.

Kari - Ujanen Inc.

The way Instructor took us on a learning journey was very practical and whatever he was saying was appearing on code right there on projector and results were very visible. He is definitely a strong one in his own area.

Asharam -

The course is just right in terms of pacing and coverage for me. Will look forward to an advanced course with projects.

James -

Instructor Greg was very knowledgeable, courteous, funny and helpful. Course content was the perfect mix of small chunks of theory followed by practical hands on labs

Simon -

Greg is an excellent instructor and is quite entertaining/engaging. He really knows his subject matter.

Noel -

Python class is excellent. Trainer is highly qualified and excellent in teaching the course. Request to teach bit slow on advanced topics. If you add PPT presentation will have great impact.

Sreekanth -

In all honesty, this is one of the best technical classes I've ever taken. ( and I've been doing this a very long time ). Aaron is a gifted and passionate instructor of Python who created an excellent learning environment. The course touched on many items that can be immediately useful in the workplace. The content was so applicable and very relatable to things that we've done in other languages. I had taken a Python class within the past 4 years, and after the first day, the labs were just impossible. These labs are really designed for success. And I don't mean that the answers are immediately available, but the whole doctest design of the labs was a great vehicle for helping to identify where your problems might be occurring. Bravo to your entire organization. This was a very well-spent 4 days. Thank you very much.

Paul -

Doug and Simona were incredible. As a novice Python programmer, I feel as if I've finally had a class that delivered the fundamentals while tying concepts together in way that can be immediately applied.

Derek - Symantec

Training is very informative and helped me to gain a good start with Python. Trainer is very knowledgeable and fun, making the training session very good.

Darren -

Greg is an excellent instructor, he knows Python very well, is engaging and informative and rates as one of the best instructors I have had the pleasure of learning from

Martin - Sfdc

Great experience. Excellent learning!!

Shyam -

Excellent class for learning Python. The trainer is an expert in the subject and also in love with Python as he teaches the subject with passion.

Ravi -

I am very happy to get good teacher for this class, I hope to join his next level class.

Frank -

The training is very well organized and delivered. Rob Zuber did the excellent job. Many thanks!

David - Symantec Corporation

Simeon is very knowledgeable and instrumental. With my limited in high-level programming, I can easily follow the teaching and be able to do what I was expecting. Hope a more advanced class can be made available as the follow-up to this. This class is good for the beginners with mostly hardware design experience. I recommend it to all the hardware engineers who would like to automate their work with some sort of easy-to-use programming language.

Yim - N/A

Instructor was awesome. Her presentation style was super-clear and very precise.

Torsten - Nuance Mobile Care

I liked how the instructor delivered the contents of the class and involved the students.

Khoa -

Great class! Easy follow and interactive labs help to understand.

Seung Soo -

Lively class, interactive, and all the best you can get from an instructor-led training, you got it here.

Ooi Ewe -

Course instructor was very enthusiastic in relation to the course content. Built up a good rapport with course attendees and was willing to engage in discussions which were outside the course content, but still relevant to python.

Rory -

Greg is extremely fun to be with in the classroom. His lessons are lively and he presented it extremely well essentially bringing the scripting language to life.

Winston -

The Python Fundamentals Class was great! The hands on focus was exactly what our organization needed.

Orbra - Symantec