Python Proficiency: Beyond the Basics
Python has seen an incredible growth in popularity and is now one of the most widely used languages in the software industry. Ask any engineer or scientist what programming language they prefer and the answer is most probably Python <3
Python has, due to its flexible nature, firmly established itself in many domains such as web development, task automation, data analysis and visualization. Python is a leading language in engineering, finance, science, and education.
The deceptively simple syntax of Python has proven easy to pick up and learn, which is by design. However, the path to real Python proficiency is only granted to those who strive for it.
In this workshop, we cover intermediate and advanced concepts and constructs in Python, showcasing how they work “under the hood” with the aim of gaining a true understanding.
Agenda:
- Building, testing and distributing your code as a package
- Advanced exception handling
- Scopes and closures
- Iteration and generators
- Callable objects, lambdas and the underlying bytecode
- Operator overloading and other common interfaces
- Variadic functions and argument unpacking syntax
- Decorators and context managers
- Properties, static and class methods
- Multiple inheritance and method resolution order
Intended Audience:
A basic familiarity with Python is recommended, as the course with cover intermediate to advanced concepts.
Computer Setup:
This workshop requires that you bring a laptop with the following software installed:
- Python 3.6 or greater installed. Python 3.7 or newer would be ideal. https://www.python.org/downloads/
- Poetry the packaging and dependency manager. https://python-poetry.org/
- A code editor supporting Python. Attendees may use whichever editor they prefer, but we recommend PyCharm or VSCode : https://www.jetbrains.com/pycharm/, https://code.visualstudio.com/
- The ability to either connect to the Internet or accept USB flash drives so we can distribute course materials on the day.
Sebastian is a chemical engineer turned software developer. Previously working with fire simulation and probabilistic risk analysis in the Oil & Gas sector, he has transitioned into software engineering and now works as an independent consultant.
Sebastian is passionate about improving quality and reproducibility in science and research by bridging the knowledge gap between scientists and software engineers.
Peder is pythonista with interest in AI, networking, systems and web development, reproducible package management, and declarative system configuration.
He is currently researching neural fields at NTNU, and regularly submits tweaks and fixes to various open source projects.