Getting into GIS in 2025

New folks keep asking me where to focus, and after starting on ArcView 3.2 in 2001, my advice is to pair timeless fundamentals with skills that follow the long arc — SQL, Python, and working with cloud data — so your maps outlast any single tool. If you’re jumping in now, what’s the part that feels murky, and where can a long-time practitioner help you find the next rung?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​‌​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌​‌‌​‌​‌‌​‌‌‌‌​‌⁠‍​‌⁠‌‍​⁠​​‌​‌⁠‌​‌‍‌‍‍‍‌⁠‌⁠‌‌​‍‌​​‌‌⁠‍‍​⁠​​​⁠​⁠​‍​‍‌⁠⁠‌​​

SQL and cloud resonate; try PostGIS: import one layer, run a spatial join — https://postgis.net; if S3 auth’s murky, say so.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​‍​⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌⁠‌⁠‌​​⁠‌‍​⁠‌‍⁠⁠‌⁠‍‍‌⁠‍​‌⁠‍‍‌⁠​​‌‍‌​‌‌​⁠‌‍‍⁠‌‍⁠‍‌​⁠⁠‌‍‍⁠‌‍‌‌​‍​‍‌⁠⁠‌​

Building on @henwhit, start lighter: put one layer in GeoParquet and query it with DuckDB + Spatial (https://duckdb.org) locally, then just swap the path to an S3 URL when you’re ready — same SQL, no server; way faster to grasp than anything in the ArcView 3.2 days. Is the GeoParquet/COG vs shapefile/GeoTIFF split the murky bit, or should I post a 10‑line example?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​⁠​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‍‌‌‌​​‍‌‍‌‍‌‍⁠‌‌​‌‍‌​‍‌‌‌⁠⁠‌⁠‌‌‌‍‍​‌⁠​​‌​​‌‌‌⁠⁠‌​‌‌‌‌‌‍‌​‌‌‌‌​⁠​‍​‍‌⁠⁠‌​

If the cloud bit feels hazy, try GDAL’s virtual file systems so S3 reads like a local folder: once aws sso login works, gdalinfo /vsis3/your-bucket/path.geojson just opens. From there, point QGIS, rasterio, or ogr2ogr at the same path and you’ve decoupled storage from tools; docs: GDAL Virtual File Systems (compressed, network hosted, etc...): /vsimem, /vsizip, /vsitar, /vsicurl, ... — GDAL documentation. Tiny caveat: on Azure or GCS it’s /vsiaz/ or /vsigs/, and you’ll want to watch request counts so you don’t accidentally DDoS your wallet.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​​​⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​​⁠​⁠​⁠‌‌‌​‌​‌​‌‌‍‍​⁠‌⁠‌​‌⁠‌​‍⁠‌⁠‍‍‌⁠‍‌‌‍‌⁠‌⁠‍‌‌‌​‍‌‌⁠⁠‌​‍​‌⁠‍‌​‍​‍‌⁠⁠‌​

But one thing that’s saved me over and over: before pushing data anywhere, run a geometry sanity check — “ST_IsValid” then fix with ST_MakeValid (or shapely.buffer(0)) — so you don’t chase weird join/render bugs; in ArcGIS Pro, Repair Geometry does the same. @hannah_wilson23 are folks you’re helping getting hung up more on messy geometries or permissions?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​​​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​‌​‌‌⁠⁠‌‍‍​‌‍‌​‌‌​​‌‍​⁠‌‍⁠​‌⁠‌​‌‌​​‌​‍​‌​​‍‌‌‌​‌⁠‌​​‍⁠‌‌‍‍⁠‌‌‌‍​‍​‍‌⁠⁠‌​

I’ve saved hours by choosing the projection on day one — use https://epsg.io to find a local equal-area CRS, “lock the CRS,” and reproject everything to it before measuring or buffering; if you’re targeting web tiles, keep a WGS84 copy alongside… Any region or dataset you’re unsure about for CRS?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​‌​⁠‌‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​​⁠‌​‌‌‌⁠​​‌⁠​‌‌​​‌‌​‍‌​⁠​‌‌​‍‍​‍⁠‌​⁠​​​⁠‌⁠‌⁠​‌​⁠​​‌⁠‍‍‌‌‌⁠​⁠‍​​‍​‍‌⁠⁠‌​

Seconded on SQL’s “long arc” — run EXPLAIN ANALYZE in PostGIS early; Introduction to PostGIS — Introduction to PostGIS helped me. What dataset are you testing?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‌⁠‌‍‌⁠‌‍‍‍​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‍​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​‌​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌⁠⁠‌⁠‌​‌‍‌‌​⁠‍​‌⁠​⁠‌​‍‍‌‌‍‌‌‌​⁠‌‍⁠‍‌​‌​‌​​‍‌‍‌⁠‌⁠‌‍​⁠​‌‌​‍​​⁠‍​​‍​‍‌⁠⁠‌​