A New AI Worry: Many Young Coders No Longer Know How Their Code Works
inc.com
inc.com
It seems that lowering friction will always lower understanding, because industrious people will always try to get the most done, and inexperienced people will conflate getting the most done now with getting the most done in general.
But I think all that does is point to the fact that the average programmer's knowledge about computers and programming becomes poorer and poorer as time goes by. We are continuously pessimising for knowledge and skills.
Over that time I grew as a programmer as the work became more difficult. I couldn't keep up with the technology. In spite of my attempts to keep up, it seemed that every few years I had to further limit the scope of my work in order to cope. Judging by my experience, today competent programmers will fall further and further behind with what they know becoming more obsolete while they restrict their scope so they can learn the new work on the job. Young programmers won't need to know much of what today's competent programmers know. At the same time the increasing complexity of their assignments will require them to go deeper into new matters, and they in turn will become overwhelmed. And so on it will go.
On the other hand, perhaps I don't know what I'm talking about. : )
I don’t fault a C developer for not knowing and appreciating the intricacies of a superscalar pipelined processor using out of order execution.
But when a C developer writes a multithreaded program they need to really understand why multiple threads are necessary, proper use of locking, and how it will impact the overall application. They need to look beyond their tiny bit of code and the assigned task.
Unfortunately a number of developers fully expect to drive on a busy street blindfolded and successfully reach their destination.
Not really, just add the "volatile" keyword to global variables at random until the bugs go away!
Interesting point. I for one started out with punched cards, and your point is valid: you had to think deeply when preparing your next program submission, because turnaround was slo-o-ow and often kept you in the computing center waiting, waiting, waiting.
So one might argue that when we got terminals that submitted "virtual punch cards" and got back "virtual printouts" (this is late 70s), it debased the practice of programming. /s
OTOH in this day and age, the quick compile times of Go are - to put it bluntly - absolutely wonderful.
Fortunately, I’ve had the privilege to be on teams where such were relatively few.
Your father was certainly right.
I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_.
Full email at https://lkml.org/lkml/2000/9/6/65
When I first started hacking I had the expectation that every chunk of code I came across was broken in some way.
All of the software I relied upon was broken in some visible way. My Windows 95 installation would have multiple kernel panics per day. My Usenet reader would fail catastrophically when encountering non-ASCII text. My CD-ROM copies of games would freeze until I kicked the side of the computer which consistently worked.
I still see bugs everywhere nowadays, but they're more hidden and, honestly more frustrating since they're so opaque.
Remember when "running a business" meant "making a good product and making some money in the process"? Yeah, me neither.
Where I work there is now a retention policy for all Microsoft products, including OneNote.
Yep, if you managed to fight through the interface you are now greeted with an application that will lose your long term notes.
A concerted PR operation from OAI and Microsoft pushing the belief that LLMs can 'reason' and thus be trusted with things beyond formulaic high school and college papers.
Please try to understand the comment you're replying to instead of going with a knee-jerk reaction.
For now and for producing code, I still consider AI as a newbie that works very fast but with errors, whom code must be tested and reviewed by a human before getting "merged" in any codebase.
The only other help I expect from AI is as you mentioned "a super-rubber-duck", but nothing more.
Only if they're young or famous. Otherwise, they're automatically kicked to the curb because the common thinking these days is that anyone with even a single gray hair is "out of touch with technology" even if they've wasted their entire lives staying on the "bleeding edge". Apparently only the young understand technology, and the people who built and maintained it all their lives are just "clueless old farts" like the morons we've got in Congress passing laws about technology.
A 'new' transportation worry: many car drivers don't know where to turn or even where they are heading without GPS.
When I store a record in the database, I have no idea what Postgres does to do that, it just happens.
It's going to be fun when LLM agents do all the communication for us.
If many "young coders" don't know how their code work but can solve more problems faster, is it really a problem?