From Keystrokes to Conductors
From my initial days of coding, I still remember how fascinating it was to see something you write come to life. Early years as a software engineer, it was so much fun. I used to remember every line of code so vividly. Anything went wrong, I just knew which line could have caused the issue. The same way humans recall a moment tied to a strong emotion. Ultra-sharp focus like that is rare to retain. I used to plug in and get lost in things so deeply that taking breaks felt wrong. I never got up from my seat until I had closure on a bug or a feature.
Same goes for when I used to set up infrastructure. I'd build and change infra like Lego pieces, jumping in with just the bare bones. Because why not? It was fun :). Always, always try to have fun while you're learning things.
Fundamentals never go away
I was always particular about getting a mental picture of how things work. We generally call it "fundamentals", though the word means different things to different people. Like Elon Musk says: break it down to absolute basics, then build your understanding from there. When you structure it the way you understand it, you just keep extending the branches in your head. If you're lucky enough to learn from good teachers, nothing like it, because you become your own master. Self-learning isn't bad either. You build the model your way, and when you go back to reference books later, everything suddenly clicks. Imagine you learned to code on your own. Just for fun, open your old college textbook and try implementing something from it. You'll find it surprisingly easy.
Fundamentals like OS, code, networking, and servers never go away. Learn the concepts well. If you're dealing with networking, understand what TCP and the HTTP layer actually do. As you grow, don't stop at the surface. Ask why TCP or HTTP exists in the first place. If it doesn't land now, bookmark it and come back in a few years. Even today, when I watch The Matrix, I catch something new. Why didn't I see it before? Because the first time, I was just taking in the action and the sheer creation of the film. Revisit your fundamentals now and then to see if you're ready to go one level deeper.
Zooming out
When you start as a software engineer you focus on how each line of code works. As you grow, you focus on how different classes and modules work together, then the whole system, then the servers. You keep zooming out further and further. The important thing: as you zoom out, don't lose the mental model of what you already know.
Writing less code is natural
As you grow, you'll write less and less code. That's true even for Linus Torvalds, but he focuses on the things that matter. It's a natural process of evolution. Unfortunately, our minds don't like when things stop feeling familiar. Like the era we're in right now.
Trust me, it wasn't easy for me either. I've stayed on the beta versions of Android and iOS for a very long time. I like being on the edge. But adapting was still tough. I recently realized why: there's a subliminal belief, for those of us who code, that we control things because we know how they work. That was an advantage, up to a point. But come on, we're engineers. If someone like us built something that can generate code, instead of holding ourselves back, we should slowly embrace the change.
I always tell myself: if you're not learning something new every day, you'll soon become irrelevant. Honestly, keeping up has gotten harder. There are so many innovations every single day, repos going from 0 to 100k stars overnight. Don't try to keep up with everything. But at least be familiar with the terms so you can look them up later. Everything, after all, is built from a piece of code.
AI is not as scary as it sounds
AI sounds scary if you don't understand it. Find your own simplistic way to think about it: at its core, it's a word-generating machine that uses complex matrix multiplication to find the next relevant token, powered by neural networks. It's like the entire internet compressed under your fingertips. Don't worry if you can't relate to it yet. That's fine.
Earlier models made a lot of mistakes generating code. That's no longer the case. Find the AI tool you're comfortable with: Claude Code, Codex, Cursor, or model-agnostic ones like OpenCode. They're called harnesses these days. AI companies love coining terms like harness, loop, graph. Strip the jargon and a harness is just a way to channel AI to its true potential. Based on your needs, you'll land on one. Don't FOMO about it.
Prompt, prompt, and prompt
Once you find your harness, change your mindset: do everything through your LLM. Don't waste time Googling things. Connect everything to your model, understand what you need to build, and prompt away. Get everything under your fingertips. As you use one model enough, you'll notice its flaws. Start fine-tuning your instructions. For example, if it keeps skipping tests, add a rule in its memory to write tests first. Over time you'll build your own set of rules that shape its behaviour.
The trick with LLMs is to dump your thinking as much as you can. Slowly you'll learn to articulate better. If you want to go deep, Google's prompt engineering course is worth the time. And since LLMs are evolving rapidly, talk to your peers, you'll pick things up faster.
Over time you'll form opinions on each model. I started with Claude, which was great at code generation and still is. Learn the difference between frontier/flagship models and everything else: like iPhone Pro Max vs. a regular iPhone. It doesn't make sense to run the most powerful model for every task. Also be aware of thinking settings: low, medium, high, max. Depending on the setting, the LLM takes more or less time to find the best next token. Skip that, and it'll behave like a human answering without thinking.
You'll become the conductor
If you've made it this far, soon you'll figure out what an agent is. Then you'll have multiple agents doing jobs for you. You'll shift from being the programmer to being the conductor of an orchestra :)
Remember, human minds are crazy fast at thinking. If things can happen at the speed of thought, that's humanity's north star. There are already people who've set up their entire workflow to talk to LLMs directly, not even type. Learn to embrace that direction. Don't be left behind.
Phew. That's how I ended up on the other side. Just start.