← Back to all posts

Offload Complexity, Don't Offload Learning

Published: ....
Last modified: ....

Share this post on BlueskySee discussion on Bluesky

A couple of months ago I read this excellent blog post by Steph Ango (better known as Kepano on Twitter), immediately this post struck a chord for me specifically while thinking about leveraging AI as a tool.

The post talks about a parasite and it's impact on us over time. Specifically this parasite is the act of delegating understanding, there are many parasites that take on the same format though (e.g. offloading your competitive advantage as a business). Broadly speaking, technology can sometimes be this same parasite masquerading as something beneficial - and that applies to how we leverage AI.

Fundamentally I look at AI as a tool for folks to leverage to help solve their problems, in the same way that most programmers look at frameworks or libraries. However, just as you and I would spend time evaluating the [[right tool for the job]], we should also carefully evaluate how we use AI.

Specifically - we should look to offload complexity to AI, but to not offload learning.

A similar mental model that folks have probably heard of before is maintaining a moat if you are a business. The moat represents your competitive advantage, it is what a business does (or maybe explicitly doesn't do), that makes it better than their competitors. It is the 11 herbs and spices, or the secret recipe.

If a business were to offload that competitive advantage to some other provider, or to another company - they'd cease to be a competitor within the market and others would soon take over.

In the same way - if you as an individual offload opportunities you have to learn, grow, or excel in your own - you will miss the follow on opportunities for greater achievements. This is why we should look to leveraging AI as a tool to be used in some scenarios and not in others.

Since most of my audience for this blog are developers of some sort - I'll try to relate this to development concepts 🙂.

Imagine you're trying to learn game development, including the core pieces required to build a game. You probably wouldn't immediately jump to using a higher level game framework to make the game, you'd most likely want to start from the fundamentals and build up your knowledge along the way.

Similarly if you're looking to learn about web servers (think HTTP, TCP, routing, etc), you probably won't want to start with using a framework like Express or Gin and instead you'll again want to start from the basics that your programming language of choice supports.

However - if you're building a website to sell furniture for example - you'll probably won't want to dive into the basics of HTTP, TCP, and all the other concepts related to web hosting, and instead you'll reach for a framework that abstracts that complexity away from you.

In the same vein - you should look to focus on the desired outcome (your competitive advantage, or your core learning/growth opportunities), and leverage AI to solve the ancillary complexity.

While in some of these examples the decision criteria on when and where to use AI is maybe clear, it won't always be like that in practice. Sometimes it's hard to tell if a specific task or project will provide learning opportunities for you, or will be secretly hiding your competitive advantage, or if it is just filled with monotonous work that doesn't let you grow.

TL;DR
Offload Complexity, Don't Offload Learning!

Footnotes:

Tags:

Related Posts

Development

Website Redesign v10

Published: ....

I recently launched a rewrite and redesign of this personal website, I figured I'd talk a bit about the changes and new features that I added along the way!

Quick Tip - Specific Local Module Declarations

Published: ....

A quick tip outlining how to provide specific TypeScript type definitions for a local module!

You're Building Software Wrong

Published: ....

Slicing software: why vertical is better than horizontal.

Single File Web Apps

Published: ....

What if you could author an entire web application in a single file?

The AI Development Conundrum

Published: ....

Is it a good or a bad thing to offload writing code to AI agents and Large Language Models?

A Quick Look at Import Maps

Published: ....

A brief look at Import Maps and package.json#imports to support isomorphic JavaScript applications!

Recommended Tech Talks

Published: ....

A collection of tech talks that I regularly re-watch and also recommend to everyone!

Request for a (minimal) RSC Framework

Published: ....

Some features and functionality that I'd like within a React Server Component compatible framework.

Bluesky Tips and Tools

Published: ....

A (running) collection of Bluesky tips, tools, packages, and other misc things!

Building a Custom Ghostty Theme

Published: ....

How to generate a custom Ghostty theme based on any iterm2 theme!

More Thoughts on Dogfooding

Published: ....

Even more thoughts on dogfooding!

Dogfooding

Published: ....

The secret to excellent product teams is using your own product, and often!

Git Notes as a Tool for Thought

Published: ....

(Ab)using Git as yet another tool for thought!

My Current Dev Setup

Published: ....

A quick look at the applications and tools that I (generally) use day to day for web development!

There Is No Standard Markdown

Published: ....

There are a variety of different markdown "standards" out there, and sometimes they're not all that consistent

Tip: Request and Response Headers

Published: ....

There's a common gotcha when creating Web Request and Response instances with Headers!

Using Feature Toggles to De-risk Refactors

Published: ....

Feature toggles are often underused by most software development teams, and yet offer so much value during not only feature development but also refactors

Hohoro

Published: ....

A quick introduction to my new side project, hohoro. An incremental JS/TS library build tool!

Funport: True Dynamic Imports in webpack

Published: ....

webpack, and tools built on it like Next.js, don't support true dynamic imports, but I found a way to trick the system!

My Current AI Stack

Published: ....

I've been using a variety of AI tools as of late, I figured I'd document the ones I'm primarily using!

Configuring Cloudflare Domains with Vercel

Published: ....

I've started to use Cloudflare to manage my domains for several side projects, have had to jump through the same hooks multiple times that I figured I should document them here!

React Error Boundaries: Revisited

Published: ....

Revising my previous blog post on React Error Boundaries and my preferred go-to implementation!

Custom Favicon Recipes

Published: ....

Two neat tricks for enhancing your site's favicon!

Corporate Sponsored OSS

Published: ....

The various risks and pitfalls of open source software run by corporations.

The Library-Docs Monorepo Template

Published: ....

A monorepo template for managing a library and documentation together.

Building Better Beacon

Published: ....

How we solved an almost show-stopping production bug, and how you can avoid it in your own projects.

Churn Anxiety

Published: ....

When did semver major changes become so scary?

Stop Snacking

Published: ....

No I don't mean those Milano cookies you keep taking from the office snack wall either (although you should probably stop snacking on those as often as well).

Pair Programming

Published: ....

Pair programming can be good sometimes - but not all the time

Taking a Break

Published: ....

A few quick thoughts on burn out and taking a break

AI

Career