# Teaching Python to Geos
A lot of subsurface scientists and engineers have started teaching Python to their colleagues, their clients, their students, or their supervisors. Between everyone, there is a lot of material out there in GitHub and on YouTube. This is an attempt to list some of it, maybe even most of it.
**Please add to it if you find more.**
It might seem a bit crazy that we have all this overlapping, or even redundant, material... but you have to write it to teach it!
## Structured course material
_What is in this category?_ In general, these materials come from academics and might tend to be on the heavier side. (For example more than 1 equation per notebook.) The emphasis might be more on geoscience than on learning to code. They tend to be organized into semesters.
- [EPS88 Fall 2019](https://github.com/ds-connectors/EPS88-Fall-2019), Earth and Planetary Science Department at UC Berkeley — by [Nick Swanson-Hysell](https://twitter.com/polarwander)
- [Earth & Environmental Data Science](https://earth-env-data-science.github.io/intro) — by [Ryan Abernathey](https://twitter.com/rabernat) and Kerry Key
- [Energy Analytics](https://github.com/jessepisel/energy_analytics), UT Austin — by [Jesse Pisel](https://twitter.com/geologyjesse)
- [Spatial Modeling with Geostatistics](https://github.com/GeostatsGuy/2DayCourse_Exercises), UT Austin — by [Michael Pyrcz](https://twitter.com/GeostatsGuy)
- [GeoPython 2019](https://geo-python.github.io/site/), University of Helsinki — by [Dave Whipp](https://twitter.com/dave_whipp)
- [Intro to Quantitative Geology](https://introqg.github.io/site/), University of Helsinki — by [Dave Whipp](https://twitter.com/dave_whipp)
- [Python Course](https://github.com/Rocks-n-Code/PythonCourse) — by [Matthew Bauer](https://twitter.com/Rocks_n_Code)
- [Introducton to programming for geoscientists](https://github.com/ggorman/Introduction-to-programming-for-geoscientists/tree/master/notebook) — by [Gerard Gorman](https://twitter.com/gerardjgorman)
- [Earth Data Science by Earth Lab](https://www.earthdatascience.org/)
- [Agile Scientific Geocomputing courses](https://github.com/agilescientific/geocomputing) — a large pile of Jupyter Notebooks, most of which are aimed at geologists, geophysicists, and engineers.
## Bite-size tutorials
These are mostly collections of standalone notebooks that try to teach one aspect of geocomputing, usually with a geoscience 'story' or context. In general, they should take less than half-an-hour to work through. They are aimed at beginners.
- [5 Minutes of Python](https://github.com/jessepisel/5minutesofpython) — by [Jesse Pisel](https://twitter.com/geologyjesse)
- [X Lines of Python](https://agilescientific.com/blog/category/X+Lines) — [Code repo](https://github.com/agile-geoscience/xlines) — by [Agile Scientific](https://agilescientific.com)
## Longer tutorials
These are less structured collections of longer, more involved tutorials. They may or may not be aimed at beginners. There are also blogs or blog posts that may require more reading or work than a quick tutorial.
- [Python for Geoscientists](https://github.com/ddempsey/python_for_geoscientists) — by [David Dempsey](https://twitter.com/davidedempsey)
- [EarthPy](http://earthpy.org/) and [Python for Geosciences](https://github.com/koldunovn/python_for_geosciences) — by Nikolay Koldunov
- [Research Computing](https://rabernat.github.io/research_computing_2018/) — by [Ryan Abernathey](https://twitter.com/rabernat)
- [SEG Geophysical Tutorials](https://wiki.seg.org/wiki/Geophysical_tutorials) — by various authors
- [Geology & Python](http://geologyandpython.com/hoek-brown.html) — by Bruno Ruas de Pinho
- [pyQGIS 101](https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/) — by Anita Graser (for beginner/novice programmers, using the built-in Python console in QGIS)
- [GeoHackWeek Lessons](https://geohackweek.github.io/visualization/) - Tony Cannistra and Randy LeVeque
## Other learning resources
- [Kata for Geoscience](https://kata.scienxlab.org/) — by Matt Hall and others at Agile Scientific — a series of coding challenges with a geocomputing flavour, aimed at beginner and intermediate scientific programmers.
----
Several of these resources were unearthed by Atle Rotevatn with [this tweet](https://twitter.com/UiB_Rotevatn/status/1171321549015699458).
----
© _Software Underground 2020–2023_
Open access, licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)