Python Development Environments
At the broadest level, a coding environment is simply the software you use to write, run, and manage your code, and for Python, these generally fall into a few recognisable categories. There are basic text editors, such as Notepad++, which offer little more than a place to type code with some syntax highlighting, well suited to quick edits but without much of Python's more advanced support built in. There are beginner-focused IDEs, such as IDLE and Thonny, which strip away complexity and are designed specifically to ease newcomers into writing their very first lines of Python. There are general-purpose IDEs, such as Visual Studio Code, which support many programming languages and are popular across learning, data science, and software development alike. There are more specialised, professional-grade IDEs, such as PyCharm, aimed at larger software projects, and Spyder, tailored specifically toward scientific and numerical computing. There are interactive notebook environments, such as JupyterLab, which favour a mix of code, text, and output over a traditional file-based workflow. And more recently, there are AI-assisted IDEs, such as Cursor and Windsurf, which build AI coding support directly into the editor itself.
Sitting across several of these categories is Anaconda Navigator, which isn't itself a coding environment in the same sense as the others, but rather a Python distribution and environment manager. It installs Python, Jupyter Notebooks, and a wide range of commonly used libraries all together, and provides a simple graphical launcher for accessing tools such as JupyterLab, Spyder, or Jupyter Notebook itself, all without requiring separate manual installation of each one. It is precisely this route, via Anaconda into Jupyter Notebooks, that we'll be using throughout the rest of this course.
Local Software for Python Development
| Software | Primary Purpose | Best |
|---|---|---|
| Anaconda Navigator | Python distribution and environment manager | Installing Python, managing packages and launching development tools |
| Visual Studio Code | General-purpose Python IDE | Learning, data science and software development |
| PyCharm | Professional Python IDE | Large projects, software engineering and application development |
| Spyder | Scientific Python IDE | Numerical computing, scientific research and engineering |
| JupyterLab | Interactive notebook environment | Data science, machine learning and education |
| Cursor | Python IDE | General Python programming |
| Windsurf | Python IDE | General Python programming |
| Thonny | Beginner Python IDE | Learning programming |
| IDLE | Basic Python editor | First steps in Python |
| Notepad++ | Lightweight text editor | Editing simple Python scripts |
Comment: These tools all run locally on your own machine, meaning they require installation and rely on your computer's own processing power. They range considerably in complexity, from lightweight beginner-friendly options like IDLE and Thonny, which strip away extra features to keep the focus on learning, through to full-featured, professional-grade IDEs like PyCharm and Visual Studio Code, which offer advanced tools such as debugging, code completion, and project management for larger, more demanding software projects. Notably, Cursor and Windsurf are relatively recent additions to this space, built around integrating AI-assisted coding directly into the development experience.
Cloud Platforms for Python Development
| Platform | Primary Purpose | Best |
|---|---|---|
| Google Colab | Cloud-hosted Jupyter notebook environment | Learning Python, data science, machine learning and coursework |
| GitHub Codespaces | Full cloud development environment | Software development, research projects and version-controlled programming |
| Kaggle Notebooks | Cloud notebook with integrated datasets | Machine learning, competitions and exploratory data analysis |
| Deepnote | Collaborative notebook platform | Collaborative data science and team projects |
| JupyterHub | Institutional notebook server | University teaching, research groups and shared computing |
| Binder | Temporary executable notebooks | Sharing reproducible notebooks and demonstrations |
| Posit Cloud | Cloud IDE for Python and R | Statistical computing, teaching and analytics |
| Azure Machine Learning | Enterprise machine learning platform | Large-scale model development and deployment |
| Amazon SageMaker Studio | Managed machine learning environment | Production machine learning workflows and cloud computing |
| Databricks | Distributed data and AI platform | Big data analytics, Spark and enterprise data engineering |
Unlike the local tools above, these platforms run in the cloud, meaning the code executes on remote servers rather than your own machine, which is particularly useful when a task demands more computing power than a personal laptop can offer, or when you want to avoid a local installation altogether. Some, like Google Colab and Kaggle Notebooks, are especially popular in educational and machine learning contexts thanks to their free access to processing power such as GPUs. Others, like JupyterHub and Binder, are geared more toward teaching environments and easy sharing of reproducible work, while platforms such as Azure Machine Learning, Amazon SageMaker Studio, and Databricks sit at the more enterprise end of the spectrum, built for large-scale, production-grade machine learning and data engineering workflows.