Is using AI to speed up development at the cost of learning worth it? This is the question I have to ask myself as I work on projects.
A New Landscape
For context, in the summer of 2024 I left my job as Software Engineer to embark on a year of travel. I was aware of the tradeoffs I was making in my career and made the decision that it was worth it for me to take a break. Today, over a year later, I’m certain I made the correct choice. My passion for programming re-ignited, I feel as though I’m ready to take on the world.
As I dive back in, it’s clear that things have changed, and it’s important that I adapt to my new situation. LLMs are even more powerful than when I left and their place in the field has only increased. As I come back into the world of software, I’ve tasked myself with becoming a better developer. With my goals set high it’s important I cultivate a balance between creating things quickly and moving slowly to learn.
Starting Over
A few months ago when I started programming again I was rusty… Incredibly rusty. I started out creating a React/Express CRUD app, something that I had experience with in the past. Initially the pace was incredibly slow as I painstakingly re-learned typescript syntax and wrestled with configuration and other technical decisions. Looking to speed up progress, I started experimenting with Co-Pilot… I gave it a simple UI to replicate which it did with some level of accuracy. And just like that, my UI was built. I didn’t have to deal with writing JSX or calling my API. It was amazing. But at the same time I was missing out on something important, learning.
The Learning Loop
It’s pretty obvious that using AI to build your whole UI would reduce learning. But another thing I was missing out on was the positive reinforcement loop that learning gives you. When learning normally it goes like this
Work on something -> struggle -> accomplish/learn -> good feelings -> motivation to work on something else.
But when using AI, your learning loop looks like this:
Work on something -> something gets built by the llm(learn very little) -> work on something else.
In the second loop you still get work done, but the learning and accomplishment are missing, and as a consequence part of the good feelings are missing as well.
That brings me to today. As I work on personal projects, I’m more deliberate in how I use AI. My primary goal is to LEARN, not to get something out as quickly as possible. To acomplish this I:
- Avoid AI IDE tools
- Read documentation before asking AI
- Ask AI not to give me the direct answer/code.
AI vs Learning
It’s an interesting conundrum: using AI vs. learning. Without AI, the act of working is also the act of learning. With AI, learning is lessened. That’s why I’ve been careful about how I use AI. AI is an incredibly powerful tool and I’m not opposed to using it, but at the moment, it doesn’t align with my goals.
I want to be clear, I am not anti AI, nor do I think it will fail. In fact I quite the opposite.