Comment by j4yav

13 hours ago

Being a programmer in the era of AI means not being a programmer

Being a programmer has always meant dealing with abstraction layers and climbing up the abstraction ladder.

You are simply learning a new language, whose syntax happens to look like English (or whatever language you speak), but with new, undiscovered, and constantly changing design patterns and best practices.

It depends how much you outsource to the llm.

If you outsource everything to a llm, I just don’t think you get very good results right now. Language models aren’t great at remembering all the little design decisions that are needed in medium to large projects. The code ends up riddled with semi-conflicting design choices, which have been slammed together and maintained by context inertia. For a lot of projects this is more than fine - sometimes higher quality work simply isn’t worth my time. But for a lot of projects, you will pay for that slop later.

But I think there is a useful middle ground. If you carefully review all the decisions an llm makes, I think you can often be more productive than just programming everything by hand. But it’s a very different way to do engineering. I think I learn more this way than if I program by hand - if only because I’m touching more code. My mind roves around the design space a lot more. I don’t lock in as much as when I’m programming each piece individually.

If you work with an llm like this, your engineering skill matters more than ever.

Typing the code was never the interesting part.

  • >> Typing the code was never the interesting part.

    Code is fascinating! An abstract language to compile to program a CPU. So many ways to do this!

    Now we're using natural language, which at times is extremely verbose. "[{}]" versus "array of objects", for example.

  • >Typing the code was never the interesting part.

    But solving hard problems and developing systems intuition was. If you're trying to tell me that people working on code bases predominantly written by AI are still solving hard problems themselves, or understand the systems the AI is building, I think they're lying to themselves.

    • I work on a codebase with a lot of math and I've both learned and implemented a bunch of things that were beyond my level before I could iterate on it with AI. Same for binary reverse engineering. On the other fixing tedious bugs by hand and typing the code in is not something I miss at all.

    • From what I’ve seen they get to the level of understanding of systems way faster than we did because they iterate and experiment with this from day one. We had to spend years understanding code syntax, and other minutia.

      Also, you need a different kind of toolset/skillset to grok a system that was vibe coded all the way - different failure scenarios. Older devs tend to just say “see, I told you, it’s just spaghetti underneath, you need to clean it up”, and the newer gen learns to work with that spaghetti.

    • I have a blazor app in poduction, Codex made errors which it could not fix and it required me reading documentation. I won't argue that it didn't make my life simpler, tasks which would take me days are done in hours, sometimes without touching code.

      2 replies →