python - intermediate

Python - Intermediate developers with 0 – 3 months of experience needing to deepen their understanding.

Delegates 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.

By attending Intermediate Python workshop, Delegates will learn to:

  • Understand and work with Python’s support for resource management and iteration
  • Apply TDD concepts with Python using unit testing
  • Create concurrent programs with Threads
  • Build a simple client-server solution using TCP Socket

Intermediate Python training course begins with a quick review of core Python concepts. It then transitions into an in-depth look into advanced Python concepts, syntax and libraries. Along the way, they will learn the ins-and-outs of writing multithread programs with Python, creating network aware applications using both Sockets and URLs, and applying Test-Driven Development concepts with unit test. This course concludes with a quick overview of the Django Web development framework.

COURSE AGENDA

  • iter(), iter, and next()
  • Understanding the yield statement
  • Creating generator expressions
  • Loop comprehensions
  • Ensuring a proper setup of Python
  • Review basic Python syntax
  • If/then/else & loops
  • Functions and exceptions
  • Decorators
  • What is a context manage
  • The ‘with’ statement
  • Working with a context manager: contextlib.closing, enter and exit
  • Using contextlib.contextmanager
  • Review of key texting 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
  • Importance of logging
  • Basic logging concepts within Python
  • Using basicConig to set up loggers, handlers, formatters
  • Using ?leConig for more complex logger configurations
  • Threading v. multi-processing
  • Core Threading Concepts
  • Key threading constructs
  • Building a simple multi-thread program
  • Preventing data corruption through mutex and events for synchronization
  • Using Queue.Queue
  • Threading v. multi-processing (part II)
  • Core Multiprocessing Concepts
  • Using the subprocess module
  • Using the multiprocessing module
  • 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