Fundamentals of Python

This class delivers a brief introduction to the Python language and ecosystem, as well as a look at how enterprise software development practices operate for Python applications.

The purpose of the class is not to replace the amazing, in-depth Python courses and bootcamps offered throughout the Python world, but rather to get a practitioner up and running with the core elements of Python in the minimal possible time.

Fundamentals of Python is recommended for experienced teams new to Python, or institutions where Python may be joining or replacing other technologies for large-scale computation.

Learn Ideas and Gain Skills

  • Read and write Python code using core language constructs
  • Use external packages (libraries) and manage your coding environment
  • Explore notebooks, IDEs, and debuggers
  • Discuss options for type annotation, testing, linting and automated CI/CD (continuous integration / continuous delivery)
  • Learn about the Python community

PyData Python SciPy


Prerequisites

  • Experience programming in one or more other (non-Python) languages in a large project or enterprise setting

Topics

Introduction

  • Scope, goals, and non-goals for a one-day Python introduction
  • How and why Python came to be so widely used

Core Language Constructs

  • Creating and modifing variables
  • Looping and branching
  • Writing and calling functions
  • Classes and inheritance

Python Packages

  • Creating a package
  • Using someone else’s package
  • Finding libraries: PyPI, pip, and Conda

Python Environments

  • The problem with dependencies
  • Creating environments with Conda
  • Managing your environments

Landscape of Coding and Debugging Tools

  • Text editors and pdb
  • IPython, Jupyter, and JupyterLab
  • PyCharm, Spyder, and VS Code

Testing

  • doctest
  • unittest
  • pytest

Formatting, Linting, and Type Annotations

  • PEP-8
  • Black
  • pylint
  • flake8
  • Overview of Python type hints, mypy, pros and cons

Continuous Integration / Continuous Delivery

  • General approach for Python projects
  • Example with CircleCI

Participating in and Learning from the Python Community

  • PSF (PyCon, PySlackers, Discord)
  • PyData, SciPy