I’m planning a Q1 study plan (two 90‑min evenings/week) and torn between a serious PostGIS/SQL push (indexes, CTEs, ST_ClusterKMeans) versus a modern web mapping refresh with TypeScript + MapLibre GL + Vite; my daily stack is Python (GeoPandas/ArcPy) with some SQL. Any courses or micro‑credentials you’d recommend that use current versions (PostGIS 3.4, Python 3.12, TS/ES2023) and focus ‑on coding rather than GUI clicks?
With “two 90‑min evenings/week,” I’d go PostGIS/SQL — when I did the same, a week of CTE patterns plus EXPLAIN (ANALYZE, BUFFERS) and GIST/BRIN indexing gave 5–10× speedups, and ST_ClusterKMeans clicked after that. For current material, Crunchy Data’s PostGIS path is solid and hands-on: Postgres Tutorials | Crunchy Data. Caveat: if you’ve got to ship a web map this quarter, spin up a MapLibre + Vite TS starter, but the compounding ROI is in SQL.
I’d pick PostGIS for Q1. Biggest wins for me were EXPLAIN (ANALYZE, BUFFERS) plus partial GiST/BRIN indexes — two 90‑min tuning sessions took a GeoPandas job from 14 min to about 90 sec on PostGIS 3.4; sanity‑check plans at https://explain.depesz.com/. @henwhit’s CTE point is solid, tiny caveat: since PG12 they aren’t always materialized, so try subqueries/window functions when the plan looks off.
I leaned PostGIS for a quarter and the boring win was turning on pg_stat_statements + auto_explain; that surfaced the real hotspots and, after replacing a tangle of subqueries with a materialized view and bumping work_mem just for that session, my ST_ClusterKMeans job dropped from about 12 min to under 2 on PG16/PostGIS 3.4. If you want a quick TS breather, MapLibre + Vite + PMTiles is painless, and the PostGIS workshop is current: Introduction to PostGIS — Introduction to PostGIS.
With “two 90‑min evenings/week,” I’d hit PostGIS now and circle back to TS after you’ve nailed query patterns. The free Crunchy Data workshop (https://learn.crunchydata.com) is current and got me quick wins with lateral joins + spatial indexes; then plug pg_tileserv into MapLibre when you do the web pass. Small caveat: if you hop to TS later, set Vite target to ES2023 and expect a little type friction with style specs on day one.