An intensive hands-on course that dives deep into the Python internals, advanced features like decorators, generators, meta classes etc. and best practices of Python programming language.
This course is targeted at experienced Python programmers who would like to learn advanced features of the Python programming language for building libraries and frameworks with beautiful APIs.
This course assumes a working knowledge of Python programming. It is not recommended for programmers who are new to Python.
- Working knowledge of Python programming
This course is not for you if –
- You have never written a list comprehension
- You have never used generators or decorators before
- You have never written a class in Python
- You don’t know what
Review of Python programming language. Topics covered are lists, dictionaries, list comprehensions and importing modules.
Higher Order Functions and Decorators
A deeper look at functions in Python. Covers functions with variable arguments, keyword and default arguments, scoping rules, recursion, higher order functions and decorators.
Iterators and Generators
Introduction to Iterators, generators and generator expressions with emphasis on working with large data and how these techniques help to make code more readable. Also explores coroutines using the new async and await syntax and async programming.
Deeper look at classes and objects
Understanding classes and objects at a deeper level. Covers old-style and new-style classes, static methods, class methods, special methods for operator overloading, slots, descriptors, context managers and meta classes.
Writing Python Libraries
Covers best practices of writing, documenting, testing and distributing python libraries.
The suggested duration of the course is 3 days.
This is an interactive course and it is suggested to limit the number of participants to 12 or less for it to be effective.
All the topics covered in the class will recorded as IPython notebook and shared with all the participants at the end of the each day of the course.
Anand has been crafting beautiful software since two decades. He has strong product development experience with deep insights in system design, scalability, and developer experience. He has co-authored web.py, a micro web framework in Python, built Open Library at the Internet Archive, created a machine learning platform at Rorodata, trained hundreds of engineers through his deep-dive courses.
Vikrant has over 16 years of experience in crafting software solutions. He has worked on diverse areas like Computational Fluid Dynamics, mathematical algorithms for bioinformatics, network-based license servers etc. He has worked at Strand Life Sciences and DRDO. He has a Masters in Computational Science from Indian Institute of Science.