Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Intermediate Python

Course Summary

The Intermediate Python training course is designed to demonstrate an intermediate understanding of Python and increase developer skills and techniques.

The course begins with an examination into advanced Python concepts, syntax and libraries. Next, it discusses the specifics of writing multithreaded programs with Python through creating network aware applications using both Sockets and Uniform Resource Locators (URLs). The course concludes with a quick overview of the Django Web development framework.

Prerequisites: An understanding of Python.

Promote an intermediate understanding of Python and increase developer skills and techniques.
Python developers with 3 - 6 months of experience who need to deepen their understanding.
Software Developer - System Administrator - Web Developer
Skill Level
Fast Track - Targeted Topic - Workshops
3 Days
Related Technologies
Python | Testing


Productivity Objectives
  • Work with Python's support for resource management and iteration
  • Apply TDD concepts with Python using unit testing
  • Create concurrent programs using Threads
  • Build a simple client-server solution using TCP Sockets

What You'll Learn:

In the Intermediate Python training course, you'll learn:
  • Advanced Data Types and Functional Programming
    • Datatypes: namedtuple, defaultdict, ordereddict, deque, etc
    • Functional programming: map/filter/reduce, lambda, list.sort, operator modules
    • Functional closures and decorators
  • Generators and Iterators
    • List comprehensions, generator expressions, and generator functions
    • Iteration: iter(), iter, next(), itertools, chain, groupby, etc
    • Understanding the yield statement
  • Context Managers
    • What is a context manager?
    • The 'with' statement
    • Work with a context manager: contextlib.closing, enter and exit
    • Utilize contextlib.contextmanager
  • Testing Python
    • Review of key testing concepts: unit, functional, integration, etc.
    • Overview of test-driven development concepts
    • Writing tests unit test with a test-first approach
    • Unit testing with the unittest module
    • Creating test suites with nosetests as a test collector
    • Performing simple code coverage analysis with coverage
  • Introducing Logging
    • Importance of logging
    • Basic logging concepts within Python
    • Using basicConfig to set up loggers, handlers, formatters
    • Using fileConfig for more complex logger configurations
  • NumPy/SciPy (Numerical and Computational Processing)
    • Open-source modules to Python for common mathematical and numerical routines
    • Demonstration of common pre-compiled and fast functions (use cases)
    • Vector and matrix mathematics
    • Special functions in SciPy related to vectorization (vq, weave)
  • Pandas and Data Integration
    • Data frames
    • Aggregation and grouping of data
    • Reshaping, transforming, and cleaning of data
    • Scraping data: web API, parsing html and XML, JSON (encoder/decoder)
  • Python Multithreading and Multiprocessing
    • Process class and using the multiprocessing module
    • Synchronization between processes
    • Exchanging objects between processes: pipes, queues, and circular buffers
    • Sharing state between processes (shared memory and server process)
    • Python Semaphores and Mutex
    • Synchronization events
  • Network Programming
    • Review of network programming concepts and protocol layers
    • Network programming support within Python
    • Fetching web resources with urllib/urllib2
    • Sending email with smtplib
    • Creating client-server like applications using sockets
    • Creating a simple JSON-REST client
  • Introduction to Web application Development with Django
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”


Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.