Comment by neilv
6 days ago
> Knowing fundamentals is always useful, but learning to collaborate with an AI is probably the more important long-term skill.
How difficult a skill is "collaborate with an AI" that it can't be picked up quickly at any time (and will be changing rapidly)?
And how permanently stunted is a person who always "collaborated" and never had to think.
> I’ve been focusing on fundamentals like logic, structure, and problem-solving.
These are good. And exploration, and having fun.
> CS fundamentals
You can gently drop CS-ish ideas, or more sophisticated programming ideas, as the kid is ready. For example, they're blocked on something they're building, and can't go any further, because they're trying to do everything as code with not enough data. So you show them what could be data, and what language feature enables that, and suddenly their code looks a little more sophisticated, and a lot less repetitive.
If they keep going, eventually they will want to frontload learn all the CS things. Not for Leetcode interviews, nor for whatever job-gatekeeping atrocity is made up next for people who also have to interview-prep to fake "passion".
> And how permanently stunted is a person who always "collaborated" and never had to think.
How permanently stunted are today's programmers which have always collaborated with a compiler or interpreter, and never once written or even looked at assembly?
That's levels of abstraction, but still thinking.
Just last night, while looking for clear technical information about MCP integration options for Gemini, I found this Google-written article[1], that -- with a positive, hype-compliant spin -- opens with:
> Have you ever had something on the tip of your tongue, but you weren’t exactly sure how to describe what’s in your mind?
> For developers, this is where "vibe coding " comes in. Vibe coding helps developers achieve their vision with models like Gemini 2.5 Pro to generate code from natural language prompts. Instead of writing every line of code, developers can now describe the desired functionality in plain language. AI translates these "vibes" into your vision.
That's not thinking.
We've even appropriated "vibe" terminology, which means something like emotional gut feel, without having to think about it. (Mostly associated with wake-and-bake stoners, who've self-imposed two-digit IQs and munchies, and who will sometimes speak in terms of "vibes", for lack of further analytic capacity.)
Recognizing that the top killer app for "AI" right now is cheating on homework, the collaborate-with-AI 'skill' is like the well-known collaborate-with-lab-partner. The lab partner who does all the work, while the slacking student learns nothing, and therefore the slacker fails the exam. (But, near-term, the slacker might scrape by with a C- for the class, due to copying the lab portion, and due to an instructor who now just wants to be rid of the hopeless student.)
[1] https://cloud.google.com/blog/products/ai-machine-learning/b...
You call compilers "levels of abstraction but still thinking", I call LLMs yet another level of abstraction.
This isn't really some new concept, the only thing new is that it's being applied to areas that haven't historically had a ton of automation.
Hand-wringing about LLMs and "not thinking" is the same thing that was hand-wrung about students using calculators and not knowing how to do long division. Or using a computer lookup and not knowing how to use the dewey decimal system. Heck, or using an automobile/bicycle and not knowing how to shoe a horse.
People over the last decade have demonstrated they are perfectly capable of generating large quantities of crappy, not-thought-out code all on their own. Just look around you. LLMs democratize the lowest common denominator, and those that are doing sufficiently difficult, nuanced, unique things that they actually need to know what they're doing, will continue to do so.
I don't think LLMs will reduce the abilities of the 10% best software engineers, and I don't think the quality of output of the rest will meaningfully change.
3 replies →
Considering the ridiculous amount of memory and cpu very simple apps use nowadays, in large part thanks to things that enable developers to optimise for their own time, rather than compute, I think you’ve unintentionally hit the nail on the head.
Very few developers today care about resource usage and resource management. Very few developers even understand that there’s something there to care about.
It wasn't unintentional. Like I pointed out in a sibling comment, I agree that plenty of present day programmers are not amazing.
Things like compilers and LLMs decrease the necessary skill to become a programmer, but neither will decrease the skill or quantities of the most skilled programmers.
> How permanently stunted are today's programmers which have always collaborated with a compiler or interpreter, and never once written or even looked at assembly?
Not fatally, but the answer to that is not zero
That's tricky.
Did people who would become programmers become worse programmers?
Or did programming just become more accessible, drawing more mediocre talent and dragging down the average skill level?