Learning the basics of AI
This might be one of those posts that makes me seem like an old man. We’ll see. 😂
For much of the last year, I’ve been thinking about how to most effectively build things using AI, and I’ve documented a bunch of those thoughts here. It turns out to be both hard and easy: easy to get something to happen, since the world of LLMs is really capable in some ways and moving fast. But hard to build satisfying, high-leverage experiences.
We are clearly still missing some basic reflexes and best practices. Memory and agency are on everyone’s mind now, and have been for a while, and yet, we still don’t have great consensus on what the right approaches are. Some companies are starting to deploy larger solutions in successful ways, and are beginning to confront issues like regression testing, cost optimization, and so on. Much of this is still happening by hand or experimentally in individual teams.
In a conversation this week, this reminded me a bit of the very early days of GUIs. I remember distinctly the process of learning, along with much of the industry, about basic capabilities that we so much take for granted that to mention them now does make me seem weirdly out of touch. Things like what a clipboard is, and how you interact with it, or how windowing works and the role of graphics masks, or even just the basic idea of a graphics library and the primitives it implemented (which evolved significantly over time as the hardware supported more and more sophisticated modes).
For a while, many of these things were issues you had to confront as a developer - you had choices, and you also had to implement much of the solution. Gradually, the approaches that work became clearer and were integrated into systems and libraries. Now, to mention some of these things seems painfully out of touch - they just work.
That process took many years for the desktop and then mobile and then internet worlds. It’s not clear how long it will take for the AI world, but it’s clear that it’s beginning. We will need to have something that feels like an OS for AI, that can identify and implement common patterns - some form of memory that enables agentic behavior perhaps, fundamental models for protecting and segregating user data, regression testing, behavioral monitoring, optimization and model selection, fine tuning…I don’t think we even fully understand what the problems are yet, much less the patterns and primitives.
In the desktop, internet, and mobile worlds, this progressed largely because of a desire to build more capable solutions. That’s likely the energy here as well, and having that discontent and ambition is probably the single thing we can each do to help push the field forward. Look for the problems that are in the way of building better and more valuable things. Think in terms of platforms and general patterns and build repeatable solutions where you can. Be ready to discard them when more information is revealed, or new capabilities appear.
As a young programmer, being able to draw pixels on the screen was magical, but limited, until we as an industry started to understand and build out these more common patterns and practices. I suspect the same needs to happen with AI.