Uncategorized

šŸ˜¢ The hard truth about learning GIS and programming (and how I did it)

Here are the two questions I get asked most often by people online or at events:

  1. How do you have the time to create so much content?
    (Short answer: organization in Notion; long answer: šŸ¤·šŸ¼)
  2. How did you learn all these different tools?

Hereā€™s the unfiltered and direct answer to the second question: it took almost a decade, and Iā€™m still learning.

Today, I want to give you a transparent look into my journeyā€”from my first attempts at learning to program to the things that made a real difference. Letā€™s be clear: this wasnā€™t a linear path. There were many twists, turns, and years of struggling to feel comfortable with programming languages and analytics.

What Iā€™m Not:

Iā€™m not a:

  • Machine learning engineer or specialist (whether working with data, models, or earth observation data)
  • Software engineer
  • Database or infrastructure specialist

What I Am:

Someone who has learned to use a wide range of tools to perform spatial analytics and work with spatial data. Iā€™ve also reached a point where I can confidently dive into new tools with relative ease.

Letā€™s peel back the curtain so you can see how I got here.


The First Language I Learned Wasā€¦

ActionScript.

My first programming exposure came during an interactive mapping course in 2010. If youā€™ve never heard of ActionScript, I wouldnā€™t blame you. Its last release was in 2007, and it was primarily used in Adobe Flash, which is now discontinued. The closest comparison today is JavaScript, which became the first practical language I learned.

For years, my JavaScript ā€œusageā€ was limited to adapting online tutorials to work with my data. This included:

  • Changing map center coordinates, basemaps, or file paths
  • Modifying pop-ups or data layers

But I was lost when it came to functions or integrating libraries. I could see what I wanted to do but couldnā€™t execute it myself. Eventually, I decided to learn JavaScript properly, not just piece by piece, but in a way that allowed me to build independently.

The Turning Point: A Course That Changed Everything

A colleague recommended the course ā€œJavaScript: Understanding the Weird Parts.ā€ This course did three crucial things:

  1. Helped me realize I understood technical concepts better than I thought.
  2. Gave me solid command of JavaScript and programming languages in general.
  3. Built a foundation for quickly grasping new technical concepts.

Eventually, I took another course on React, which significantly advanced my understanding of the framework.


Practice: The Key to Mastery

None of this mattered without practice. I made it a point to use my skills at every opportunityā€”both at work and in personal projects. This intense focus helped me develop a deeper understanding.

Did I fail? Absolutely. Many times. One memorable example involved a seemingly simple task: creating a dropdown menu from a JSON object. What shouldā€™ve been straightforward consumed 1.5 days of failed attempts, endless Google searches, and frustration.

But every failure taught me something, and over time, it got easier. I was also fortunate to have colleagues who patiently answered my (many) questions. The sheer repetition and focus were critical for learning.


What Tied It All Together

Eventually, I realized programming languages serve one main purpose: processing data. Whether itā€™s transforming a string, managing API interactions, or handling complex spatial data, the ultimate goal is manipulating data effectively.

At CARTO, I worked on projects requiring custom front-end applications. This introduced me to PostGIS for backend operations and SQL for querying data, which was pivotal in tying everything together.

Initially, I used SQL simply to retrieve data:

javascriptCopy codeSELECT * FROM table WHERE city = 'Minneapolis'

But why stop there? I began incorporating filters from user interactions (e.g., buttons, sliders, or text inputs) and writing more complex SQL queries. Over time, I started:

  • Structuring data responses into JSON
  • Performing spatial operations directly in SQL
  • Creating reusable components for complex SQL queries

This hands-on experience with SQL, combined with JavaScript, deepened my understanding of spatial analytics and modern geospatial technology.


The Reality of Learning

Hereā€™s a summary of what it took:

  • 4 online courses (2 on JavaScript, 2 on Python/Data Science)
  • 529 saved articles on Medium
  • 2+ days stuck on JSON-related roadblocks
  • 7 years to feel confident in my technical skills

The Gap in Geospatial Learning

While courses accelerated my learning, none were focused on geospatial. Many existing geospatial courses lack explanations of core concepts, which I found frustrating.

This gap inspired me to launch my new site for online courses dedicated to modern GIS. The first course, ā€œFundamentals of Modern GIS,ā€ is available now, and Iā€™m finishing the second course, ā€œEssential Tools for Modern GIS.ā€

As a newsletter subscriber, you can get either or both courses for 50% off through Black Friday and Cyber Monday (Monday, December 2nd). After that, the discount disappears!