219 points
*

https://nmn.gl/blog/ai-illiterate-programmers

Relevant quote

Every time we let AI solve a problem we could’ve solved ourselves, we’re trading long-term understanding for short-term productivity. We’re optimizing for today’s commit at the cost of tomorrow’s ability.

permalink
report
reply
42 points

Hey that sounds exactly like what the last company I worked at did for every single project 🙃

permalink
report
parent
reply
35 points
*

I like the sentiment of the article; however this quote really rubs me the wrong way:

I’m not suggesting we abandon AI tools—that ship has sailed.

Why would that ship have sailed? No one is forcing you to use an LLM. If, as the article supposes, using an LLM is detrimental, and it’s possible to start having days where you don’t use an LLM, then what’s stopping you from increasing the frequency of those days until you’re not using an LLM at all?

I personally don’t interact with any LLMs, neither at work or at home, and I don’t have any issue getting work done. Yeah there was a decently long ramp-up period — maybe about 6 months — when I started on ny current project at work where it was more learning than doing; but now I feel like I know the codebase well enough to approach any problem I come up against. I’ve even debugged USB driver stuff, and, while it took a lot of research and reading USB specs, I was able to figure it out without any input from an LLM.

Maybe it’s just because I’ve never bought into the hype; I just don’t see how people have such a high respect for LLMs. I’m of the opinion that using an LLM has potential only as a truly last resort — and even then will likely not be useful.

permalink
report
parent
reply
6 points

Why would that ship have sailed?

Because the tools are here and not going anyway

then what’s stopping you from increasing the frequency of those days until you’re not using an LLM at all?

The actually useful shit LLMs can do. Their point is that using only majorly an LLM hurts you, this does not make it an invalid tool in moderation

You seem to think of an LLM only as something you can ask questions to, this is one of their worst capabilities and far from the only thing they do

permalink
report
parent
reply
8 points

Because the tools are here and not going anyway

Swiss army knives have had awls for ages. I’ve never used one. The fact that the tool exists doesn’t mean that anybody has to use it.

The actually useful shit LLMs can do

Which is?

permalink
report
parent
reply
2 points

Because the tools are here and not going anyway

I agree with this on a global scale; I was thinking about on a personal scale. In the context of the entire world, I do think the tools will be around for a long time before they ever fall out of use.

The actually useful shit LLMs can do.

I’ll be the first to admit I don’t know many use cases of LLMs. I don’t use them, so I haven’t explored what they can do. As my experience is simply my own, I’m certain there are uses of LLMs that I hadn’t considered. I’m personally of the opinion that I won’t gain anything out of LLMs that I can’t get elsewhere; however, if a tool helps you more than any other method, then that tool could absolutely be useful.

permalink
report
parent
reply
12 points

This guy’s solution to becoming crappier over time is “I’ll drink every day, but abstain one day a week”.

I’m not convinced that “that ship has sailed” as he puts it.

permalink
report
parent
reply
10 points

Not even. Every time someone lets AI run wild on a problem, they’re trading all trust I ever had in them for complete garbage that they’re not even personally invested enough in to defend it when I criticize their absolute shit code. Don’t submit it for review if you haven’t reviewed it yourself, Darren.

permalink
report
parent
reply
3 points

My company doesn’t even allow AI use, and the amount of times I’ve tried to help a junior diagnose an issue with a simple script they made, only to be told that they don’t actually know what their code does to even begin troubleshooting…

“Why do you have this line here? Isn’t that redundant?”

“Well it was in the example I found.”

“Ok, what does the example do? What is this line for?”

Crickets.

I’m not trying to call them out, I’m just hoping that I won’t need to familiarize myself with their whole project and every fucking line in their script to help them, because at that point it’d be easier to just write it myself than try to guide them.

permalink
report
parent
reply
7 points

Capitalism is inherently short-sighted.

permalink
report
parent
reply
3 points

“Every time we use a lever to lift a stone, we’re trading long term strength for short term productivity. We’re optimizing for today’s pyramid at the cost of tomorrow’s ability.”

permalink
report
parent
reply
12 points

If you don’t understand how a lever works, then it’s a problem. Should we let any person with an AI design and operate a nuclear power plant?

permalink
report
parent
reply
11 points

Precisely. If you train by lifting stones you can still use the lever later, but you’ll be able to lift even heavier things by using both your new strength AND the leaver’s mechanical advantage.

By analogy, if you’re using LLMs to do the easy bits in order to spend more time with harder problems fuckin a. But the idea you can just replace actual coding work with copy paste is a shitty one. Again by analogy with rock lifting: now you have noodle arms and can’t lift shit if your lever breaks or doesn’t fit under a particular rock or whatever.

permalink
report
parent
reply
4 points

Also: assuming you know what the easy bits are before you actually have experience doing them is a recipe to end up training incorrectly.

I use plenty of tools to assist my programming work. But I learn what I’m doing and why first. Then once I have that experience if there’s a piece of code I find myself having to use frequently or having to look up frequently, I make myself a template (vscode’s snippet features are fucking amazing when you build your own snips well, btw).

permalink
report
parent
reply
5 points

“If my grandma had wheels she would be a bicycle. We are optimizing today’s grandmas at the sacrifice of tomorrow’s eco friendly transportation.”

permalink
report
parent
reply
0 points

🤣

permalink
report
parent
reply
3 points

Actually… Yes? People’s health did deteriorate due to over-reliance on technology over the generations. At least, the health of those who have access to that technology.

permalink
report
parent
reply
1 point

LLMs are absolutely not able to create wonders on par with the pyramids. They’re at best as capable as a junior engineer who has read all of Stack Overflow but doesn’t really understand any of it.

permalink
report
parent
reply
2 points

And also possibly checking in code with subtle logic flaws that won’t be discovered until it’s too late.

permalink
report
parent
reply
2 points

Nahhh, I never would have solved that problem myself, I’d have just googled the shit out of it til I found someone else that had solved it themselves

permalink
report
parent
reply
111 points

Yeah fake. No way you can get 90%+ using chatGPT without understanding code. LLMs barf out so much nonsense when it comes to code. You have to correct it frequently to make it spit out working code.

permalink
report
reply
13 points

If we’re talking about freshman CS 101, where every assignment is the same year-over-year and it’s all machine graded, yes, 90% is definitely possible because an LLM can essentially act as a database of all problems and all solutions. A grad student TA can probably see through his “explanations”, but they’re probably tired from their endless stack of work, so why bother?

If we’re talking about a 400 level CS class, this kid’s screwed and even someone who’s mastered the fundamentals will struggle through advanced algorithms and reconciling math ideas with hands-on-keyboard software.

permalink
report
parent
reply
9 points
  1. Ask ChatGPT for a solution.
  2. Try to run the solution. It doesn’t work.
  3. Post the solution online as something you wrote all on your own, and ask people what’s wrong with it.
  4. Copy-paste the fixed-by-actual-human solution from the replies.
permalink
report
parent
reply
6 points

Are you guys just generating insanely difficult code? I feel like 90% of all my code generation with o1 works first time? And if it doesn’t, I just let GPT know and it fixes it right then and there?

permalink
report
parent
reply
10 points

the problem is more complex than initially thought, for a few reasons.

One, the user is not very good at prompting, and will often fight with the prompt to get what they want.

Two, often times the user has a very specific vision in mind, which the AI obviously doesn’t know, so the user ends up fighting that.

Three, the AI is not omnisicient, and just fucks shit up, makes goofy mistakes sometimes. Version assumptions, code compat errors, just weird implementations of shit, the kind of stuff you would expect AI to do that’s going to make it harder to manage code after the fact.

unless you’re using AI strictly to write isolated scripts in one particular language, ai is going to fight you at least some of the time.

permalink
report
parent
reply
3 points
*

I asked an LLM to generate tests for a 10 line function with two arguments, no if branches, and only one library function call. It’s just a for loop and some math. Somehow it invented arguments, and the ones that actually ran didn’t even pass. It made like 5 test functions, spat out paragraphs explaining nonsense, and it still didn’t work.

This was one of the smaller deepseek models, so perhaps a fancier model would do better.

I’m still messing with it, so maybe I’ll find some tasks it’s good at.

permalink
report
parent
reply
6 points

Can not confirm. LLMs generate garbage for me, i never use it.

permalink
report
parent
reply
6 points
*

I just generated an entire angular component (table with filters, data services, using in house software patterns and components, based off of existing work) using copilot for work yesterday. It didn’t work at first, but I’m a good enough software engineer that I iterated on the issues, discarding bad edits and referencing specific examples from the extant codebase and got copilot to fix it. 3-4 days of work (if you were already familiar with the existing way of doing things) done in about 3-4 hours. But if you didn’t know what was going on and how to fix it you’d end up with an unmaintainable non functional mess, full of bugs we have specific fixes in place to avoid but copilot doesn’t care about because it doesn’t have an idea of how software actually works, just what it should look like. So for anything novel or complex you have to feed it an example, then verify it didn’t skip steps or forget to include something it didn’t understand/predict, or make up a library/function call. So you have to know enough about the software you’re making to point that stuff out, because just feeding whatever error pops out of your compiler back into the AI may get you to working code, but it won’t ensure quality code, maintainability, or intelligibility.

permalink
report
parent
reply
5 points

A lot of people assume their not knowing how to prompt is a failure of the AI. Or they tried it years ago, and assume it’s still as bad as it was.

permalink
report
parent
reply
2 points

My first attempt at coding with chatGPT was asking about saving information to a file with python. I wanted to know what libraries were available and the syntax to use them.

It gave me a three page write up about how to write a library myself, in python. Only it had an error on damn near every line, so I still had to go Google the actual libraries and their syntax and slosh through documentation

permalink
report
parent
reply
2 points

Garbage for me too except for basic beginners questions

permalink
report
parent
reply
2 points

Two words: partial credit.

permalink
report
parent
reply
1 point

Usually this joke is run with a second point of view saying, do I tell them or let them keep thinking this is cheating?

permalink
report
parent
reply
1 point

deepseek rnows solid, autoapprove works sometimes lol

permalink
report
parent
reply
1 point

i guess the new new gpt actually makes code that works on the first time

permalink
report
parent
reply
4 points

You mean o3 mini? Wasn’t it on the level of o1, just much faster and cheaper? I noticed no increase in code quality, perhaps even a decrease. For example it does not remember things far more often, like variables that have a different name. It also easily ignores a bunch of my very specific and enumerated requests.

permalink
report
parent
reply
2 points

03 something… i think the bigger version….
but, i saw a video where it wrote a working game of snake, and then wrote an ai training algorithm to make an ai that could play snake… all of the code ran on the first try….
could be a lie though, i dunno….

permalink
report
parent
reply
104 points

deserved to fail

permalink
report
reply
67 points

Probably promoted to middle management instead

permalink
report
parent
reply
23 points

He might be overqualified

permalink
report
parent
reply
83 points

The bullshit is that anon wouldn’t be fsked at all.

If anon actually used ChatGPT to generate some code, memorize it, understand it well enough to explain it to a professor, and get a 90%, congratulations, that’s called “studying”.

permalink
report
reply
26 points

Professors hate this one weird trick called “studying”

permalink
report
parent
reply
15 points

Yeah, if you memorized the code and it’s functionality well enough to explain it in a way that successfully bullshit someone who can sight-read it… You know how that code works. You might need a linter, but you know how that code works and can probably at least fumble your way through a shitty 0.5v of it

permalink
report
parent
reply
1 point
Deleted by creator
permalink
report
parent
reply
7 points

I don’t think that’s true. That’s like saying that watching hours of guitar YouTube is enough to learn to play. You need to practice too, and learn from mistakes.

permalink
report
parent
reply
9 points

I don’t think that’s quite accurate.

The “understand it well enough to explain it to a professor” clause is carrying a lot of weight here - if that part is fulfilled, then yeah, you’re actually learning something.

Unless of course, all of the professors are awful at their jobs too. Most of mine were pretty good at asking very pointed questions to figure out what you actually know, and could easily unmask a bullshit artist with a short conversation.

permalink
report
parent
reply
4 points
*

I didn’t say you’d learn nothing, but the second task was not just to explain (when you’d have the code in front of you to look at), but to actually write new code, for a new problem, from scratch.

permalink
report
parent
reply
2 points
*

You don’t need physical skills to program, there is nothing that needs to be honed in into the physical memory by repetition. If you know how to type and what to type, you’re ready to type. Of you know what strings to pluck, you still need to train your fingers to do it, it’s a different skill.

permalink
report
parent
reply
3 points

It’s more like if played a song on Guitar Hero enough to be able to pick up a guitar and convince a guitarist that you know the song.

Code from ChatGPT (and other LLMs) doesn’t usually work on the first try. You need to go fix and add code just to get it to compile. If you actually want it to do whatever your professor is asking you for, you need to understand the code well enough to edit it.

It’s easy to try for yourself. You can go find some simple programming challenges online and see if you can get ChatGPT to solve a bunch of them for you without having to dive in and learn the code.

permalink
report
parent
reply
3 points

I mean I feel like depending on what kind of problems they started off with ChatGPT probably could just solve simple first year programming problems. But yeah as you get to higher level classes it will definitely not fully solve the stuff for you and you’d have to actually go in and fix it.

permalink
report
parent
reply
2 points

No he’s right. Before ChatGPT there was Stack Overflow. A lot of learning to code is learning to search up solutions on the Internet. The crucial thing is to learn why that solution works though. The idea of memorizing code like a language is impossible. You’ll obviously memorize some common stuff but things change really fast in the programming world.

permalink
report
parent
reply
77 points

If it’s the first course where they use Java, then one could easily learn it in 21 hours, with time for a full night’s sleep. Unless there’s no code completion and you have to write imports by hand. Then, you’re fucked.

permalink
report
reply
97 points

If there’s no code completion, I can tell you even people who’s been doing coding as a job for years aren’t going to write it correctly from memory. Because we’re not being paid to memorize this shit, we’re being paid to solve problems optimally.

permalink
report
parent
reply
25 points

Also get paid extra to not use java

permalink
report
parent
reply
12 points

My undergrad program had us write Java code by hand for some beginning assignments and exams. The TAs would then type whatever we wrote into Eclipse and see if it ran. They usually graded pretty leniently, though.

permalink
report
parent
reply
7 points

There’s nobody out there writing “commercial” code in notepad. It’s the concepts that matter, not the spelling, so if OP got a solid grasp on those from using GPT, he’ll probably make it just fine

permalink
report
parent
reply
3 points

Perfectly articulated.

permalink
report
parent
reply
34 points

My first programming course (in Java) had a pen and paper exam. Minus points if you missed a bracket. :/

permalink
report
parent
reply
12 points

Haha same. God that was such a shit show. My hand writing is terrible lmao

permalink
report
parent
reply
8 points

I got -30% for not writing comments for my pen and paper java final.

Somehow it just felt a bit silly to do, I guess

permalink
report
parent
reply
2 points

It was the same for the class I took in high school. I remember the teacher saying that its to make sure we actually understand the code we write, since the IDE does some of the work for you.

permalink
report
parent
reply
2 points

Remember having to use (a modified version of?) quincy for C. Trying to paste anything would put random characters into your file.

Still beats programming on paper.

permalink
report
parent
reply

Greentext

!greentext@sh.itjust.works

Create post

This is a place to share greentexts and witness the confounding life of Anon. If you’re new to the Greentext community, think of it as a sort of zoo with Anon as the main attraction.

Be warned:

  • Anon is often crazy.
  • Anon is often depressed.
  • Anon frequently shares thoughts that are immature, offensive, or incomprehensible.

If you find yourself getting angry (or god forbid, agreeing) with something Anon has said, you might be doing it wrong.

Community stats

  • 8.1K

    Monthly active users

  • 1.3K

    Posts

  • 55K

    Comments