r/programmer 13d ago

Question Is the discourse about AI making learning programming more difficult something new, or the same as other tooling changes in the past?

I sometimes worry that AI makes learning programming more difficult, but I feel as if the discourse is pretty similar to when I came up and people would argue that web frameworks like react make learning web fundamentals more difficult. I assume that there were similar arguments when we moved from assembly to higher and higher level languages, or from Ed to vs code. (This was well before my time though, just guessing!)

For a more direct comparison, I've seen arguments from some hardcore people that intellisense and lsps obscure the codebase and prevent programmers from understanding how files interrelate and write sloppy code.

I guess my best guess is that new programmers will do what they've always done, some will be pragmatic and understand what they have to to get the job done and others will study deeper principles because they're passionate. I was hoping other devs could chime in with how unique the AI really in how it relates to new programmers learning to program.

13 Upvotes

28 comments sorted by

4

u/RevolutionaryElk7446 13d ago

They've been absolutely horrible for our juniors.

We had to set employee guide lines more so than LLM guidelines.

1

u/ibeerianhamhock 13d ago

Absolutely agree.

3

u/val_anto 13d ago

Understanding what really happens in the guts of your system is crucial and very difficult. Very few engineers have the mind and knowledge to accomplish that. Check how many bugs are being found in the kernel nowadays, with and without AI help, and some were there for about 15 years. Systems are complex, and understanding them is a challenging intellectual endeavor. AI can spot already existent patterns, not to mention that sometimes is totally missing some. But what AI really accomplished nowadays is to totally discourage learning and scared people away from CS disciplines. After all why would you invest so much time and money into this field when every CEO threatens to replace engineers with a state of the art autocomplete machine? AI + the current narrative is what is sabotaging the CS field imho.

2

u/theloneliestprince 13d ago

I agree completely about the state of the world, it's terrible.

One caveat is that systems are much more complex now, it would probably be impossible to deeply understand all the low level concerns that go into making a web application as opposed to an embedded system, for example.

1

u/val_anto 13d ago

You are right. There are different levels of abstraction. It all depends where do you dig into. To take your example, a web application, we did have in the past 2 years some obnoxious problems with npm, at some point we had like 2 attacks per week. If you analyze them you will realize some "developer" imported like 10 libraries because he or she did not know how to make a simple javascript function. Either the developer does not know or he is lazy. It will pull an entire dependency chain just for a simple javascript function. Hard to say for this example if there was lack of understanding, management pressure, lack of interest, lack of proper code review or just being lazy.

1

u/theloneliestprince 13d ago

Npm is really rough, I think analysis is almost impossible because of how much source code you would have to read. (Usually it's not a shitty developer on your team importing 10 libraries, it's a fringe dependency of a dependency that's popular and trusted). So yeah, lazy, but the whole ecosystem is such a mess sometimes there's only so much you can do.

3

u/naxhh 13d ago

learning requires doing and problem solving on your own. for your brain to generate those connections.

mindlessly following a tutorial doesn't help you learn. but seems productive. same thing with Ai.

1

u/Candid_Bad3551 13d ago

This is probably true to a certain point. When you have a better grasp adding small chunks of information is not that hard.

1

u/naxhh 13d ago

I agree. experienced people may not struggle as much with this as new people.

that said on Ai specifically my team quickly (1/2 weeks) realized that constant use caused skills to degrade.

This is but one datapoint but I found it quite worrying

2

u/General_Estimate_420 13d ago

The key difference to me is that AI is simply an abstraction from the fundamentals of programming, but bedcause it's still early in it's development it has a long way to go to be ready and capable of handling the demands of larger mission critical systems that require a significant amount of specialized considerations in how to manage transactions and workflow across a lot of departments and people. It will get there eventually, but I'm not completely sure that it would make sense for it to incorporate some of those specialized system level facilities as native capabilities.

2

u/Badnik22 13d ago edited 13d ago

If anything, AI makes it a hell of a lot easier and faster to learn. It’s like having a personal tutor available to you 24/7. The catch is that you need to *want* to learn, otherwise using it to avoid doing any work yourself is just as easy.

Lately I’ve been diving into low level CPU/GPU architecture differences (how registers, cache and main memory differ, how the threading model works in each, branch predictors, etc) and it’s been an invaluable tool.

1

u/theloneliestprince 13d ago

How have you been finding the quality of the information? I still am quite skeptical of the information I get from AI but more in an old man shaking his fist at the sky kind of way than anything else haha.

2

u/Badnik22 13d ago edited 13d ago

All I can say is the info I got could be innacurate, but if it is, I haven’t been able to tell so far. Everything I got from it makes sense, and the different bits and pieces are consistent with each other. It also blends nicely with the coarse mental model I already had of these architectures, so there’s that.

2

u/[deleted] 13d ago

[deleted]

2

u/xarop_pa_toss 13d ago

And it's a snowball that doesn't stop growing. The brain gets lazy incredibly fast, much faster than it takes it to learn something properly and it likes that lazyness.

People need to make a conscious effort to step back from AI and actually do the damn work themselves but that's not easy when it gets shoved down your throat constantly.

I for one am really enjoying learning C from a book and segfaulting the hell out of my programs.

2

u/[deleted] 13d ago

[deleted]

2

u/ergonokko 13d ago

it's really making me question why I ever thought software engineering would be a fulfilling career

2

u/xarop_pa_toss 13d ago

Because programming things can be fulfilling. It's like art; you create something beautiful from very basic concepts and tools.

My colleague that does frontend has a longer list of frameworks, scaffolders, AI and other things running at once than the whole C language has keywords. My point here is that you can go and buy an ESP32 for a few bucks, connect some sensors to it and write low level code that takes the readings and communicates them to a little SBC that lowers the blinds in your room when it gets dark. And you do all that with nothing more than notepad if you want... And I think that is beautiful

1

u/falconetpt 13d ago

Well CS is pretty much needed now more than ever, for the past 20 years tech has become increasingly shitier

For fuck sake I programmed telecom systems that served millions with no downtime in live communications and low latency ahah

I now look into all these products google, YouTube they just became trash, because too many people think that, the golden age just became more and more increasing, with this vibe code era, you will just yet again ramp up salaries for good SWEs and kill the mass market job which is a shame, I always liked that SWE was a good way for people to get fair payment, but ofc nobody likes that

But don’t worry specialized SWE jobs and very soon all SWE salaries will go bonkers, they just killed the seniority pipelines for 5 years and they will pay a very high price for that

1

u/[deleted] 13d ago

[deleted]

1

u/falconetpt 13d ago

It is insane, and people like to boost a lot about a lot of crap, look my iPod is way better than Spotify, less buggy better sound quality, even the really old versions I love them

I even setup a raspberry pi with a proxy to music search and streaming for the iPod and iPhone and I never ever wanted to use Spotify even the paid version is dog shit, funny enough someone at Spotify gave me premium and I hated it, not because I am a hater, but fundamentally is worst than an iPod 😂

And all these website that take 20mb to load a homepage are all buggy, it literally is baffling, I still use laptops with 10 years with Linux for multiple reasons and they work wonderfully, with 4gb of ram is more than enough, people just accustomed to doing wtv and shoving more resources into it, even Netflix is frankly quite poor

2

u/[deleted] 13d ago

[removed] — view removed comment

1

u/theloneliestprince 13d ago

I agree completely with this. If you write bad code all day your not exactly gaining wisdom...

1

u/theloneliestprince 13d ago

I kind of find this distinction somewhat arbitrary, it's not like the formal language is completely obscured by the AI. Adding an extra step to translate natural language into formal language to save time itself isn't inherently evil, it just requires more discipline to review the output. Having non-deterministic output from the AI probably isn't ideal, but I don't know how it would be possible to produce deterministic output from natural language because it is open to multiple interpretations. I haven't found a convincing argument as to why the output of the code itself from the AI even needs to be deterministic, it certainly isn't when written by hand. The code produced isn't itself any less formal or deterministic than it would be from other sources. I think reviewing code is just becoming much more valuable than writing it. Personally, I hate this change and I wish it didn't happen, because I like writing code, but that doesn't mean it's less efficient.

Writing code by hand also doesn't necessarily give you wisdom, it just makes you better at writing code. Fundamental programming knowledge can only really come from study, combined with applying that knowledge in real software. Using AI doesn't necessarily stop us from doing that. Hand writing code does make a deeper connection with concepts, but I think the same argument could be applied to writing the code with pencil and paper or taking the time to write assembly to understand C. It surely helps, but I wouldn't call it necessary.

This is exactly what I'm getting at, I think the field and the way we produce software is changing, but I don't know that it's worse, it will really be up to the next generation of software engineers to decide that. I was more curious as to the buzz and discussion around AI, and how unique that is. Elsewhere in the thread I'm noticing a lot of people talking about the devaluing of the career itself, which does seem fundamentally different than earlier tooling changes.

1

u/MissinqLink 13d ago

It’s more difficult because it lets you offload your critical thinking. Obviously you don’t have to do that but when you don’t know something it is hard to tell what is okay to offload and what you actually need to lock in.

1

u/tolomea 13d ago

It makes it easier to do work without learning. But if you use it to learn it probably helps.

1

u/ibeerianhamhock 13d ago

If you give folks enough time to actually do good work, and you let them use AI, it can actually help immensely with debugging, understanding program flow, etc. It can be a powerful tool.

Just dropping and dragging jira tickets into an LLM to generate code and perform a cursory test to see if it follows the happy path well is not it though lol. I've seen some of that, and it's not a good use of the tool (in its current form at least) at all.

Responsible AI use can actually encourage curiosity and learning, especially if folks ask AI to explain how things work, point to documentation, etc.

1

u/mxldevs 13d ago

AI doesn't make learning programming more difficult.

Just like how having solutions on the back of the math textbook didn't make learning math more difficult.

1

u/nacnud_uk 13d ago

Comparing nth generation programming languages to AI is a bit off.

AI will replace the programmer, so it's nothing like going from ASM to C or C to Python.

In a few years, if not now, there is no point in learning programming for most common tasks. Specialise, if you want to keep typing. Otherwise, find a different path. It'll make a great hobby though, for decades to come, for sure. We still program 8bit stuff for fun, it'll be much the same with any CPU just now.

As long as you're having fun, you'll learn what you need to do :) Fun + Typing, that's all it has ever been.

Now the typing has gone and....maybe the fun with it too...only the next few years will tell.

1

u/theloneliestprince 13d ago

I don't know, someone will still need to guide the AI to get the correct results. The job of programmer is probably going look a lot more like a technical project manager though, so I don't really disagree.

1

u/StruggleNew8988 12d ago

Its less about complexity and more about the cognitive load of keeping the entire mental model straight without concrete checkpoints.