Introduction
The purpose of this doc is to serve as a point of reference regarding the Python programming language.
If you have no prior programming experience, learn basic Python by writing simple programs and running them either by using the resources in this doc or any good resource, then how to use common functions in the numpy library and learn how & why it is different from regular Python. After this, you are set to start contributing to the codebase and pick up new things as necessary. Google search & Stack Overflow will be helpful. LLMs like Chat GPT & Claude are great for Python programming but use documentation as a source of truth.
Basic Python
Introduction to Programming with Python (No prior programming knowledge required)
- https://www.edx.org/learn/python/harvard-university-cs50-s-introduction-to-programming-with-python
- CS50's Introduction to Programming with Python 2022 (YouTube Playlist)
Modules & Packages
Testing
Plotting
Matplotlib
Seaborn
Numpy
Robotics Operating System 2 (ROS2) Python Library
See the Python-related tutorials in the link below:
https://docs.ros.org/en/galactic/Tutorials.html
It is important to note that the tutorials are for ROS 2 Galactic, which our stack is currently (17th August 2024) based upon.
Extras
Virtual Environments & Package Management
Venv
Poetry
Managing multiple Python versions
Pyenv
SciPy
- https://www.datacamp.com/tutorial/python-scipy-tutorial
- https://realpython.com/python-scipy-cluster-optimize/
Type Checking
Decorators
Calling C code from Python
Numba
Jax
https://jax.readthedocs.io/en/latest/quickstart.html
List of libraries & tools for working with Python
{% figure src="/python resources.png" height="400px" /%}
Backup image in case the link does not work.