- 10 (Registered)
This training program provides a basic introduction to Python programming language. The focus of this training program will be more on “PYTHONIC” approach towards problem-solving.
2 days or 16 hours
- Engineers who wish to learn python program to develop applications or to automate their applications/framework.
- Engineers who wish to prototype new applications.
- Participants should be comfortable with the following technologies:
- Basic programming background with good understanding of programming language ingredients that include variables and data types, flow control statements, and function/procedural programming paradigms.
- Knowledge of any scripting language would be beneficial.
- Knowledge of OOP and modular programming concepts in any programming language are recommended.
- Learn how to use string, tuple, list, bytearray, set, dictionary types effectively.
- Learn “pythonic” idioms and anti-idioms.
- Learn functions, modules and file I/O operations.
- Learn the basic concepts of OOP in Python.
- Multi-threading and Multi-processing in Python.
- Understanding Concurrency support
- Learning to automate certain CLI/Network Commands
- The Training program will be mostly demonstration oriented.
- Most concepts will be taught by demonstrating code and participants are expected to learn by practicing the same.
- As the training is highly lab oriented, each participant attending the training program must be provided with a computer with the following software installed:
- Windows/Linux/Mac OSX with Python 3.4+ installed.
- A good programmer’s editor (Notepad++ or PSPad on windows, vim/emacs on Linux) installed.
- LCD Projector with support to connect to trainer’s laptop Whiteboard, markers, scribbles pad + pen for participants.
- Functional Programming
- map, filter, reduce
- list, dict comprenshion
- lambda expressions and partial functions
- custom sorts with lambda expressions
- related modules – functools, itertools
- Classes and Objects
- Introduction to OOP using python
- Classes and class attributes
- Static data members & static methods
- private, semiprivate & public data members
- bound, static, class methods
- Instances and instance attributes
- Binding and method invocation [ MRO ]
- Composition, Sub classing and Derivation
- Built-in functions for classes, instances and other objects
- An overview of built-in python classes and modules
- Advanced OOP features in Python
- Python OO paradigms and meta programming concepts
- An overview on Python special methods:
- __new__(), __init__(), __del__(),
- __str__(), __repr__(), __len__(), __nonzero__()
- __cmp__(), __eq__(), __ne__() and family
- Operator overloading
- Dictionary and List emulation
- Accessor methods – __getattr__(), __setattr__(), __delattr__()
- Callable methods – __call__()
- descriptors and properties
- abc classes
- Errors and exception handling
- Introduction to exceptions
- Detecting and handling exceptions
- Exceptions as Strings and Classes
- Raising exceptions
- Creating exceptions
- Standard exceptions
- Standard Python modules
- Object Persistance
- pickle and shelve modules
- Serialization using json
- Using the sys module
- Using the os module
- Filesystem/directory functions
- Basic process management functions
- Recursive directory iteration using os.walk
- Using the os.path module
- Determining basename, dirname, path manipulation
- File type/size/timestamp and other stat determination
- Using the time and datetime modules
- Using random, shutil, pprint, hashlib and logging modules
- Implementing multi-tasking in Python programs
- Introduction to threads and processes
- Creating and managing threads and processes
- threading vs multiprocessing module
- Concurrency management using Lock and RLock
- Producer Consumer algorithm using Queue
- Implementing thread pool and process pool
- Introduction to Testing, Debugging and Deployment
- Using the unittest module for writing testcases
- Using doctest
- Documentation generation using pydoc
- Using pdb debugger framework and inspect
- Tracing python statement execution using trace framework
- Timing measurement using timeit module
- Building and installing python modules using distutils and pypi
- Python Special Classes
- Introduction to GUI programing
- Automating processes and CLI
- Using the command line arguments
- Using option parser
- Using I/O Redirection
- Using the subprocess module
- Using pexpect module
- Network programming
- An overview of the socket module
- Creating network servers and clients using socket module
- Comparing with multiprocessing.Listener , socketserver, asyncore, Twisted Matrix
- Network automation modules
- Mail handling using smtplib and poplib
- Using paramiko/Fabric for SSH automation
- Web programming and automation using Python
- User-Agent automation using urllib, requests
- Basics of Parsing HTML using HTMLParser
- Basics of Parsing XML using ElementTree XML API
- Consuming SOAP/REST web services
Explaining the concepts by examples (even real-life ones) and code. And that sense of humor, awesome
The way he lead the training: coding, explaining, commenting in code, checking to version control, and making it available.
Illustrated concepts through interactive coding and persisting material. Very patient, clear, great examples, flexible and adjusts to class needs. Hands on working with user stories were very helpful.
- Real time virtual classess
- Pre course reading material
- Suppliment resources
- Language: English
- Certificate of completion