I taught myself QGIS for spatial analysis of map data-- coming at it from a coding perspective. It has great Python integration. It's also surprisingly useful as a spreadsheet alternative for certain tasks because it supports a SQL-like interface into CSV data, so you can join CSVs with spatial data or with each other, create views and virtual fields, and so on. Overall, very impressed with the depth, breadth, and ease of use considering how powerful it is.