Dealing with cognitive load
I can only deal with so much before I need to go swimming, jump on a rowing machine or get on my bike. These last few months, though, have been really intense… Waking up at 3:30 am to work until late afternoon on coding problems that reveal a need to stop and learn about software engineering, not just writing code to do something.
How could I stop working? How could I get away from the my vision for WikiMapping. I needed to able to deal with a code base in little bits rather than trying to keep the big picture in mind all of the time. And I needed to be clear about what is a helping me and what is creating future technical debt.
Over the years, I focused on the needs of my users while software engineers managed code in a way that was opaque, didn’t seem to reduce technical debt, and depended on a person, not a written system. On my own, I wasn’t exempt from being the one to create new tech debt.
Coding as a practice
After writing Python scripts to do things on my laptop, I gained confidence to rebuild my website. I wasn’t ready to make changes to the live site and the old LEMP framework combined with some form of Symfony. Later I gained confidence by rebuilding the site on a couple of servers (local and virtual). But by this time I was invested in my new code.
ChatGPT, Gemini and other LLMs have taught me about javaScript and all kinds of other things related to working in the terminal. My initial goal was to deploy code, but I asked ChatGPT to focus on teaching me rather than just doing. I learned to move WikiMapping.com between servers using git. I learned to roll back updates an keep everything versioned. I got comfortable with various NGINX setups. I customized various databases for my needs, whether these were MySQL, Postgres with PostGIS, MongoDB, etc. I became more comfortable with API’s. I lot of my learning was through repeatedly asking the same question.
Now I have a sense for what solutions I can deploy both with and without AI. Continuing to learn is important. Teaching is the best way to learn. When you can teach someone, you become better at what you care about. With supporting documents, you can hand a system to someone else who. If that person adopts the system and its principles, that person will create metadata about their code, then I their learning helps the next person. The value is in the documentation.
Two years after starting to code in ernest
Tomorrow I will replace my WikiMapping Home page. I’ll get rid of the old server, from which I’ve already moved stuff. And I’ll point the site to a new ip address.
Value the contract, not the code
My days involve aspects of creation and systematization through life-cycle contracts, rules about acceptable code, reminding myself where responsibility lies within the code, and relying on document-based architecture instead of my brain. I am thinking about things I used to never think about, such as states and making sure that modals are stateless.
Process improves my cartography
Metadata is important in my cartography process. I writing plan for maps that I can follow today and in the future. This approach reminds me of being in a science lab in school, where you write out your hypothesis, procedure, results and conclusions. Maps require multiple tools and knowledge. There are so many decisions that we make today that affect the future.
Right now I am working on mapping projects that began in 2003. Design, scale, page size, data, testing, distribution, and the client and user expectations have all changed. Most of the people I work with have changed.
I love to help clients in an environment of collaboration and appreciation. I need to be able to share ideas, get input, and revise. I need people who respect curiosity, revision, practice, and imperfection as part of the process to making something great.
Making maps for specific people
When I create something, I do it for someone, not everyone. For example, I made this while sitting in a meeting. It’s a seed of an idea. And the question is, would someone care enough about the benefit to follow a step by step process to make it on their own?
Straying from cognitive debt
So what have I learned? I have a limited view of the world. Context changes. I take on cognitive debt when I try to focus on more than one thing. Obviously my goals require combining different skill sets. So the key is to separate work into documented roles with functions. This is where I want to head. It will not only help me work better. It will help me work better with others even as we all have limited views based on our past perspectives.
Cognitive debt, according to a quick search
The long-term mental cost of relying too heavily on external tools—especially large language models (LLMs) like ChatGPT—to perform cognitive tasks such as writing, problem-solving, or decision-making. Unlike short-term efficiency gains from using AI, cognitive debt accumulates when individuals forgo the mental effort required to think deeply, resulting in weaker memory retention, reduced creativity, diminished critical thinking, and a loss of ownership over one’s ideas.
It’s really about choosing what we are going to rely on and why? Now I’m ready to take a break from AI.
How will I do this?
Over the next month, I will not spend hours a day using it. Instead, I will schedule my use of AI and set priorities for each session.