Chapter 3: Further Reading

Annotated Bibliography

This curated reading list provides resources for deepening your understanding of Python environment setup, package management, and development workflows. Resources are organized by topic with annotations explaining their relevance to basketball analytics.


Official Documentation

Python

Python Official Documentation https://docs.python.org/3/

The authoritative reference for Python syntax, standard library, and language features. The tutorial section is excellent for reinforcing fundamentals. Pay particular attention to the venv documentation for virtual environment best practices.

Python Packaging User Guide https://packaging.python.org/

Official guidance on creating and distributing Python packages. Essential reading for understanding how pip, wheels, and requirements files work together. The section on dependency management is particularly relevant.


Package Managers

pip Documentation https://pip.pypa.io/en/stable/

Complete documentation for pip including advanced features like constraints files, hash checking, and local package installation. The "User Guide" section covers most analytics workflows.

Conda Documentation https://docs.conda.io/

Official Conda documentation covering environment management and package installation. Particularly useful if you need to manage non-Python dependencies or work with GPU computing libraries.


Development Tools

Jupyter Documentation https://jupyter.org/documentation

Comprehensive documentation for Jupyter Notebook and JupyterLab. The JupyterLab documentation covers advanced features like multiple views, extensions, and collaborative editing.

Git Documentation https://git-scm.com/doc

The official Git reference. The free "Pro Git" book available here is an excellent comprehensive resource for version control concepts and workflows.


Books

Python Fundamentals

Python Crash Course (3rd Edition) Eric Matthes | No Starch Press, 2023

Excellent introduction to Python for beginners. Part 1 covers fundamentals while Part 2 includes practical projects. Ideal for analysts coming from other languages or with limited programming experience.

Fluent Python (2nd Edition) Luciano Ramalho | O'Reilly Media, 2022

Deep dive into Python's features and idioms. Covers advanced topics like generators, decorators, and metaprogramming. Best for those wanting to write more Pythonic code after mastering basics.


Data Science Environment

Python for Data Analysis (3rd Edition) Wes McKinney | O'Reilly Media, 2022

Written by the creator of pandas, this book thoroughly covers the data science Python stack. Chapter 1-3 on IPython and Jupyter provide excellent environment guidance specific to analytics workflows.

Effective Pandas: Patterns for Data Manipulation Matt Harrison | 2021

Focused guide to pandas best practices. While primarily about pandas usage, includes valuable guidance on environment setup for data manipulation tasks.


Software Engineering Practices

The Pragmatic Programmer (20th Anniversary Edition) David Thomas & Andrew Hunt | Addison-Wesley, 2019

Classic software engineering text covering development practices, tooling, and workflow optimization. The principles apply directly to building maintainable analytics codebases.

Clean Code: A Handbook of Agile Software Craftsmanship Robert C. Martin | Prentice Hall, 2008

Foundational text on writing readable, maintainable code. Essential for analysts transitioning from scripts to production systems.


Online Courses

Python Environment Setup

Python Environment Setup (Real Python) https://realpython.com/python-virtual-environments-a-primer/

Comprehensive tutorial on virtual environments covering venv, virtualenv, and their differences. Includes practical examples and common pitfalls.

Managing Python Dependencies (Real Python) https://realpython.com/courses/managing-python-dependencies/

Video course covering requirements files, pip features, and dependency management strategies. Good complement to reading documentation.


Jupyter

JupyterLab: Evolution of the Jupyter Notebook https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html

Getting started guide for JupyterLab with focus on features that improve productivity for data analysis.

Jupyter Tips and Tricks (Various Sources) Search for current tutorials on YouTube and Medium

Many excellent tutorials cover keyboard shortcuts, magic commands, and productivity features. Look for recent content as Jupyter evolves rapidly.


Git and Version Control

Git & GitHub Crash Course (Traversy Media) https://www.youtube.com/watch?v=SWYqp7iY_Tc

Popular video tutorial covering Git basics including branching, merging, and GitHub workflows. Good visual introduction to version control concepts.

GitHub Learning Lab https://lab.github.com/

Interactive courses on Git and GitHub directly on the platform. Hands-on approach helps cement concepts through practice.


Articles and Blog Posts

Environment Management

Python Application Dependency Management in 2018 Hynek Schlawack https://hynek.me/articles/python-app-deps-2018/

Though dated, this article's analysis of Python dependency management options remains relevant. Good for understanding the landscape of tools like pip, pipenv, and poetry.

A Guide to Python Virtual Environments Real Python https://realpython.com/python-virtual-environments-a-primer/

Comprehensive guide covering why, when, and how to use virtual environments. Includes comparisons between different virtual environment tools.


Development Workflow

Effective Python Testing with Pytest Real Python https://realpython.com/pytest-python-testing/

Introduction to pytest for testing Python code. While Chapter 3 focuses on environment, testing becomes essential as projects grow.

Python Code Quality: Tools & Best Practices Real Python https://realpython.com/python-code-quality/

Overview of linting, formatting, and code quality tools. Covers black, flake8, and mypy setup and configuration.


Tools Documentation

Package Management

Poetry Documentation https://python-poetry.org/docs/

Modern dependency management tool that handles virtual environments and packaging. Alternative to pip for more complex projects. Growing adoption in the data science community.

pipenv Documentation https://pipenv.pypa.io/en/latest/

Tool combining pip and virtualenv with dependency locking. Once popular, now somewhat superseded by Poetry, but still used in many projects.

pip-tools Documentation https://pip-tools.readthedocs.io/

Tool for generating pinned requirements files from high-level dependencies. Excellent for maintaining reproducible environments without switching from pip.


IDE and Editor

VS Code Python Extension Documentation https://code.visualstudio.com/docs/python/python-tutorial

Official documentation for VS Code Python support. Covers interpreter selection, debugging, testing, and Jupyter integration.

PyCharm Documentation https://www.jetbrains.com/pycharm/documentation/

Comprehensive documentation for JetBrains PyCharm IDE. The Community Edition is free and includes excellent Python and scientific computing support.


Community Resources

Forums and Q&A

Stack Overflow - Python Tag https://stackoverflow.com/questions/tagged/python

Primary resource for Python questions. Search before asking; most environment issues have been addressed. The [virtualenv] and [pip] tags are particularly relevant.

r/learnpython Subreddit https://reddit.com/r/learnpython

Friendly community for Python questions at all levels. Good for getting help with environment setup issues.


Newsletters and Blogs

Real Python https://realpython.com/

High-quality Python tutorials and articles. Regular content on environment management, testing, and best practices.

Python Weekly https://www.pythonweekly.com/

Weekly newsletter covering Python news, articles, and tutorials. Good for staying current with ecosystem changes.

Pycoder's Weekly https://pycoders.com/

Another excellent Python newsletter with curated content on libraries, tools, and techniques.


Video Resources

Conference Talks

PyCon Talks https://www.youtube.com/c/PyConUS

Recorded talks from PyCon conferences. Search for "packaging", "environment", or "reproducibility" for relevant content.

"Reproducible Data Science with Python" talks Various conferences

Search YouTube for talks on this topic. Many excellent presentations cover environment management for data science specifically.


YouTube Channels

Corey Schafer https://www.youtube.com/c/Coreyms

Excellent Python tutorials including virtual environments, pip, and development setup. Clear explanations suitable for beginners.

sentdex https://www.youtube.com/c/sentdex

Python programming tutorials with data science focus. Good coverage of environment setup for machine learning projects.


Advanced Topics

Containerization

Docker for Data Science Various resources

Containerization provides another layer of environment isolation. Consider exploring Docker once comfortable with virtual environments, especially for production deployments.

Docker Python Best Practices https://docs.docker.com/language/python/

Official Docker guidance for Python applications. Relevant for deploying analytics pipelines in production.


Reproducibility

Reproducible Research with Python Various academic resources

Academic perspective on reproducibility in computational research. Relevant concepts for ensuring analytical results can be verified and replicated.

The Turing Way - Reproducible Research https://the-turing-way.netlify.app/reproducible-research/

Comprehensive guide to reproducible research practices. Covers environment management as part of broader reproducibility goals.


For those new to Python development environments:

  1. Start with: Python official venv documentation
  2. Then read: Real Python virtual environments primer
  3. Follow with: pip documentation user guide
  4. Study: Jupyter documentation getting started
  5. Practice: Git interactive tutorials
  6. Explore: VS Code Python tutorial

For experienced developers new to data science:

  1. Start with: Python for Data Analysis (McKinney)
  2. Then read: pip-tools or Poetry documentation
  3. Follow with: Jupyter best practices articles
  4. Study: Reproducibility guides

Staying Current

Python packaging and tooling evolve rapidly. To stay current:

  1. Follow PEPs (Python Enhancement Proposals) related to packaging
  2. Monitor Python Weekly and Pycoder's Weekly
  3. Watch PyCon talks on packaging and environment management
  4. Check library changelogs when updating dependencies
  5. Follow @paborney, @di_codes and other packaging experts on Twitter

A Note on Learning

Environment setup often feels like a distraction from "real" analytics work. However, the time invested in understanding these tools pays dividends:

  • Fewer debugging sessions caused by environment issues
  • Easier collaboration with teammates using the same setup
  • Reproducible results that can be verified and built upon
  • Smoother deployments to production systems

The goal is to make environment management automatic so you can focus on basketball analysis.


Last updated: Chapter 3 publication date. Check for updated resources at the textbook companion website.