GIS applications are powerful software programs that provide a graphic user interface for you to create maps using spatial data.
While less comprehensive than GIS applications, web mapping tools are good for small-scale work, such as individual assignments and projects; work across computers and operating systems; and produce maps that are web-presentation ready, so that they can easily be made publicly available and distributed widely.
The command line can be used to manipulate spatial data, such as reprojecting data, based on a different coordinate system, or converting your data from one format to another.
Programming languages can be considered the most advanced and most powerful tools that you have to create maps. They allow you a greater level of flexibility and granularity, which helps you to create customized visualizations for your work. R, Python, and JavaScript are all languages that you can use to make maps. There are also specific libraries for spatial visualization:
Geocoding converts the description of an address into geographic coordinates. There are many services that will help you to geocode your data, some individually, some in bulk using APIs. You can run a Google search to find free tools that will help to geocode your data, although keep in mind that some tools will limit you as to the number of requests you can make. GIS software, such as ArcGIS or QGIS, can also help you geocode your data.
Georectification is the process of matching points between a historical map and a contemporary map and then "warping" the historical map to line it up with the contemporary map. This is used when overlaying a historical map over a contemporary map. You can georectify maps using GIS applications, or:
Named Entity Extraction is the process of computationally identifying names of places (and other entities) in bodies of text. By identifying the names and then geocoding them, these place names can be mapped.