
[](https://github.com/pyopensci/lessons)
[](https://zenodo.org/badge/latestdoi/556814582)
[](https://github.com/pyOpenSci/lessons#contributors-)
[](https://binder.opensci.2i2c.cloud/v2/gh/pyopensci/lessons/HEAD)
:::::{grid} 2
::::{grid-item} :::{card} ✿ Contribute to Open Source ✿] :class-card: left-aligned
Learn how to navigate the technical and social elements of making a contribution to open source code on GitHub.
- Your First Contribution
- Get to know a new repo
- Find an issue to work on
- Fork a repo
- Edit & commit files
- Submit a pull request
::: ::::
::::{grid-item} :::{card} ✿ Clean Code ✿ :class-card: left-aligned
- Intro to clean code
- Write "Pythonic", Expressive Code
- Lint, Format, & Style your Code
- Don't Repeat Yourself (DRY) Principles
- Write Pseudocode
::: ::::
::::{grid-item} :::{card} ✿ Code Checks ✿ :class-card: left-aligned
- About Functions
- Write Python Functions
- Add checks to functions
- Multi parameter functions
- Write Conditionals to redirect code
- Common Python exceptions
::: ::::
::::{grid-item} :::{card} ✿ Package & Share Your Code ✿ :class-card: left-aligned
::: ::::
:::::
These lessons help scientists understand best practices and tools used in the Python ecosystem. We will be adding new lessons over the next year.
In these lessons, we'll be covering topics that encourage efficient, maintainable, and reproducible code. We start out by introducing the concepts of "clean code" and "Pythonic code". Then, we move into how you can achieve clean, Pythonic code using best practices and tools.
:::{toctree} :hidden: :caption: Write Better Code :maxdepth: 2
Write Better Code <write-better-code/index> :::
:::{toctree} :hidden: :caption: Package & Share Code :maxdepth: 2
Package & Share Code <package-share-code/index> :::
:::{toctree} :hidden: :caption: GitHub :maxdepth: 2
Contribute Open Source <contribute-open-source/index> :::