Before we start writing code, we should think about the tools that we're using to do the development. Having a well configured text editor can make the programming experience much more enjoyable. Much like a carpenter, having sharp tools leads to a more productive creative experience.
There are a few different terminal editors that you can work with. The main reason to use a terminal based editor is that you can run them on servers that you're connected to and you can stay in a terminal to carry out any programming task, whether that be developing the code, debugging, or deploying. There are two terminal based editors I would consider to be extremely popular:
Both of these tools are either pre-installed or readily available on all major Linux distros.
The third option is Nano/Pico and it's more of a tool that I would suggest using if nothing else is available.
For this course, I'll be using a lightly customized version of Vim.
The primary IDE that is used by people in the Python community would be PyCharm. There is a free community edition and there is also a paid edition. To connect to a remote server to do your editing, you'll need to have the paid version.