At the end of last year, I had come to a stopping point on one of my many long-running side projects. I had an opportunity to double down and spend who knows how many more months on a project that no one was going to use, or do something different. Instead of trudging on, I decided to take some time and reflect.
What made this transition different was the rise of agentic coding tools such as Cursor’s plan mode and Speckit, which can execute a plan with minimal guidance. If there is one thing I have learned about AI, it is that AI is an execution monster. It enables rapid progress, often before the understanding has had time to take root. When I looked back at the graveyard that is my GitHub, I noticed a trend. I completed projects across a wide range of domains and problem spaces. These projects ranged from an Enigma machine built to understand WASM to a text adventure creator written in Java. Was it time to pick a domain and go deep? Was I doing something that was better left to AI?
For the last month or so, I have been reflecting on my first public GitHub project, the text adventure creator. If you enjoy long-winded three-part blogs with “hints of self-deprecating humor”, as LLMs like to inform me of, you can read that here.
Lessons From a Different Time
Now I could just say my piece and move on, but where is the fun in that? In that series of blogs, I journey through my first project, a decade-long slog to deliver an unused product to no one. By all means, it felt like a massive failure. However, I uncovered something I wasn’t expecting. I had learned a great deal from this failure, and many of the lessons may sound familiar.
- Following industry standards without understanding the context is a great way to waste time.
- If you are going leverage an ecosystem, take the time to learn it.
- Building domain models by mirroring the real world isn’t engineering; it’s linguistic torture inflicted on a machine.
- Solving the core problem is more important than the number of features you built.
I could stop here and say these are the lessons I learned, and you should take them to heart. Plot twist, that isn’t the message I want to deliver. Times change. These are the lessons I learned in an era long gone. The days of being able to build software without an internet connection, or with no access to an LLM optimized for coding, or even a good answer on Stack Overflow, are long gone. It is possible that the lessons to be learned now are completely different.
Execution Is Cheap. Learning Isn’t.
Output is easy to measure. Learning isn’t. During this time, I wasn’t producing anything of value; I was honing my craft. I was hustling, spending years iterating on a single project during my nights and weekends. I didn’t have extra time; I made it. Real learning comes from hard-earned mistakes over a long period of time. AI, if used uncritically, makes it easy to skip the mistakes that real learning depends on. AI is great at getting a job done quickly, validating an idea you want to pursue is worth building, or building that application you wouldn’t build otherwise. If you want to ship faster, start with the machine. If you want to learn, start with your head and ride out the struggle.
Top comments (0)