In the past years I have done a bit of programming teaching. Mostly at the university, where I have tutored in-person classes for C and LaTeX. On the side I have also taught people C and recently Python. In order to learn programming, one has to be able to experiment, therefore one needs to have a shared environment that allows to execute code. I want to introduce a few options that I have found.
The first one is JDoodle. It supports a bunch of programming languages and one can work on a single file there. It supports interactive programs but no interactive interpreter. Collaboration is possible, but I found it flaky, often one person would just drop out.