Setup your machine
This section deals with setting up your development machine. The overarching goal is to help you install as much software as you'll need up-front so that you can afford to install only what's necessary on a per-project basis.
Why this is important
A well-configured development machine is crucial for productive data science work:
- Reproducibility: Proper setup ensures your work can be reproduced by others and by yourself on different machines.
- Efficiency: Having the right tools installed globally saves time when starting new projects.
- Development Speed: A properly configured shell and editor with the right plugins can significantly speed up your workflow.
- System Resource Management: Understanding your system setup helps prevent conflicts between different Python versions, packages, and system dependencies.
- Collaboration: Following standard setup practices makes it easier to collaborate with others and share code.
What you'll learn in this section
In this section, you'll learn how to:
- Configure your shell environment for maximum productivity
- Install essential system-level software and development tools
- Set up Git and version control configurations
- Install and configure uv for Python package management
- Set up Homebrew for managing system packages
- Configure
direnv
for environment management - Configure VSCode for maximum productivity
Each step builds on the previous one, so it's recommended to follow them in order. The shell configuration will make the subsequent software installation easier, while the system software provides the foundation for Python-based tools.