Text Editor (programming, editing documents)

You should have a good text editor, which hopefully has syntax highlighting for various languages, especially for python, R, and Stata. All of these languages now have their own GUI's, e.g., RStudio (or Posit as it is now called) for R, Stata has its own editor (which has improved quite a bit but is still bad), or you can use Jupyter for Python, R, Stata, etc. Hopefully the editor you choose will also allow you to execute code, and perform analyses directly in it.

I personally recommend atom, which is free, custimizable and very flexible. Sadly, atom will not be sustained by GitHub anymore, so it seems we'll have to move to another editor. Most people seem to use and recommend VS Code so we may want to use it also.

LaTeX/LyX (writing papers/slides)

LaTeX is the most widely used document preparation system in economics and academia more generally. So I suggest you learn how to write in LaTeX and also have a local installation. You can prepare your documents using one of the distributions for your computer, or use Overleaf online. Both of these are based on writing actual LaTeX code.

While the free version of Overleaf is great since you can start working at once and can have one collborator, I always suggest you have the LaTeX system installed on your computer. Install the LaTeX distribution for your system from the LaTeX website.

If you do not want to learn to "code" LaTeX, you can use LyX, which is a WYSWYG editor for LaTeX. For LyX to work you need a LaTeX installation. If LyX is not installed with your distribution and you need to download and install if from here.

Another option is to use tectonic, which is supposed to install a smaller version of the TeX distributon and download only packages that you require. You can install it using conda into your GeoPython environment.

To get started with LaTeX check out Overleaf's Introduction or some of its other resources.

Some of my templates for LaTeX:

You can find more templates here or here.

Markdown Editor (websites, other documents)

Markdown is the simple and easy-to-use markup language you can use to format virtually any document. It is the language used to write in Jupyter Notebooks, RMarkdown Notebooks, GitHub documentation and websites, websites (e.g., in Pelican, HuGo), etc.

So, it is useful to learn mardown and also to have a markdown editor to edit files for Github as well as generating websites like this one. Here are a few options:

More information on markdown at Markdown Guide.

Interactive and Reproducible Research

Recent advances in computation have introduced new tools like

among others, that allow us to create interactive documents, which can be used to present research and to increase reproducibility.

These tools also allow you to create documents and slides that automatically will recreate all the analyses and update tables and figures in documents, ensurng the latest version is always the most up-to-date and correct one. Most of these are based on markdown or LaTeX for text, and use R or Python for the analyses, making their adoption easier.