For example, if you take the time to really learn to use Claude code properly - the way to use it is to spend hours or even days in a chat thread with an open word document creating a detailed markdown file in verbose English which serves as the instruction set for CC. Hours or days just bouncing ideas around to come up with a feature branch in plain English, not writing any code. Then when you are satisfied with the instruction set you actually set the agent to task.
The people producing spaghetti code don’t understand that the stochastic parrot will do EXACTLY what you tell it to do, but will fill in any blanks or holes in the instructions with the mathematically most probable next token. If you leave no holes in your instructions, you get what what you want. So you have to be verbose, specific, and detailed.
Obviously, you have to learn programming to a certain level in order to know what you want in your code, but it definitely changes the game entirely when you can architect a solid new feature branch in natural language instead of tedious painstaking manual code writing.
So what you're saying is, to use these tools effectively, you need a firm grasp of data structures, algorithms, user interfaces, security, and project management, as well as a nuanced feel for the precise language used to communicate your vision to the IDE, er, I mean Claude.
...
Is that not what writing a program in a traditional language is?
🙂
Programming (competently) is 80% planning - designing and specifying what does when and where and how - and about 5% typing code, and about 15% testing and verification of function.
(to conjure some numbers out of thin air)
So why do all the hard work and then rely on one of these AI tools to save the 5% effort of clicking the keyboard a bit?
When you write code you know how it works and what third party libraries it depends upon (and you know why you chose them), and the only hallucinations and assumptions and fantasies you need to worry about are your own. You build it and document it in a manner that another person can come along and read it, understand it, and maintain it.
I'm not totally ****ting on AI in this field. There are great use cases for it as a tool to assist someone who's competent. A good example would be automated tools to examine code for memory leaks, buffer overruns, and that sort of thing. But for actually conjuring the project out of thin air, call me a dinosaur if you will, but **** that, it'll all end in tears, and forgive me but the naive people and corporations buying into this are 100% going to deserve exactly what they get.
Whew
I suppose none of this matters for trivial tasks or hobby projects. And there's certainly no shortage of badly written programs out there that work, mostly, well enough, that maybe AI could've done as well (or as poorly). I'm probably overreacting and maybe time will prove me wrong.