Live data from Hacker News

Learning Programming in an Age of LLMs

blog.ploeh.dk

91–100 of 189 posts

Re: Learning Programming in an Age of LLMs

#91

This is an issue that's very real for me right now because I'm in the middle of teaching my own kids programming, and we've been working on it for years at this point. I'm watching AI seemingly invalidate the premise behind learning all of it. It's been a pretty depressing change to be honest, because I love programming and watching this happen is hard. So, I've changed my approach with my own teaching. I'm having th…

The real problem is that the environment for healthy learning is gone. At least when I was a kid, there's something magical about having an environment where nobody knows what the hell is going on and the learning is, to use your words "painfully slow". I guess we've been trained to think that way with all this modern technology, but back in the day, it didn't matter whether the final result was accomplished or not. All that mattered was the fun of trying to get something to work.

Nowadays AI shifts the emphasis to the final product, and frankly that's boring. Kids will use it because it's there, because it gives that initial result really quickly and we're hardwired for that. But it removes that cool environment of having a blank slate and just seeing things happen all on your own accord.

Companies might like AI for the short-term gains but we're doing the entire planet a disservice by having even invented AI, in my opinion. We're all being trained to be producers.

Can a person like you create a little microcosm of learning that can work? Maybe, but I get the feeling that programmers these days are being blinded by the fun of AI and forgetting that there's actually more to life satisfaction than having fun.

Re: Learning Programming in an Age of LLMs

#92
post #87

This is an issue that's very real for me right now because I'm in the middle of teaching my own kids programming, and we've been working on it for years at this point. I'm watching AI seemingly invalidate the premise behind learning all of it. It's been a pretty depressing change to be honest, because I love programming and watching this happen is hard. So, I've changed my approach with my own teaching. I'm having th…

I came back from retirement for a couple reasons, one as a hedge against the stock market due to AI. Two, the camaraderie built by working with other people. Three, the opportunity to mentor young people. AI has made the whole situation suck. Stock market is stressful due to energy and AI. AI has left people working alone managing agents. Any advice regarding development best practices I give to young people might ha…

Yeah, it's really hard to keep pushing honestly. I have no idea where this is going to end up, but I think there will still be space for higher-quality, more interoperable tools for quite a while. I'm also coaching them to treat software as a thing they can use to boost their real careers, not as a thing that will be a career.

Re: Learning Programming in an Age of LLMs

#93
A good question might be: what do I want to be ? A good prompter ? It's like someone who used to bee a good chef but is now good at ordering at uber eats. Even for a junior: being a good prompter may not be enough.

We tend to think that we make a program, but (writing) the program also makes us what we are. It is what we do that defines what we are. "I think, therefore I am".

I don't see a career path for a prompter. I don't see the benefit for an organization to rely on people who don't understand what they do nor how the programs that keep the organization running works.

That being said, "the man and the machine" can be a powerful combination, like when we drive a motorbike. For me the cooperation with a LLM could work like this: if there is 50 features I write the code for 25 of them and write stubs (classes, methods) for the 25 others, with comments that will be the prompt. The AI audits what I write, gives suggestion, find blind spots and learn best practices from my code. Then I do the same kind of review on the generated code and the AI learns from my review. An AI can even, with luck, suggest a completely new way to solve a problem (see AlphaGo vs Lee Sedol move#37 in game#2) and then I learn something.

Working like that will make me better at reading code (after all Linus spend a lot of time in reading code, it is a good skill to have) while the AI gets better as well. I don't delegate everything and keep practicing, I keep myself up to date, the AI learns from me and I get peer review from the AI. And the codebase does not become a mess (=technical debt) that only another AI can maintain while token prices increases.

Re: Learning Programming in an Age of LLMs

#94

Earlier quoted context omitted.

That’s the power of abstraction when there’s a good API around something to hide the internal that doesn’t matter much at an higher level. You only need ‘open’ and ‘read’ instead of dealing with disk access and file system trasversal. But those abstraction are deterministic in nature, so there’s a very good guarantee of their behavior. Someone using LLM and not caring about the generated code is just asking for troub…

> The code may work, but there’s no guarantee about its behavior (including error handling and edge cases). But the painful reality is that we never had any such guarantees in industry code to begin with; despite decades of writing on software engineering best practices, software from the biggest companies is often bug ridden. My experience might not be representative, but when I do my "old man yells at clouds" routi…

This is exactly true in my experience. I find myself trusting the LLM better than I ever trusted a development team to deliver accurate work. Just like you would managing a team of junior developers, you have to keep an eye on the output, but I think the agent is more transparent about that than your team would be. And it works faster, and you don't have to deal with emotional meltdown or active sabotage if you criticize in the wrong way.

The trick for the guy controlling the agent is to know about the gotchas that one would normally encounter when doing the work. Asking the right questions and mentioning the right things to pay extra attention to can make all the difference.

I think that's why it will be much more difficult for people to learn how to make software now. Those of us who have been doing it for years and years have experience that is valuable in steering the LLM. It will be hard for people new to software to get that same experience. But then things are changing so quickly right now, everything I just wrote my be irrelevant in a week.

Re: Learning Programming in an Age of LLMs

#95

"The same kind of argument was used when China was admitted to the World Trade Organization. And indeed, lots of new jobs were created, just not in the Western world." China's entry into the WTO is really not a good evidentiary example for AI causing mass unemployment. Unemployment in the U.S. had already been increasing at the time, peaked soon after, decreased to well below the point it had been at China's entry, a…

> That's not to say that jobs weren't lost, even en masse, but they were replaced

That's what the article was implying with:

> Yes, new jobs were created, but often not for those people who lost their jobs. Coal miners didn't just become programmers overnight.

The point is that middle-income (industrial) jobs were replaced with less, higher-income (service/knowledge/advanced industrial) jobs, with virtually zero overlap between the two in terms of workers. This is why certain regions across the West (US Rust belt, Northern England etc.) were devastated and have become so immiserated.

Re: Learning Programming in an Age of LLMs

#96

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 at an alarming rate. In my career, no customer has ever complained about code structure or quality. It feels like I'm sinking in quicksand in an industry that's dying.

Re: Learning Programming in an Age of LLMs

#97
post #40
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…

> Just five years ago, the only way to build a working project of moderate complexity was to learn the basic to intermediate concepts required to make an MVP. > Now, if you can steer an LLM reasonably well, you can quickly build an MVP that goes well beyond your own understanding of the implementation. Somewhat agree. Five years ago you could build an MVP without understanding how to open TCP sockets or how to parse…

>Now you don't need to understand the details of connecting to Stripe or Auth0 or setting up a Kubernetes cluster.

Ehhh, if you're smart you want to at the very least gloss over the details, and look at the code being generated by whatever model you're using for this solution.

Re: Learning Programming in an Age of LLMs

#98
post #93

A good question might be: what do I want to be ? A good prompter ? It's like someone who used to bee a good chef but is now good at ordering at uber eats. Even for a junior: being a good prompter may not be enough. We tend to think that we make a program, but (writing) the program also makes us what we are. It is what we do that defines what we are. "I think, therefore I am". I don't see a career path for a prompter.…

Prompting is an intermediate situation at best anyway. I think the most lucrative AI field going forward is going to be liability litigation since there will be only a small handful of AI companies, each the size of small nation states, who will need to be held accountable for what they unleash.

Re: Learning Programming in an Age of LLMs

#99

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…

It's not about what the customer complains or notices at short term, is about having a quality system that can be augmented without accumulating same kind of debt. I can give a simple example. I have a coder here that filled the crontab of a server with periodic tasks. One of them was doing +200 failed requests per second and shutdown one of our routers. The router wrote so much logs that it changed the health of its internal disk from 15% to 85%. He doesn't even know what the crontab is. This kind of stuff is bound to happen more and more because the more you use AI to vibe, the more disconnected you get from the technology. And that's why I say, the only way that yolo vibecoding could work is if the base stuff didn't matter.

Re: Learning Programming in an Age of LLMs

#100
one thing ive found fascinating recently was re-taking some of the best tutorials i've ever taken (catlike coding, libtcod roguelike, etc), and asking astra to just transpile them into other technologies, stacks, or languages. Including all the garden paths, false starts, and dead ends, because the tutorial author included those intentionally. I had it copy graphics across where they're a screenshot of software, and reproduce diagrams with interactivity to show how graphs/shapes/values change as inputs are varied.

Another key thing to ask it to preserve is the nature of how we are asked to edit files. Sometimes its "replace x method with this" and then an explanation, but sometimes its "change the check at the top of suchandsuchafile to handle the new method signature", which of course forces the user to follow with and try things themselves instead of blindly copy and pasting

I certainly feel I gain insight into new technologies the same way I did with the original tutorials

Worth noting before anyone gets any ideas the resulting documents are purely for ones own consumption, publishing such things would be a moral injury against society in general and the original author specifically. If they wanted it to be made, they could just do it themselves.

Post reply on HN