Remix.run Logo
saadn92 13 hours ago

What gets me is the craft point. I've shipped more useful software in the last year than probably the previous five combined, and most of that is because I stopped treating code as the artifact and started treating the product as the artifact. The craft moved up a layer.

> until it is clear and elegant

New grads who spend weeks refactoring code are going to get lapped by new grads who ship something and iterate. There's just a faster feedback loop now.

2ndorderthought 12 hours ago | parent | next [-]

This person is an educator. You should absolutely learn how to code by deep practice. You can easily learn how to use the slop machine in I don't know a week or something if the job demands it.

sixtyj 3 hours ago | parent | next [-]

Absolutely, wise man (not an entrepreneur) writes a message to his students.

We seem to forget what it was to be a freshman.

At that age, you look up to anyone who’s more experienced.

Yes, you have to deliver, iterate and make mistakes very often to learn from them.

But as the text clearly states: relationships, people and justice matter more.

Where can I sign it?

smolgumball 10 hours ago | parent | prev | next [-]

Absolutely wild to see this take downvoted. While it's abundantly clear that Hacker News has long since become a mouthpiece for the AI investment machine, I really hadn't felt the loss of strong engineering ethos until recently.

mwigdahl 2 hours ago | parent [-]

I didn’t downvote, but if I were to it would be due to the dismissive phrase “slop machine” rather than the message, which I agree with.

hhjinks 8 hours ago | parent | prev | next [-]

The slop machine is stupidly easy to use. Recently switched jobs and got to use Claude Code for the first time. Literally just talk to it. There's nothing to learn.

minihoster 10 hours ago | parent | prev [-]

So now we're downvoting the idea that people should have a strong understanding of how to code? We're cooked. A week does seem about right for getting to 90% of optimal AI agent use if you earnestly explore its boundaries.

jauntywundrkind 12 hours ago | parent | prev | next [-]

There's a lot of ways to ship things & iterate without having any idea what you are building or doing technically, without building any tastes for how things work.

Those people are going to be the absolute most dangerous possible thing you can do to a company.

Maybe some day we can just totally give up the technicals to the machine, but I strongly doubt it. Every single model is both brilliant, but also a fool, no matter how frontier it is.

Yes, the feedback loops are faster. But you need to assess what's actually technically happening. Someone does. Maybe you offload the actual thinking up the chain, delegate taste understanding and judgement to only people up the chain, and make them all go mad dealing with endless slopcoding they are being hit with. But just as bad, that junior engineer is robbing themself too. Maybe they get away with not looking, but they sure aren't going to learn a lot.

I'm missing the link but there was a great submission maybe a month ago about two hypothetical grad students, I think in astronomy, where one failed and flailed and did things largely the old fashioned way, and the other used AI to get it done. The advisor couldn't really tell who was doing what. But at the end, one student had learned & gained wisdom, and the other had served as a glorified relay between the AI and the advisor and learned little. Same work output, but different human outcomes.

Junior engineers are really not that cheap. Relative to your capabilities you are not a bargain. You take a ton of valuable time from other people. If a company is hiring you, they either are truly fools lacking basic understanding, or they are in on the bargain that they want you to be getting better, are testing to see if you can become more useful. Sure it's great to show up and have impressive output, but you need to actually be learning and growing. You need to be participating in the feedback loop actively. Or you will be lapped by people who care & think like engineers.

beej71 11 hours ago | parent [-]

> Those people are going to be the absolute most dangerous possible thing you can do to a company.

I hear you, but here's the thing: the companies don't give a shit about software quality any farther than it takes to keep you coming back as a customer. And it's actually been like this for a long time. They're going to hire people who can ship who-cares-how-buggy software as fast as possible. It's better for the bottom line.

And that pains my soul and pains me as a consumer (because we already had to put up with too much crap software before genAI started producing it in reams), but there's very limited money in the kind of quality you're talking about.

I hear stories from people interviewing now--the interviewers react negatively if you tell them you're working on keeping your programming skills fresh. They just want to know how many agents you can run at a time and how many lines of code you can generate per day.

Personally, I think someone skilled in software development working with genAI is going to be more productive than someone not skilled working with genAI, but I don't think that's even being selected for now.

Grim days.

The one thing that gives me hope is that every time we ask our graduates who are now in the field (and all work with AI) if we should drop classic CS education and only do AI, they all emphatically reply in the negative. Yes, we need some AI education in there, but they want the foundation, too.

flowerbreeze 7 hours ago | parent [-]

It is rather backwards. I've not seen things quite as bad as interviewers wanting to know how many agents you can run, but the attitude of "launch & fix later" is always present and kind of depressing.

Then I think of the companies (not necessarily software) that have had long term success and their products have been quite high quality at least at some point in time. The count of genAI instances someone can keep in flight is certainly a weird metric that I think will hurt the companies who choose to ignore quality.

Unfortunately it's a long process as it's possible to get very far with great marketing and sales with a poor quality product too. Then cash out before customers figure out that there's something else that is better. I have no idea if this pattern will ever self-correct.

Off topic: I followed your guides for network programming years ago getting my tiny C server/client setup working. Thank you so much for writing them!

archagon 11 hours ago | parent | prev | next [-]

AI is not an abstraction layer. If this is not obvious to a so-called engineer, they should probably not be throwing stones.

10 hours ago | parent [-]
[deleted]
lo_zamoyski 12 hours ago | parent | prev [-]

We have to ask ourselves what the purpose of refactoring is. People use that word like some magic incantation, as if the value of some particular instance of "refactoring" were self-evident. "What are you doing?" "Oh, I'm refactoring X." "-hushed tones- Ohhhh, yes, carry on, then..."

Refactoring improves code organization. It makes the code more maintainable, arguably and more reusable. And, from an academic POV, makes code more satisfying conceptually by aligning it with the model of a domain more clearly and conspicuously. Good stuff.

Great. Now, in industry, what matters is the result. Nobody cares if the result was produced by a witch casting magic spells or a grunt hitting a rock with another rock. Industry is practical. It cares about "craft" as far as it enables commercial success (and yes, short-term thinking can be bad, but guess what: you need to eat in the short-term!). Maintainability is a nice thing to have, because it does allow us to more quickly develop code. But how maintainable something needs to be, especially in relation to other competing concerns, has no fixed answer. It really depends on the situation.

Practical wisdom, known as prudence in the classical literature, is the foundation of all moral behavior. The right decision, the right concern, really does depend on the circumstances. You cannot derive from principles, from the armchair, what the right course of action is for everything. The general principles may be immutable and absolute and fixed, but the way in which they are applied in particular circumstances will vary.

Academia can insulate people from certain kinds of practical concerns, which is supposed to aid theoretical work, but this demands that the academic recognize his limits. He is not in a position to pass judgement on prudential matters, which is to say matters that are not strictly matters of principle, if he is not prepared to engage competently with the concrete reality of the situation.