There are many software options for working with geospatial data, and which to choose depends on your purpose, skills and access to (license, institutional setup and money).

The software is sorted here by what you do with it in a workflow, not by product:

RoleWhat you do thereSection
ProcessingRun the analysis: the Tools and Recipes that carry out a TaskProcessing environments
CommunicationDesign and present the results: maps, posters, 3D scenes, web pagesCommunication environments
ProgrammingWrite the analysis as code, or automate a GISProgramming languages
ReproducibilityMake the environment itself repeatable, so the work runs the same way on another machineReproducible environments

Some software has more than one role. JupyterGIS is both: a GIS for analysis inside a notebook, and a shared map that several people can edit at the same time.

Processing environments

General purpose GIS.

For most beginners, I recommend a general-purpose solution, whether as a native app on your computer or as a web app. For historical reasons, general-purpose solutions for working with geospatial data are called Geographic Information Systems (GIS).

Typical applications:

Notebooks and databases

Specialised tools

Field Data Collection

Often, you need to collect your own geospatial data, and a typical approach would be to use some app on a mobile device (Phone or tablet). There are options; most of them are paid solutions since they typically involve some server the device connects to. An alternative to a dedicated app is a website that enables spatial data entry.

Common applications

Communication environments

Maps and posters

Interactive Web Maps

We often need to present maps in an interactive form to a larger audience, so being able to publish maps on the internet is an important task. Like apps for data collection, these solutions are often not free since they rely on a server to host them. Some interactive map publishing possibilities double as web page editors and enable the creation of entire web pages with interactive maps and more.

3D Modelling Software

This category of software transcends into the more architectural visualisation domain. This is a rather broad group of software and covers everything from creating 3D models from photos to creating photo realistic 3d scenes.

Programming languages

Python and Geospatial Data

The programming language Python is the all-dominating programming language when it comes to processing geospatial data. be it for automating and extending general purposes GIS apps or as a stand-alone environment.

SQL and Spatial SQL are the languages of spatial databases.

Reproducible environments

When working with complex software and especially programming environments that use multiple libraries setting up reproducible environments becomes very important. They are not places where you do GIS, but the setup that makes a processing environment repeatable: Mamba for isolated Python environments and Docker for containers. Together with Snapshot packages for the data, they are part of looking after a project.