Live data from Hacker News

Learning Programming in an Age of LLMs

blog.ploeh.dk

121–130 of 190 posts

Re: Learning Programming in an Age of LLMs

#121
post #5

I'm the author of Python Crash Course, and I got this exact same email this week. I was thinking of writing a public response as well, because any attempt to sincerely answer these questions takes something along the lines of a full post. It's also worth a public response because many people who are getting into programming for the first time right now are asking variations of these same questions. > Do I think that…

I suspect my opinion on this won't be very popular, but it's like driving a car. If you're going to learn how to drive four wheels, you should start by taking the motorcycle safety course and learn on two wheels first. We can discuss why later.

Taking that concept to programming, I wouldn't start with a desktop or a web app. I would start with a little embedded system like an ESP32 or one of the small Raspberry Pi controllers (2350). I've come to this opinion because of the people I've mentored as they improved their code-writing skills. The ones who did best were the ones who started with embedded systems.

I believe you have to get down and dirty with the machine to understand the code and what it's doing. If you're making a motor controller work, you can use an LLM to generate code using a library or some cut-and-paste MicroPython code. But when it doesn't work, you have to break out the cheapy mini scope you got from Amazon and look at the waveforms.

Seriously, get your hands dirty at the controller level; understand queues as driven by hardware, not hidden in a library. Or, even simpler: you need to understand why the blinking lights are blinking, but not the way you thought they would.

If I were writing a course on programming, I would give students deliberately and increasingly wrong cut-and-paste code and leave the solution as an exercise to the reader.

Re: Learning Programming in an Age of LLMs

#122

I'm a software engineer, I do software development but also system maintenance, and I do handle networking and telephony systems, and work with some juniors. Working with AI is problematic. It can speed up you but at the same time delay you. For the system maintenance part sometimes you need to do a lot of stuff fast and in various machines and you can't just count on a cloud based AI oracle (that takes time) to do y…

> we would have to live in a world where software engineering didn't matter. As an engineer who works very hard to do the right thing, I'm beginning to worry that software engineering doesn't matter. I write code that i think about a lot, understanding every line. It's not perfect, but I try to make sure my code is maintainable and well structured. I work much slower then my colleagues who produce unmaintainable slop…

Agree and disagree.

There have always been software companies that care about quality, and those that don't.

Many who don't care about quality exist because their products are forced onto their users. (Due to footholds from enterprise relationships, regulation, etc.) I bet slop will abound in these kinds of companies, but their codebases and products were already terrible anyways.

---

But research reliably shows users do care about things Just Working™ and feeling polished. With few exceptions, if software feels at all buggy or doesn't look visually amazing, you won't acquire/retain that many users.

Natural selection will teach hard lessons to the industry. Customers will notice things feeling "off" on products where AI slop is allowed to abound, and they'll flee to companies with sane approaches.

A sane approach: Humans actually guide the direction of the code which means they have to understand + review the code and course correct bad decisions. This doesn't mean agentic coding goes away, but it means this mad rush for insane velocity goes away.

---

Compare vibe-coded apps you've interacted with against world-class polished apps like Spotify, Gmail, Slack, etc. Those apps aren't obviously showing signs of AI slop, because the organizational structure is in place in those companies to prevent engineers from just throwing slop over the fence. Those engineers are doing agentic coding but are being forced to go at a sustainable pace.

The industry will eventually be forced (by the reality of business results) to recognize that this is the only approach that will lead to success.

Re: Learning Programming in an Age of LLMs

#123
post #59

Earlier quoted context omitted.

No offense, but "natural language sucks" is the refuge of the illiterate logician. Complex language is clearly superior in nature. We're now finding out that that is true in computation as well.

We are in fact finding out precisely why natural language sucks in real time, as we have all kinds of catastrophic errors with people who think this is finally the time for complex language to prevail over pesky nerd language. The only difference is that more people seem to prescribe to the "you're holding it wrong" handwave when said catastrophes are pointed out.

Plenty of catastrophes are available under pure logic as well. The only catastrophes they prevent are accidental ones.

Natural language can build civilization around "do unto others as you would have done unto you".

Logic cannot encode morality, precisely because it is unambiguous.

Re: Learning Programming in an Age of LLMs

#124
post #77

Earlier quoted context omitted.

> Javascript running in browser is not very interesting either. Damn... that's honestly a shocking thing so say, if only for the fact that you can run in JS other languages. But even then, if you could "only" run JS it gives you access to a high level language but also all kind of inputs, from a keyboard and mouse, obviously, all the way to MIDI, hand tracking in WebXR, etc and all kind of outputs, e.g. screen, obvio…

To me the Turtle programming language lot more interesting than Javascript in a browser. Sure JS has all the capabilities, but as I child, all I wanted to was to turn pixels on and off on the screen. With only that knowledge , and my imagination, I felt I could build whole worlds on the computer. That is what makes something interesting and intriguing. Once I had the taste of that first pixel, and I was hooked. But l…

You can have the best of both Worlds today thanks to https://snap.berkeley.edu namely block based visual programming, no syntax error, no installation (even works offline once loaded) and you can make the turtle move... but you don't have to stop there, you can make your own blocks... and those blocks can even be JavaScript so that when you inexorably get bored of what was once an exciting turtle, you can leverage all that but control it with a GamePad or whatever weird things I listed before.

To be clear though, I am NOT advocating for JavaScript, I'm just arguing its potential, today, is nuts.

Re: Learning Programming in an Age of LLMs

#125
post #25

My biggest issue with halting AI progress right now is we are in a dangerous place where AI is only just good enough to be dangerous. So I see an argument to continue development until its competent to depend on.

The problem is that by default progress might look like an increase in power without a corresponding increase in safety. That could be catastrophically dangerous.

Re: Learning Programming in an Age of LLMs

#127
post #59
post #58

I answered this to myself - stop worrying about LLMs. It's pretty simple: due to Curry-Howard isomorphism, programming languages are just notations for some type of formal logic. Now ask yourself a question, what language do you want to maintain the programs in? Do you think natural language is going to be easier and more maintainable than formal logic? The answer is no. So you need programmers, people who can read t…

No offense, but "natural language sucks" is the refuge of the illiterate logician. Complex language is clearly superior in nature. We're now finding out that that is true in computation as well.

No offense but you're just making statements without backing it up with anything. "Clearly superior", "finding out that is true"..

How are you going to prove what you said? Natural language is not enough for that purpose. You need formal logic, quantifications, specifications, the foundation of programming. Superior to what, and according to what metrics? What truth in computation are you talking about, and how can we know and confirm it? Not with natural language, but with numbers, mathematics, the building blocks of logic.

Re: Learning Programming in an Age of LLMs

#128
post #65

Earlier quoted context omitted.

Extraneous and ambiguous is superior? Or are you talking about hypothetical new spoken languages?

Yes. Ambiguity is a feature, not a bug.

Isn't code supposed to be exact? Pretty much the opposite of ambiguous.

Re: Learning Programming in an Age of LLMs

#129
post #59

Earlier quoted context omitted.

No offense, but "natural language sucks" is the refuge of the illiterate logician. Complex language is clearly superior in nature. We're now finding out that that is true in computation as well.

No offense but you're just making statements without backing it up with anything. "Clearly superior", "finding out that is true".. How are you going to prove what you said? Natural language is not enough for that purpose. You need formal logic, quantifications, specifications, the foundation of programming. Superior to what, and according to what metrics? What truth in computation are you talking about, and how can w…

Superior just means "above" or "on top of". Natural animals don't communicate in logical terms, even if their dna is a logical sequence.

Re: Learning Programming in an Age of LLMs

#130

Earlier quoted context omitted.

We are in fact finding out precisely why natural language sucks in real time, as we have all kinds of catastrophic errors with people who think this is finally the time for complex language to prevail over pesky nerd language. The only difference is that more people seem to prescribe to the "you're holding it wrong" handwave when said catastrophes are pointed out.

Plenty of catastrophes are available under pure logic as well. The only catastrophes they prevent are accidental ones. Natural language can build civilization around "do unto others as you would have done unto you". Logic cannot encode morality, precisely because it is unambiguous.

[deleted]
Post reply on HN