programming: then and now
It’s been a long time I have used StackOverflow for coding — says almost every programmer nowadays
bootstrap
I remember when I got my first job at Microsoft back in 2016 - you join the company, have the orientation, and then you join your team and start looking at code. For the first few weeks, you’re trying to read and understand the existing code, trying to figure out what’s going on, and maybe adding some missing tests. It takes a good amount of time to read, understand, and then contribute to the codebase.
That was the pre-LLM coding era. Fast forward to today, everything has changed. We’re now in the post-LLM coding era.
You don’t really need to spend a lot of time understanding the code by yourself. You can just direct tools like Claude or Cursor to read the code, summarize the architecture, and voilà you already know how it works at a high level. You’re ready to make contributions in a matter of hours.
understanding
In the pre-LLM era, you needed to understand the code you were writing while you were writing it. But now, you actually write the code first (well, you ask your agent to write it), check the functionality, and then maybe read the code to see how it’s done.
If you’re shipping to production, you still need to understand the code. But gone are the days when you knew every single line you wrote.
If you’re just building a PoC or MVP, there’s no need to look at the code at all. Just verify the functionality, iterate until it works the way you want, and you’re done.
debugging
What if you have a bug?
In the pre-LLM era, you’d trace the code paths manually and figure out where the bug came from (and we all know logging is never complete enough to immediately show the issue). Then you’d find a fix, sometimes searching around for answers if it was language-related.
In the post-LLM era, you just chat with your agent. It finds multiple solutions, and you pick one and it even implements it for you. You don’t have to go through all the lines of code to figure it out yourself.
system design
Even in system design, these agents are your first level of interaction. Give them a vague problem to solve - say, in Claude’s code-plan mode or ChatGPT - and they’ll come up with multiple design options. You can refine and iterate until you’re satisfied. You no longer have to spend hours reading and researching before getting to a decent initial design.
Even though all these tools make the dev cycle much faster, if you’re shipping production-level code, you can’t vibe-code it all the time. Understanding the code still gives you a real advantage. In my opinion, people who understand code can use these tools far better than those who don’t.
A real-life example: I was at HackMIT a few weeks ago mentoring and judging. A hacker came to me for help debugging something. I asked him if he knew where the logs came from, and he said, “No idea this is what Cursor coded.” At that moment, I thought, if he just knew how to read a bit of code, he could’ve figured out the issue himself (or at least known what to prompt Cursor next).
The Future
Programming has become easier than ever, and I can’t imagine what comes next. Tools like WisprFlow are already making it possible to build without typing. You can just speak to your agent and get it done.
We should be excited about this. These tools let us build faster and cooler things than ever before — and the best way to use them is to embrace them while still keeping our understanding sharp.