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.
Recommended Reading Order
For those new to Python development environments:
- Start with: Python official venv documentation
- Then read: Real Python virtual environments primer
- Follow with: pip documentation user guide
- Study: Jupyter documentation getting started
- Practice: Git interactive tutorials
- Explore: VS Code Python tutorial
For experienced developers new to data science:
- Start with: Python for Data Analysis (McKinney)
- Then read: pip-tools or Poetry documentation
- Follow with: Jupyter best practices articles
- Study: Reproducibility guides
Staying Current
Python packaging and tooling evolve rapidly. To stay current:
- Follow PEPs (Python Enhancement Proposals) related to packaging
- Monitor Python Weekly and Pycoder's Weekly
- Watch PyCon talks on packaging and environment management
- Check library changelogs when updating dependencies
- 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.