Appendix F — Further Learning Resources
This book is only one doorway. When you finish (or midway, when you need detail), you will need other reading: official documentation to see every option of a function, other books that explain in a different style, or real data to practise on. This appendix gathers them by topic.
This appendix contains no code, so there are no scripts to download.
How to use this list
- Every link was opened and checked on 2026-10-10. Everything listed below answered with HTTP status 200 (success), with one exception explained in the last section (Kaggle Learn). For most, the page title was also read to confirm that the content matches the description. When an address redirects to another address, the final address is the one listed.
- Links can die or change content. This list is a snapshot of 2026-10-10. If a link no longer works, search for the resource’s name with a search engine.
- We do not list prices or promotional claims, and there are no affiliate links. A resource marked “readable online” can really be opened at the site named; whether a printed or paid edition exists elsewhere is not the point of this list. A licence is mentioned only when it is clearly written on the resource’s own page.
- Documentation versions. Many sites have a “stable” and a “latest” version. Choose the one that matches the library version on your computer; version numbers on the page may differ from what we saw.
- Links that were dropped or could not be verified are in the last section, with the reasons.
Official Python documentation and core tools
| Resource | What for | Link |
|---|---|---|
| Python 3.14 documentation | The main reference for the language, the standard library, and “What’s new” | docs.python.org/3.14 |
| The official Python tutorial | The language explained step by step | docs.python.org/3.14/tutorial |
| The standard library | A list of all built-in modules | docs.python.org/3.14/library |
| Language reference | Python’s grammar rules and data model | docs.python.org/3.14/reference |
| What’s new in 3.14 | New features of the book’s reference version (see also Chapter 47) | docs.python.org/3.14/whatsnew/3.14 |
| Using Python on Windows | The Python install manager (see Appendix A) | docs.python.org/3.14/using/windows |
| Virtual environments | The official venv tutorial (see Chapter 17) | docs.python.org/3.14/tutorial/venv |
| PEPs (Python Enhancement Proposals) | The origin of and reasons for language features | peps.python.org |
| PEP 8 | The code style guide (Chapter 19) | peps.python.org/pep-0008 |
| PEP 20 | “The Zen of Python”, the language’s design principles | peps.python.org/pep-0020 |
| Python Packaging User Guide | Installing and publishing packages (Chapters 17, 45) | packaging.python.org |
| pip | Documentation of the package installer | pip.pypa.io |
| uv | Package and project manager (Chapter 17) | docs.astral.sh/uv |
| ruff | Linter and formatter (Chapter 19) | docs.astral.sh/ruff |
| pytest | Testing framework (Chapter 18) | docs.pytest.org |
| mypy | Type checker (Chapter 33) | mypy.readthedocs.io |
| Python Developer’s Guide | How Python development works and how to contribute (Chapter 68) | devguide.python.org |
| PyPI | The Python package repository | pypi.org |
| conda-forge | A community package channel for conda (Chapters 17, 38) | conda-forge.org |
| conda documentation | The package and environment manager (Chapter 17) | docs.conda.io |
| Python wiki: Beginners Guide | An entry point for beginners from the Python site | wiki.python.org/moin/BeginnersGuide |
Books and courses for learning Python
| Resource | What for | Link |
|---|---|---|
| Automate the Boring Stuff with Python (Al Sweigart) | Automating everyday tasks for beginners; the page says its content can be read under a Creative Commons licence | automatetheboringstuff.com |
| Think Python, 3rd edition (Allen B. Downey) | An introduction to programming with Python; the page states the CC BY-NC-SA 4.0 licence | greenteapress.com |
| How to Think Like a Computer Scientist (interactive edition) | An interactive book with exercises on the page | runestone.academy |
| Python for Everybody (Charles Severance) | Materials, lectures, and assignments for beginners; the page states the CC BY 4.0 licence | py4e.com |
| CS50’s Introduction to Programming with Python | An introductory course from Harvard | cs50.harvard.edu/python |
| MIT OCW 6.0001 | Introduction to computer science and programming with Python | ocw.mit.edu |
| The Hitchhiker’s Guide to Python | A guide to Python practice and tools | docs.python-guide.org |
| Exercism: the Python track | Practice problems with feedback | exercism.org/tracks/python |
| Kaggle Learn | Short lessons on Python, pandas, and ML (see the note in the last section) | kaggle.com/learn |
| Real Python | Python articles and tutorials | realpython.com |
| Book list on the Python wiki | A list of books compiled by the community | wiki.python.org/moin/PythonBooks |
| PyVideo | An archive of Python conference talk recordings | pyvideo.org |
Data, statistics, and data science
| Resource | What for | Link |
|---|---|---|
| NumPy | Numerical arrays (Chapter 23) | numpy.org/doc |
| pandas | Data tables (Chapters 23, 25) | pandas.pydata.org/docs |
| Matplotlib | Basic charts (Chapter 25) | matplotlib.org |
| seaborn | Statistical charts (Chapter 26) | seaborn.pydata.org |
| SciPy | Science and statistics (Chapter 26) | docs.scipy.org |
| statsmodels | Regression and statistical models (Chapter 27) | statsmodels.org |
| scikit-learn | Classical machine learning (Chapters 25, 54) | scikit-learn.org |
| Jupyter | Interactive notebooks (Chapters 25, 29) | jupyter.org |
| Quarto | Reports and documents that run code (Chapter 29) | quarto.org/docs/guide |
| Snakemake | Repeatable analysis workflows (Chapter 29) | snakemake.readthedocs.io |
| DVC | Data versioning (Chapters 29, 58) | doc.dvc.org |
| Zenodo | Storing and citing research data and code (Chapter 29) | zenodo.org |
| Python Data Science Handbook (Jake VanderPlas) | A book on numpy, pandas, matplotlib, and scikit-learn; the page states the text is CC-BY-NC-ND and the code is MIT-licensed | jakevdp.github.io/PythonDataScienceHandbook |
| Scipy Lecture Notes | Lecture notes on the scientific Python ecosystem | scipy-lectures.org |
| Polars | Fast data tables (Chapter 50) | pola.rs |
| Apache Parquet | Columnar format (Chapter 50) | parquet.apache.org/docs |
| Dask | Parallel computing for big data (Chapter 53) | docs.dask.org |
Web, APIs, databases, and interfaces
| Resource | What for | Link |
|---|---|---|
| Requests | HTTP client (Chapter 21) | requests.readthedocs.io |
| HTTPX | Modern HTTP client (Chapter 21) | python-httpx.org |
| Pydantic | Data validation (Chapter 34) | pydantic.dev/docs |
| FastAPI | Web framework for APIs (Chapter 36) | fastapi.tiangolo.com |
| Flask | Lightweight web framework (Chapter 36) | flask.palletsprojects.com |
| Django | Full-featured web framework (Chapter 36) | docs.djangoproject.com |
| MDN: Learn web development | The basics of HTML, CSS, and JavaScript for web developers | developer.mozilla.org |
| Streamlit | Quick data apps (Chapter 43) | docs.streamlit.io |
| Gradio | Model demo interfaces (Chapter 43) | gradio.app/docs |
| Dash | Interactive dashboards (Chapter 43) | dash.plotly.com |
| Pyodide | Python in the browser (Chapter 37) | pyodide.org |
| SQLAlchemy | Databases from Python (Chapter 24) | docs.sqlalchemy.org |
| SQLite | Documentation of the single-file database (Chapter 24) | sqlite.org/docs |
| PostgreSQL | Documentation of the server database (Chapters 24, 40) | postgresql.org/docs |
| Scrapy | Web scraping framework (Chapter 41) | scrapy.org |
| Beautiful Soup | Reading HTML (Chapter 41) | crummy.com/software/BeautifulSoup |
| RFC 9309 | The robots.txt standard (Chapter 41) | rfc-editor.org/info/rfc9309 |
| Celery | Task queue (Chapter 67) | docs.celeryq.dev |
| Docker | Containers and Dockerfiles (Chapter 48) | docs.docker.com/get-started |
GIS and environmental data
| Resource | What for | Link |
|---|---|---|
| GeoPandas | Vector data (Chapter 38) | geopandas.org |
| Shapely | Geometry (Chapter 38) | shapely.readthedocs.io |
| pyproj | Coordinate systems and projections (Chapter 38) | pyproj4.github.io/pyproj |
| Rasterio | Raster data (Chapter 39) | rasterio.readthedocs.io |
| GDAL | The base library for geospatial formats (Chapter 38) | gdal.org |
| QGIS | Desktop GIS application (Chapter 40) | qgis.org |
| PostGIS | PostgreSQL’s spatial extension (Chapter 40) | postgis.net/documentation |
| STAC | Geospatial data catalogue specification (Chapter 51) | stacspec.org |
| PySTAC | Python library for STAC (Chapter 51) | pystac.readthedocs.io |
| xarray | Labelled multidimensional arrays (Chapters 51, 53) | docs.xarray.dev |
| Geographic Data Science with Python | A geographic data science book written in notebooks | geographicdata.science/book |
| Google Earth Engine | Earth imagery analysis platform (Chapter 59) | developers.google.com/earth-engine |
| Planetary Computer | A STAC-based catalogue of Earth data | planetarycomputer.microsoft.com |
| Sentinel-2 COG (AWS Open Data) | Sentinel-2 imagery in COG format | registry.opendata.aws |
| Copernicus Data Space Ecosystem | Sentinel and Copernicus data | dataspace.copernicus.eu |
| USGS EarthExplorer | Landsat imagery and USGS data | earthexplorer.usgs.gov |
| ESA Earth Online | ESA’s portal for Earth observation data and documentation | earth.esa.int/eogateway |
| OpenStreetMap | An open base map | openstreetmap.org |
| Open-Meteo | An open weather API (used in Chapter 21) | open-meteo.com |
Before using any data in real work, read its licence terms (see Chapter 63).
Machine learning and AI
| Resource | What for | Link |
|---|---|---|
| PyTorch: installing | Install commands by OS and GPU (Chapter 55) | pytorch.org/get-started/locally |
| PyTorch tutorials | The official tutorials (Chapter 55) | docs.pytorch.org/tutorials |
| Dive into Deep Learning | A deep learning book with code | d2l.ai |
| Learn PyTorch for Deep Learning | An online book introducing PyTorch | learnpytorch.io |
| fast.ai: Practical Deep Learning | A practical deep learning course | course.fast.ai |
| Hugging Face: Learn | Courses and guides on open models (Chapter 61) | huggingface.co/learn |
| Hugging Face: LLM Course | A course on language models (topic of Chapters 60 and 61) | huggingface.co/learn/llm-course |
| Hugging Face documentation | The transformers library and the Hub (Chapter 61) | huggingface.co/docs |
| OpenCV | Image processing (Chapter 56) | docs.opencv.org |
| pymoo | Multi-objective optimisation (Chapter 57) | pymoo.org |
| Optuna | Hyperparameter search (Chapter 57) | optuna.readthedocs.io |
| SHAP | Model explanation (Chapter 58) | shap.readthedocs.io |
| MLflow | Experiment and model tracking (Chapter 58) | mlflow.org/docs |
| Model Context Protocol | MCP documentation (Chapter 62) | modelcontextprotocol.io |
| NVIDIA: drivers | The official driver download page (Chapter 55) | nvidia.com/drivers |
| NVIDIA: CUDA Toolkit | The CUDA Toolkit download page (Chapter 55) | developer.nvidia.com/cuda-downloads |
AI library documentation changes fast. This book always states versions and dates; when a command in the newest documentation differs from the book, follow the official documentation.
Software engineering, security, and licences
| Resource | What for | Link |
|---|---|---|
| Pro Git | The official Git book (topic of Chapter 20) | git-scm.com/book |
| GitHub documentation: getting started | Repos, issues, pull requests, and GitHub Actions (Chapter 20) | docs.github.com |
| Open Source Guides | How to join and run open source projects (Chapter 68) | opensource.guide |
| Choose a License | Choosing a software licence (Chapter 63) | choosealicense.com |
| SPDX License List | A list of licences with standard identifiers (Chapter 63) | spdx.org/licenses |
| GNU licences | The text of the GPL and similar licences (Chapter 63) | gnu.org/licenses |
| Creative Commons BY 4.0 | A summary of the CC BY 4.0 licence (Chapters 21, 29) | creativecommons.org |
| OWASP Top Ten | A list of common web application vulnerabilities (topic of Chapter 49) | owasp.org/projects/top-ten |
| Numba | Speeding up numerical code (Chapter 66) | numba.readthedocs.io |
| Cython | Compiling Python-like code (Chapter 66) | cython.readthedocs.io |
| PyO3 | Python extensions with Rust (Chapter 66) | pyo3.rs |
| Mermaid | Diagrams from text (used in this book) | mermaid.js.org |
Indonesian-language resources
| Resource | What for | Link |
|---|---|---|
| Dicoding: Memulai Pemrograman dengan Python | A Python class in Indonesian from Dicoding Indonesia | dicoding.com/academies/86 |
| Petani Kode | A programming tutorial site in Indonesian | petanikode.com |
| Komunitas Python Indonesia | The community blog: meetup news and job listings; some content may be old | python.or.id |
| PyCon ID | The Indonesian Python conference (the 2026 edition page) | 2026.pycon.id |
| Portal Satu Data Indonesia | The Indonesian government data portal | data.go.id |
| Data Terbuka BMKG | Weather forecast, earthquake, and weather early-warning data from BMKG | data.bmkg.go.id |
| Ina-Geoportal | The Indonesian geospatial portal (the page is titled “Ina-Geoportal”; we did not read its details) | tanahair.indonesia.go.id/portal-web |
| JDIH BPK: regulations database | Searching the text of laws and regulations (Chapter 63) | peraturan.bpk.go.id |
For Indonesian topics, start from primary sources (the agency that publishes the data or rules), not from third-party summaries. This book is itself written in parallel Indonesian and English; when reading English documentation, use Appendix C to match terms.
Communities and latest news
| Resource | What for | Link |
|---|---|---|
| Discussions on Python.org | The official Python community forum | discuss.python.org |
| PyCon (conference organisation) | Information about PyCon conferences | pycon.org |
| Django community | A doorway to Django forums and user groups | djangoproject.com/community |
Links that were dropped or could not be verified
While compiling this list, the following links were not included. The reasons, as they are:
| Link | Result of the check | Decision |
|---|---|---|
| python.geospatialschool.com | Could not connect | Dropped |
| id.python.org | Could not connect | Dropped |
| pythonindonesia.github.io | HTTP 404 | Dropped |
| geoportal.menlhk.go.id and sipongi.menlhk.go.id | Could not connect from the author’s computer | Dropped; possibly a brief outage or access restriction, but not proven |
youtube.com/@Python |
HTTP 404 | Dropped |
| geeksforgeeks.org/python | HTTP 404 for our checker | Dropped |
| bps.go.id | HTTP 403 (refuses automated clients) | Dropped because its content could not be verified |
| stackoverflow.com, python tag | HTTP 403 (refuses automated clients) | Dropped |
| github.com/python-id | The first check succeeded, the second failed (HTTP 504), the content was not read | Dropped |
| Facebook and Telegram groups of the Indonesian Python community | The pages answered successfully but their content cannot be confirmed | Dropped |
| kaggle.com/datasets | HTTP 404 for our checker | Dropped |
| learn.microsoft.com (Python learning path) | Succeeded, but the page title was too generic to confirm the content | Dropped |
| freecodecamp.org | Succeeded, but the page had no readable title | Dropped |
One exception: kaggle.com/learn answered 404 to our automated checker, but its page was read successfully with another web-reading tool (the page title is “Learn Python, Data Viz, Pandas & More”). We list it with the note that the site may block automated checkers.
How to judge a learning resource
The internet is full of learning material, but not all of it is good or current. A few simple questions before you trust a resource:
- Which version? Python, pandas, and other libraries change. A tutorial that is years old may use old ways. Match it to the version on your computer.
- Who wrote it? Official documentation and books maintained by their authors are usually more trustworthy than copies on other sites.
- Can you run the examples? Examples that cannot be run are often wrong. Type them in and run them yourself.
- What is the licence? Especially for data and code you will reuse (Chapter 63).
- Are there claims that are too good? Beware of promises like “become an expert in a day”.
The most useful habit: when you learn a new function, open its official documentation and read one example there. Official documentation is usually the only source that surely follows the newest version.
This list was compiled by checking each link on 2026-10-10, not by judging the quality of each content. Listing a resource is not a guarantee that its content suits you; it only means the link exists and the page appears to match the description.
Next: return to Appendix E to choose a learning path, or to Appendix C if a term needs remembering.