š¢ 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:
- How do you have the time to create so much content?
(Short answer: organization in Notion; long answer: š¤·š¼) - 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:
- Helped me realize I understood technical concepts better than I thought.
- Gave me solid command of JavaScript and programming languages in general.
- 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!