Skip to content

Getting Started

JS Ng edited this page May 30, 2025 · 4 revisions

Setting up your work environment

Chances are, most of you will be doing your work on your PLD or laptop. Your environment setup matters because:

  • you might need multiple dependencies, sometimes with conflicting versions. Some projects may need you to install psycopg2 or pymongo, others may require different versions of those, or a different set of dependencies. You don't necessarily want to install all of those directly into your system and clutter things up.
  • you might need to work with different versions of Python. At NYSD, we standardise on Python 3.11. If you are a Computing student, you might have installed Python 3.7 (a no longer supported version). If you are working on your own projects, or other projects, you might be using the newest version, Python 3.14 and above. How do you make sure you are running each script with the correct version?

These are not new problems; developers have already developed solutions to these issues. For dependency management, we use dependency files and virtual environments. For managing Python versions and other non-Python packages, we use dev containers. Read the training materials to understand how they work; this guide is solely focused on how to set things up.

PLD/low-end laptop

If your laptop doesn't have high specs and not very much storage, you should use Github Codespaces. These are cloud-hosted devcontainers, running on Github's servers, which you can connect to through VSCode or your web browser. The code and packages are hosted by Codespaces and do not take up space on your laptop.

Desktop/high-end laptop

You can still use Codespaces on a higher-end system if you choose. If you find that you are reaching/exceeding the quota for Codespaces, you have one more option: running the dev container directly on your laptop instead of in Codespaces.

Install requirements: Docker Desktop and WSL2

To do so, you will need to install Docker Desktop. On Windows, this will also install WSL2, which is a virtualisation feature that lets Windows systems run binary executables compiled for Linux.

Recommended system requirements:

  • 4-core CPU (or higher), Intel Core CPU or equivalent
  • 8GB RAM or more
  • 512GB solid state disk

Docker Desktop will need to be running for you to create, run, and connect to dev containers. You can keep it running in the background.

Clone this wiki locally