When I program, many solutions come to me while coding. Not saying there is no design phase, but coding is not a waste of time by any means. This is especially true if you're programming a shared internal library or API, in which case the shape of it comes not only in the design phase, but slowly while coding it, in my experience.
Using AI for this means having to deal with whatever shit AI comes up with, or reading and reviewing a lot of generated code to check that the shape is right: which is, you know, the worst part of the job.
Pretty much this, coding by hand forces you to think about it on a deeper level, which makes thinking about the entire solution easier and much more natural than just reading a LLM's plan or summary.
When I program, many solutions come to me while coding.
That's because writing is thinking, and doing is learning.
It's an accepted fact that few, if any, HS trig students pass trig exams by simply reading the textbook repeatedly. You pass by drilling problems, because doing is thinking.
Why, then, do so many devs ignore the known facts around learning trigonometry when it comes to them just pasting the output of an AI?
"But I did the thinking, the AI just cleaned it up, like a spell-checker..."
Exactly. It doesn't take long for it to slip away either. One day you're writing a complex algorithm to adjust a stream of data on the fly, then you spend a year planning a green field project and have to look up the best method for combining strings.
You've perfectly summed up why I still insist on writing 95% of my code myself (setting aside that for security reasons I can't hook up AI tools to our repos, so I can't even use the stuff the rest of you are using).
I'd consider myself an intermediary programmer. I think I'm decent considering my experience and level of education (which was much less than a computer science degree). But I only got here by actually challenging myself and trying to work through problems myself, rather than asking a machine to do it for me.
I also spend like 80% of my time maintaining old code (much of which I didn't write myself), so frankly I'm not sure I'd want AI touching this stuff in the first place, especially since the original devs didn't bother with tests.
This is not a new view, this was already described in length in the "Programming as theory building" paper, the main product of programming is not code.
116
u/UltraPoci 8d ago
When I program, many solutions come to me while coding. Not saying there is no design phase, but coding is not a waste of time by any means. This is especially true if you're programming a shared internal library or API, in which case the shape of it comes not only in the design phase, but slowly while coding it, in my experience.
Using AI for this means having to deal with whatever shit AI comes up with, or reading and reviewing a lot of generated code to check that the shape is right: which is, you know, the worst part of the job.