There's a neat / weird ladder that I keep seeing friends go through as they work through this.
- Volume. Kill the backlog! 8 agents in terminals, frantically!
- Ambition. Do the things you always want to do! You have the power!
- Clarity. Oh god I have to figure out what to do next.
That last one is honestly super-hard, but it's also the most valuable. Like, do you want to wake up every day and find new work, because you understand the machine better than everybody else? I know a bunch of people that love that stuff, but also a bunch that don't. I totally get that the transition is hard.
This is the right take. I wouldn't dare to write a TypeScript compiler a year ago but now I'm trying it and I have to say this has taught me so much about compilers, Rust and performance overall that wouldn't be possible before. It's a lot of fun to embrace the new technology and do bigger things.
Doing this sort of project is giving me a glimpse of what it is going to be like managing software projects. As software engineers we have to learn how to manage much bigger changes and in a much higher level of abstraction. I personally don't think models are good enough for this level of automation yet but in a weekend that I had access to Fable I could see how things are going to change soon. Most of criticism towards LLM coding was not applicable to Fable. I'm not hyping anything, just an observation.
The DJ analogy is useful actually. I live in Berlin and essentially everyone is a DJ but only a few get to make money from it. The difference is of course taste but also grit and how well those people leverage available tools to them. A good DJ knows how to use the tools and has a good understanding of the market. Different skill that a musician but nevertheless a valuable skill
I live in Berlin and not everyone is a DJ. You just live in DJ circles. Everyone I know is a vulture capitalist. There's a lot of room for monetisation in this city.
Yes! And more projects. And you have the freedom to try and fail.
Was thinking of a comparison, cars are faster than walking. Imagine saying, no I prefer only walking. It is healthier than sitting in a car and your legs will atrophy. That is very much true (and we can see the consequences in car dominated societies). Nevertheless, for many industries cars are very important. You don’t say, I would rather carry all these pallets by hand rather than use a forklift.
LLMs are similar in my mind. They turbocharge your output in all senses but is less holistic than hand-coding. Like cars, you are making a trade off but I don’t think it’s fully a replacement. We still walk with cars in our lives. And we don’t eschew cars because they are “worse” for you than walking. We adapt and make tradeoffs
Agreed, I don't know if it's going to stay like this forever, but right now, if anything, the difference is amplified. You can make unbelivable stuff happen through the sheer power of knowing what you're doing.
I feel the same. More projects, more ambitious projects. I would have not been able to even imagine sone of the things I am building now, not to talk about implementhing them alone.
What type of applications are y'all seeing from LLMs? Anecdotally the only thing that has changed for me is the ability to output more code. That's not software. My coworker is a 10x vibe-coder and his flagship application is held together with brittle shell scripts, a sloppy codebase, bad abstractions, piles of markdown files and an ouroboros of generated tests. This is not software. This is just held together with duct tape and a prayer. Although this guy doesn't have any traditional background but still, if LLM generated coding agents were so good even a simpleton like himself should be able to create a miraculous piece of software, right?
the 0x engineer became a 10x vibe-coder responsible for our CICD and vibe-coded testing that was previously manual
He's introduced several 100,000s LoC changes and additions in 10-15 codebases. There are some repos that only he works in ( so no PRs, just merge to master and be done ). He also has self-approved and merged changes without review (he's an admin)
Anyway, now he put in his notice and no one on his team knows how any of this works. We can't get code changes without CICD passing. CICD breaks all the time. The original contractor who made the CICD before him wants nothing to do with it now. We can't generate signed OTA packages.
He went from doing 'too much to finish anything' to 'made so many changes that he had to bypass PRs'.
Now he's leaving.
Engineers have been pointing out this bottleneck for the past year or so. The engineering managers aren't pushing it and the business owners either don't understand or don't care
Hah, ultimate vibe coder nightmare scenario. I wonder if, in six months time, there will be enough stories like this for sanity to prevail a little more.
Yes I know. There's no nuance on HN. I was using it as a metaphor to show that this person has no idea what they're doing. Which is a huge difference from someone deeply knowing the codebase and tech it'll sit on to make an educated tradeoff. I've seen the duct-tape in real codebases and I knew the engineers who put it there and why. That doesn't exist when your senior engineer is a nebulous "idea of an engineer" that resets its memory every few hours.
Please explain this "adapting". The LLM sellers' holygrail is * you just need to crank our model bro *. With this mindset, there is no adaptation needed, save a couple of weeks of getting up to speed with nuances of using the models, the / commands and integration of their APIs into your workflow.
> his flagship application is held together with brittle shell scripts, a sloppy codebase, bad abstractions, piles of markdown files and an ouroboros of generated tests
you just described lots of codebases at highly values companies. Plenty of places, maybe even the majority, do not care about code quality if the code results in a functional application.
I built an orchestrator connected to email, browser and payments, and it handles a ton of boring stuff like “pay electricity”, or “apt renters want something, deal with that”, or scheduling appointments, dealing with infoline chatbots and everything around that.
Plus navigating personal communication (what’s the address
of friend X, who did I promise to go to a dance workshop with) and so on…
In essense, anything Siri promised to be, but really working.
I remember C compilers becoming affordable, and GCC actually getting good.
I remember Java coming along, and how much easier it was to build compared to all the crazy linking and cryptic error messages my C compiler gave me once you went beyond a toy program. And god forbid you wanted it to run on BOTH Borland and visual C!
I remember CGI, and then PHP making it trivial to write web apps, and then less trivial webapps, and then webapps that people actually used in serious business.
Then I watched the same thing happen with Javascript.
All those rebuilds of the same foundations, making the same fundamental design mistakes again and again like a wheel of karma, but with prettier UX and less vendor lock-in.
And now, AI makes it even easier to re-make those mistakes. It's gotten "easier", but it's actually gotten harder. Making something that runs has never been more trivial. Making something with a solid architecture and disciplined hygiene has never been harder.
And so we begin round 4 of re-learning the lessons of the 1960s-1970s.
TBQH it used to be easy. I remember watching one person with Access set up dashboards that worked 1000x better than all of the dozen SAAS tools no one can wrangle together today. Small businesses pushed updates and menus from Frontpage. We used to spin up quick code on our calculators, meanwhile our much more powerful phones act like executing our own code is an act of terrorism.
LLMs (maybe) get us a little closer to closing the complexity gap and making our personal computers personal again, but with the funny problem of needing to use someone else's computer to do so.
> Turning this essay into a song in the style of 2000's Hip Hop? It used to be hard
Have you listened to the song he links? It's very convincing. If you were just casually listening to it in the grocery store, you wouldn't notice it was made by AI.
Maybe it’s just me but it’s still hard. Writing code wasn’t hard before. Honestly putting up guard rails is harder than writing it yourself. It just may be faster now.
Getting proper requirements, knowing what to make, update, the domain knowledge, satisfying customers was and still is the hard part.
I don't disagree, and I've heard this said a bunch, but to some degree it feels like cope. Writing code wasn't generally the barrier to success, but it was still a barrier. And for sure, it's not gone entirely, but in a way it was one of the fun parts, and it does feel like a big part of it is gone now.
Many of us have nostalgic memories about staying up late, in the zone, cranking out code until you manage to get something working. "Getting requirements", figuring out "what to make", "satisfying customers"... all as important as they always have been, but they just aren't fun in the same way.
As for domain knowledge, well, to a degree that's one of the parts that used to be hard and isn't anymore. Like the article says, many of us prided ourselves on having in-depth knowledge of network protocols, OS internals, whatever. Now you can just ask a bot for that stuff and, while it's sure not perfect yet, stand a solid chance of getting a good answer.
I don’t think writing code was ever hard. It’s basically the same level of difficulty as learning to write sheet music, a foreign language, or mathematical formula. Same with basic computer concepts.
The hardest part is the formal logic, recursive reasoning, and how to abstract. It’s a thinking mode that some find difficult to adopt.
As for domain knowledge, I don’t think that has ever been difficult to obtain. Just behind me, I have the CLRA Algorithms book, and that has pretty much everything you may need in that regards. Same with various other types of knowledge. And with Youtube, you can easily find visualizations if books do not work for you.
I’ve taught people how to code and they can grasp concepts quite easily. It’s the thinking aspect that they have trouble with. Meticulously thinking about every computation path, categorizing errors and handling them is not something a lot of people like.
> It’s basically the same level of difficulty as learning to write sheet music, a foreign language, or mathematical formula.
I mean, all of those are pretty dang hard. Maybe you're just particularly skilled (genuinely, no shade intended), I certainly couldn't do any of those without a significant level of effort.
I'd also personally consider "formal logic, recursive reasoning, and how to abstract" as parts of writing code, as the other commenter said. And while AI certainly isn't at the point of "solving" those yet, it's a heck of a lot closer than we were a few years ago.
And sure, you can always obtain domain knowledge, but the whole point of knowing it is that you can see approaches other might not, answer questions quickly, etc. And a lot of this is still relevant post-AI, but it does feel like a lot of it has been lost. It feels like implying that search engines weren't a major upgrade to research because you could always just go to the library and look through books to find your answer - sure, but googling a question is a lot easier! And chatbots just feel like an upgrade from that.
Interesting - I’ve been thinking that when people say “writing code” they mean figuring out abstractions, logic, reasoning.
Without that, what’s left? The syntax?
Realizing we might not all have the same thing in mind when someone says “writing code was never hard/easy” is making a lot of other comments I’ve read here make more sense!
Writing code, IMO, is mostly the typing. AKA the syntax and whatever libraries/platforms you’re using. They are incidental to creating a software solution to whatever problems. It requires rigor, but it’s not particularly difficult.
Abstractions, logic, and reasoning is not helped by AI tools. Yes they can give you a ready-made solution, but you’ll need to exercise judgement to see if it really fits the problem. And doing the latter can be as hard as just doing it yourself.
I would agree with that. Whenever I’ve delegated more than what feels like ~80% to the agent (“vibe coding”, I suppose) is when it starts feeling bloated, messy, and bug-prone.
On the flip side, having a design written ahead of time, ideally with reviews by peers and AI and as little as possible AI “content”, seems to almost always go well.
Hard is relative. The Apple IIe could do roughly a half-million instructions per second. Yet, application develop was long and tedious. Layers upon layers of abstraction requires more powerful CPUs, but translated into highly complex applications and user interfaces. What if we could use the LLM tools we have now to go back and see what is possible with older machines?
For example: The Python print('A') statement translates into thousands of lines of assembly (using mostly compiled libraries). The actual minimum assembly to generate a print statement is less than a hundred. Claude code can do this:
>>Generate the minimum amount of assembly code to obtain the same result as print('A') in Python.
The result is 43-bytes of machine code (it works, unsurprisingly). Claude estimates that Python requires 5 megabytes of compiled libraries to get print('A') to work.
I disagree that something becoming easier is a negative, even if it sucks for the people who learned the hard way.
The real issue is that the floor has been lowered, but the ceiling stays as high. It's always been a problem in this profession, where you can get something running much easier than you can make something safe, maintainable and ethical.
We keep making it easier and easier to disregard those extras. Both technically and culturally. It's not a good path.
> This might be why despite AI automating so much work, the 996 grind culture is more alive than ever.
There's an interesting paradox which occurs when a particular field finds its work becoming easier. Suddenly, the world needs more of everyone else's job and less of your job. You have to work harder now that there's less work to do, because there's more competition.
Or, the world needs more of your field because it's now cheaper.
I've often heard of house painting as an example of this. It used to take a crew of 8 with buckets, paintbrushes, and ladders to repaint a house. Then paint rollers came along and it got easier. Then sprayers came along and it got even easier. Costs fell, so now people want their houses painted far more often. Landlords now nearly always fully repaint apartments between tenants. As cost fell, painting demand rose.
It's maybe much easier to create code, but it's still hard to create good software, and for the next few years we have a monumental challenge of figuring out how does one create good software when cost of code is approaching zero.
It will be harder to decide what to build (or what to not build), increase the velocity, even if only for infosec patching, make use of increased velocity for features, massively increase experimenting capacity, and close the biggest loop.
Even the best teams now are barely scratching the surface of what tomorrow brings, and it's super exciting, interesting and definitely not easy.
It will be hard, but not in the part that was hard before.
I think emotions are an underrated aspect to the "AI changes how we work" thing. Everyone I know extensively uses AI in most parts of their work. Basically everyone has multiplied their output by a lot.
But I don't know many people who say they enjoy their work more because of AI. I definitely resonate with the pain of watching something that required so many little bits of knowledge you earned over years melt into pushing a button.
I might just be the artisan cobbler watching factories rise during the industrial revolution. Making good boots was and is still hard and requires a lot of specific knowledge, but the amount of people appreciating well-made boots plummeted as factor-made, cheaper boots flooded the market.
And I know, rationally, that the line of "what is hard" is just moving. There are great industrially-made goods the same way there are great products whose code is mainly AI-generated. Like good boots, building safe, scalable, distributed systems is still hard.
But I can't help but have some nostalgia for how things were pre-AI. Work felt more honest, the skills I spent years building felt more valuable, and I was more satisfied at work.
I enjoy my work much more with AI. My least favourite parts of software engineering are the parts that AI is the best at. Never again will I have to manually insert ten debug statements, or git bisect to figure out where an issue started, or fix a dozen merge issues that are obvious but tedious. These aren't even the thinking parts of AI, though I do use those too. Just the mechanical tedious work that Haiku could do make my workday so much easier.
“But I can't help but have some nostalgia for how things were pre-AI. Work felt more honest, the skills I spent years building felt more valuable, and I was more satisfied at work.”
I am 25 but as someone who came into this field very passionate and competent, this was my initial reaction and it sat uncomfortably with me for many months. I still have nostalgia (mainly from a younger age). On work feeling more honest, I think this is a result of an institutional attack on software engineering rather than a new reality of these tools. Like what happens to many other labor forces in history as you mention with artisan cobblers. In some ways it is a consequence of technology but it definitely also weaponized to hurt labor and consolidate power.
In the case of AI-assisted coding, this manifests in a culture of distrust and disrespect toward engineers, both from the bottom-up and top-down. Managers will devalue their engineers by using AI to bypass them. Peers and reports will use AI to exaggerate progress in lockstep with management. No is no longer an easy vocabulary choice when dealing with power because previously technical prowess was definitive, now it can be made “advisory”. I think this is very wrong and stupid but the market can be irrational longer than you can be solvent or something like that.
I still think it is though, that technical knowledge is still supreme. Maybe this is a cope but I find AI tooling very empowering (minus the walled garden nature of it which can be mitigated through local usage but this is problematic in its own regard). Management, pundits, and tech CEOs can frame it however they want but I feel more technically capable than at any point of my technology journey. Not at work, not in academia, but objectively from me knowing myself. We can do more in less time if we know what to do.
I think your take is very balanced and true. I've also never felt as technologically capable as I do now.
I guess the most annoying part to me is the expectation of producing a multiple of the output in the same time, when what I really enjoy is the process of slowly making things.
> I still think it is though, that technical knowledge is still supreme.
Ultimately, the ability to get results is what matters most. I've seen quite a few AI maximalists who have Claude mass-produce a bunch of things that nobody needs and then have something running on autopilot that doesn't need to be running in the first place.
The problem with this thinking is that every shoe cost effort to make. Software takes that much effort to make once, and then it can be duplicated for free whether it's awesome or crap. It isn't the same economics.
I think it mostly got harder? You had relatively clearly defined paths to build a skill that would be valuable. And now you don't. So the skill that you need to learn now is, roughly, figuring out what to do when nobody tells you what to do.
I disagree with the article a lot. Solving problems because easier yes, the size of the problems became bigger. What I can do now with an LLM is magnitudes larger than I could've done alone.
What will always be hard and useful is to observe people, find a problem they haven't solved, and then solve that problem for them. AI has not, and will not, make that easier or less useful.
All these analogies are just bad. If we are going to live with LLMs, let's reason from first principles. 'It feels like we're just going to be left with analogies'.
> I legitimately think this will be the biggest sociopolitical issue over the next few years. The frustration of seeing your hard work getting one-shotted.
Very limited thinking about challenges that are derivative to this time in history.
These used to be hard things that the author listed, and a potential next evolution from 1 minute of abstract thinking on my own:
1. "Building a financial model to compare recent S-1 filings?" - Build a bigger model to do a larger and hopefully more accurate/conclusive model.
2. "Photoshopping recent presidents onto Mount Rushmore?" - Make a physical model of recent presidents on mt Rushmore.
3. "Turning this essay into a song in the style of 2000's Hip Hop?" - Make a song that people actually give a shit about.
Like cmon folks, none of these seemingly hard things were actually all that useful for humanity, but rather just a task that was put in front of us because of the environment we were/are in.
Pre and post ai-boom; most software I interact with is dog shit. Not much has changed there other than speed.
The written word went from the domain of elites to the common man in a short space of time after the printing press was invented. Today, the barrier of entry for authoring is so low, that people are self-publishing.
I'm seeing the same thing in software. The people who used to ask you to add functionality X, are now giving it a tentative go. It's not perfect, but the progress I've seen in just the last year makes me believe it will get to "good enough" to run a business on.
I think there should be honesty about what "Doing" some of these things means. Outsourcing is "doing" IFF you regard the end product as the sole meaningful or significant part of a given goal or process.
"Have your digital slave do it for you" is not really doing it if doing something and difficulty refers to your own action, and there's a gradient between that extreme and manually grinding rocks to make silicone wafers. I did not just refactor a bit of code, something did it for me. I cannot take ownership for something I didn't actually sodding do, no amount of semantic dishonesty changes this.
Ultimately I am not going to listen to someone who has """""done""""'" a hiphop cover of their history test if they put it into some software that automated 80+% of it from lyric to beat, and their decision-making amounts to 'fuck it that will do'. I'll absolutely listen to someone who has given it a real crack through means convenient and not, if it seems like they give a crap.
One of the fundamentally and widely accepted concept in learning science is the need for “desirable difficulties”.
Too bad that wiping that out in favor of convenience has been the fundamental business model of Silicon Valley since two decades.
LLMS productization is just the last and more egregious step in the wrong dorection.
If you're not finding it hard to write software any more, write more ambitious software.
I'm taking on massively more ambitious projects than I was just a year ago, and it's taking every inch of my skill and experience to do that.
Building software feels harder now, and I'm really enjoying it.
There's a neat / weird ladder that I keep seeing friends go through as they work through this.
- Volume. Kill the backlog! 8 agents in terminals, frantically!
- Ambition. Do the things you always want to do! You have the power!
- Clarity. Oh god I have to figure out what to do next.
That last one is honestly super-hard, but it's also the most valuable. Like, do you want to wake up every day and find new work, because you understand the machine better than everybody else? I know a bunch of people that love that stuff, but also a bunch that don't. I totally get that the transition is hard.
https://tern.sh/blog/volume-ambition-clarity/
This is the right take. I wouldn't dare to write a TypeScript compiler a year ago but now I'm trying it and I have to say this has taught me so much about compilers, Rust and performance overall that wouldn't be possible before. It's a lot of fun to embrace the new technology and do bigger things.
Doing this sort of project is giving me a glimpse of what it is going to be like managing software projects. As software engineers we have to learn how to manage much bigger changes and in a much higher level of abstraction. I personally don't think models are good enough for this level of automation yet but in a weekend that I had access to Fable I could see how things are going to change soon. Most of criticism towards LLM coding was not applicable to Fable. I'm not hyping anything, just an observation.
The DJ analogy is useful actually. I live in Berlin and essentially everyone is a DJ but only a few get to make money from it. The difference is of course taste but also grit and how well those people leverage available tools to them. A good DJ knows how to use the tools and has a good understanding of the market. Different skill that a musician but nevertheless a valuable skill
https://github.com/tsz-org/tsz
I live in Berlin and not everyone is a DJ. You just live in DJ circles. Everyone I know is a vulture capitalist. There's a lot of room for monetisation in this city.
Yes! And more projects. And you have the freedom to try and fail.
Was thinking of a comparison, cars are faster than walking. Imagine saying, no I prefer only walking. It is healthier than sitting in a car and your legs will atrophy. That is very much true (and we can see the consequences in car dominated societies). Nevertheless, for many industries cars are very important. You don’t say, I would rather carry all these pallets by hand rather than use a forklift.
LLMs are similar in my mind. They turbocharge your output in all senses but is less holistic than hand-coding. Like cars, you are making a trade off but I don’t think it’s fully a replacement. We still walk with cars in our lives. And we don’t eschew cars because they are “worse” for you than walking. We adapt and make tradeoffs
You only have as much freedom as you can buy from a handful of huge corporations.
Or download for free from half a dozen Chinese AI labs (at least for the moment.)
... or Google Gemma or Mistral.
Great as long as you have the flexibility to choose your own projects..
There's never been a better time to be independent of an employer!
Agreed, I don't know if it's going to stay like this forever, but right now, if anything, the difference is amplified. You can make unbelivable stuff happen through the sheer power of knowing what you're doing.
I feel the same. More projects, more ambitious projects. I would have not been able to even imagine sone of the things I am building now, not to talk about implementhing them alone.
What type of applications are y'all seeing from LLMs? Anecdotally the only thing that has changed for me is the ability to output more code. That's not software. My coworker is a 10x vibe-coder and his flagship application is held together with brittle shell scripts, a sloppy codebase, bad abstractions, piles of markdown files and an ouroboros of generated tests. This is not software. This is just held together with duct tape and a prayer. Although this guy doesn't have any traditional background but still, if LLM generated coding agents were so good even a simpleton like himself should be able to create a miraculous piece of software, right?
the 0x engineer became a 10x vibe-coder responsible for our CICD and vibe-coded testing that was previously manual
He's introduced several 100,000s LoC changes and additions in 10-15 codebases. There are some repos that only he works in ( so no PRs, just merge to master and be done ). He also has self-approved and merged changes without review (he's an admin)
Anyway, now he put in his notice and no one on his team knows how any of this works. We can't get code changes without CICD passing. CICD breaks all the time. The original contractor who made the CICD before him wants nothing to do with it now. We can't generate signed OTA packages.
He went from doing 'too much to finish anything' to 'made so many changes that he had to bypass PRs'.
Now he's leaving.
Engineers have been pointing out this bottleneck for the past year or so. The engineering managers aren't pushing it and the business owners either don't understand or don't care
Hah, ultimate vibe coder nightmare scenario. I wonder if, in six months time, there will be enough stories like this for sanity to prevail a little more.
Software has, with precious few exceptions, almost always been held together with duct tape and a prayer.
Yes I know. There's no nuance on HN. I was using it as a metaphor to show that this person has no idea what they're doing. Which is a huge difference from someone deeply knowing the codebase and tech it'll sit on to make an educated tradeoff. I've seen the duct-tape in real codebases and I knew the engineers who put it there and why. That doesn't exist when your senior engineer is a nebulous "idea of an engineer" that resets its memory every few hours.
The issue is not duct tape, the issue is having someone you can rely on to know what to tape.
People in the know are not suggesting engineers are no longer needed, but that they need to adapt.
Please explain this "adapting". The LLM sellers' holygrail is * you just need to crank our model bro *. With this mindset, there is no adaptation needed, save a couple of weeks of getting up to speed with nuances of using the models, the / commands and integration of their APIs into your workflow.
You gotta ignore what the LLM sellers are saying and listen to the people who don't have a financial incentive to sell a particular message.
> his flagship application is held together with brittle shell scripts, a sloppy codebase, bad abstractions, piles of markdown files and an ouroboros of generated tests
you just described lots of codebases at highly values companies. Plenty of places, maybe even the majority, do not care about code quality if the code results in a functional application.
I built an orchestrator connected to email, browser and payments, and it handles a ton of boring stuff like “pay electricity”, or “apt renters want something, deal with that”, or scheduling appointments, dealing with infoline chatbots and everything around that.
Plus navigating personal communication (what’s the address of friend X, who did I promise to go to a dance workshop with) and so on…
In essense, anything Siri promised to be, but really working.
Hi landlord, I lost my wallet and need a refund of last month's rent.
You're absolutely right!
[dead]
I remember C compilers becoming affordable, and GCC actually getting good.
I remember Java coming along, and how much easier it was to build compared to all the crazy linking and cryptic error messages my C compiler gave me once you went beyond a toy program. And god forbid you wanted it to run on BOTH Borland and visual C!
I remember CGI, and then PHP making it trivial to write web apps, and then less trivial webapps, and then webapps that people actually used in serious business.
Then I watched the same thing happen with Javascript.
All those rebuilds of the same foundations, making the same fundamental design mistakes again and again like a wheel of karma, but with prettier UX and less vendor lock-in.
And now, AI makes it even easier to re-make those mistakes. It's gotten "easier", but it's actually gotten harder. Making something that runs has never been more trivial. Making something with a solid architecture and disciplined hygiene has never been harder.
And so we begin round 4 of re-learning the lessons of the 1960s-1970s.
TBQH it used to be easy. I remember watching one person with Access set up dashboards that worked 1000x better than all of the dozen SAAS tools no one can wrangle together today. Small businesses pushed updates and menus from Frontpage. We used to spin up quick code on our calculators, meanwhile our much more powerful phones act like executing our own code is an act of terrorism.
LLMs (maybe) get us a little closer to closing the complexity gap and making our personal computers personal again, but with the funny problem of needing to use someone else's computer to do so.
> Turning this essay into a song in the style of 2000's Hip Hop? It used to be hard
Have you listened to the song he links? It's very convincing. If you were just casually listening to it in the grocery store, you wouldn't notice it was made by AI.
Very convincing indeed! I really want to know what AI made that, as I’m looking forward to creating personal/customized music in a similar way.
almost certainly suno
Yeah it was Suno, it's in the MP3 metadata on https://www.praf.me/audio/used-to-be-hard.mp3 :
Accessed with: Full output here: https://gist.github.com/simonw/f4d82c38bad0879acfcf54bd8e61a... - turns out Suno embeds the lyrics in the metadata as well.Maybe it’s just me but it’s still hard. Writing code wasn’t hard before. Honestly putting up guard rails is harder than writing it yourself. It just may be faster now.
Getting proper requirements, knowing what to make, update, the domain knowledge, satisfying customers was and still is the hard part.
I don't disagree, and I've heard this said a bunch, but to some degree it feels like cope. Writing code wasn't generally the barrier to success, but it was still a barrier. And for sure, it's not gone entirely, but in a way it was one of the fun parts, and it does feel like a big part of it is gone now.
Many of us have nostalgic memories about staying up late, in the zone, cranking out code until you manage to get something working. "Getting requirements", figuring out "what to make", "satisfying customers"... all as important as they always have been, but they just aren't fun in the same way.
As for domain knowledge, well, to a degree that's one of the parts that used to be hard and isn't anymore. Like the article says, many of us prided ourselves on having in-depth knowledge of network protocols, OS internals, whatever. Now you can just ask a bot for that stuff and, while it's sure not perfect yet, stand a solid chance of getting a good answer.
I don’t think writing code was ever hard. It’s basically the same level of difficulty as learning to write sheet music, a foreign language, or mathematical formula. Same with basic computer concepts.
The hardest part is the formal logic, recursive reasoning, and how to abstract. It’s a thinking mode that some find difficult to adopt.
As for domain knowledge, I don’t think that has ever been difficult to obtain. Just behind me, I have the CLRA Algorithms book, and that has pretty much everything you may need in that regards. Same with various other types of knowledge. And with Youtube, you can easily find visualizations if books do not work for you.
I’ve taught people how to code and they can grasp concepts quite easily. It’s the thinking aspect that they have trouble with. Meticulously thinking about every computation path, categorizing errors and handling them is not something a lot of people like.
> It’s basically the same level of difficulty as learning to write sheet music, a foreign language, or mathematical formula.
I mean, all of those are pretty dang hard. Maybe you're just particularly skilled (genuinely, no shade intended), I certainly couldn't do any of those without a significant level of effort.
I'd also personally consider "formal logic, recursive reasoning, and how to abstract" as parts of writing code, as the other commenter said. And while AI certainly isn't at the point of "solving" those yet, it's a heck of a lot closer than we were a few years ago.
And sure, you can always obtain domain knowledge, but the whole point of knowing it is that you can see approaches other might not, answer questions quickly, etc. And a lot of this is still relevant post-AI, but it does feel like a lot of it has been lost. It feels like implying that search engines weren't a major upgrade to research because you could always just go to the library and look through books to find your answer - sure, but googling a question is a lot easier! And chatbots just feel like an upgrade from that.
Interesting - I’ve been thinking that when people say “writing code” they mean figuring out abstractions, logic, reasoning.
Without that, what’s left? The syntax?
Realizing we might not all have the same thing in mind when someone says “writing code was never hard/easy” is making a lot of other comments I’ve read here make more sense!
Writing code, IMO, is mostly the typing. AKA the syntax and whatever libraries/platforms you’re using. They are incidental to creating a software solution to whatever problems. It requires rigor, but it’s not particularly difficult.
Abstractions, logic, and reasoning is not helped by AI tools. Yes they can give you a ready-made solution, but you’ll need to exercise judgement to see if it really fits the problem. And doing the latter can be as hard as just doing it yourself.
I would agree with that. Whenever I’ve delegated more than what feels like ~80% to the agent (“vibe coding”, I suppose) is when it starts feeling bloated, messy, and bug-prone.
On the flip side, having a design written ahead of time, ideally with reviews by peers and AI and as little as possible AI “content”, seems to almost always go well.
Obviously very subjective!
Hard is relative. The Apple IIe could do roughly a half-million instructions per second. Yet, application develop was long and tedious. Layers upon layers of abstraction requires more powerful CPUs, but translated into highly complex applications and user interfaces. What if we could use the LLM tools we have now to go back and see what is possible with older machines?
For example: The Python print('A') statement translates into thousands of lines of assembly (using mostly compiled libraries). The actual minimum assembly to generate a print statement is less than a hundred. Claude code can do this:
>>Generate the minimum amount of assembly code to obtain the same result as print('A') in Python.
The result is 43-bytes of machine code (it works, unsurprisingly). Claude estimates that Python requires 5 megabytes of compiled libraries to get print('A') to work.
I disagree that something becoming easier is a negative, even if it sucks for the people who learned the hard way.
The real issue is that the floor has been lowered, but the ceiling stays as high. It's always been a problem in this profession, where you can get something running much easier than you can make something safe, maintainable and ethical.
We keep making it easier and easier to disregard those extras. Both technically and culturally. It's not a good path.
> This might be why despite AI automating so much work, the 996 grind culture is more alive than ever.
There's an interesting paradox which occurs when a particular field finds its work becoming easier. Suddenly, the world needs more of everyone else's job and less of your job. You have to work harder now that there's less work to do, because there's more competition.
Or, the world needs more of your field because it's now cheaper.
I've often heard of house painting as an example of this. It used to take a crew of 8 with buckets, paintbrushes, and ladders to repaint a house. Then paint rollers came along and it got easier. Then sprayers came along and it got even easier. Costs fell, so now people want their houses painted far more often. Landlords now nearly always fully repaint apartments between tenants. As cost fell, painting demand rose.
It's maybe much easier to create code, but it's still hard to create good software, and for the next few years we have a monumental challenge of figuring out how does one create good software when cost of code is approaching zero. It will be harder to decide what to build (or what to not build), increase the velocity, even if only for infosec patching, make use of increased velocity for features, massively increase experimenting capacity, and close the biggest loop. Even the best teams now are barely scratching the surface of what tomorrow brings, and it's super exciting, interesting and definitely not easy. It will be hard, but not in the part that was hard before.
I think emotions are an underrated aspect to the "AI changes how we work" thing. Everyone I know extensively uses AI in most parts of their work. Basically everyone has multiplied their output by a lot.
But I don't know many people who say they enjoy their work more because of AI. I definitely resonate with the pain of watching something that required so many little bits of knowledge you earned over years melt into pushing a button.
I might just be the artisan cobbler watching factories rise during the industrial revolution. Making good boots was and is still hard and requires a lot of specific knowledge, but the amount of people appreciating well-made boots plummeted as factor-made, cheaper boots flooded the market.
And I know, rationally, that the line of "what is hard" is just moving. There are great industrially-made goods the same way there are great products whose code is mainly AI-generated. Like good boots, building safe, scalable, distributed systems is still hard.
But I can't help but have some nostalgia for how things were pre-AI. Work felt more honest, the skills I spent years building felt more valuable, and I was more satisfied at work.
I enjoy my work much more with AI. My least favourite parts of software engineering are the parts that AI is the best at. Never again will I have to manually insert ten debug statements, or git bisect to figure out where an issue started, or fix a dozen merge issues that are obvious but tedious. These aren't even the thinking parts of AI, though I do use those too. Just the mechanical tedious work that Haiku could do make my workday so much easier.
“But I can't help but have some nostalgia for how things were pre-AI. Work felt more honest, the skills I spent years building felt more valuable, and I was more satisfied at work.”
I am 25 but as someone who came into this field very passionate and competent, this was my initial reaction and it sat uncomfortably with me for many months. I still have nostalgia (mainly from a younger age). On work feeling more honest, I think this is a result of an institutional attack on software engineering rather than a new reality of these tools. Like what happens to many other labor forces in history as you mention with artisan cobblers. In some ways it is a consequence of technology but it definitely also weaponized to hurt labor and consolidate power.
In the case of AI-assisted coding, this manifests in a culture of distrust and disrespect toward engineers, both from the bottom-up and top-down. Managers will devalue their engineers by using AI to bypass them. Peers and reports will use AI to exaggerate progress in lockstep with management. No is no longer an easy vocabulary choice when dealing with power because previously technical prowess was definitive, now it can be made “advisory”. I think this is very wrong and stupid but the market can be irrational longer than you can be solvent or something like that.
I still think it is though, that technical knowledge is still supreme. Maybe this is a cope but I find AI tooling very empowering (minus the walled garden nature of it which can be mitigated through local usage but this is problematic in its own regard). Management, pundits, and tech CEOs can frame it however they want but I feel more technically capable than at any point of my technology journey. Not at work, not in academia, but objectively from me knowing myself. We can do more in less time if we know what to do.
I think your take is very balanced and true. I've also never felt as technologically capable as I do now.
I guess the most annoying part to me is the expectation of producing a multiple of the output in the same time, when what I really enjoy is the process of slowly making things.
> I still think it is though, that technical knowledge is still supreme.
Ultimately, the ability to get results is what matters most. I've seen quite a few AI maximalists who have Claude mass-produce a bunch of things that nobody needs and then have something running on autopilot that doesn't need to be running in the first place.
The problem with this thinking is that every shoe cost effort to make. Software takes that much effort to make once, and then it can be duplicated for free whether it's awesome or crap. It isn't the same economics.
That's true. Although how the product is sold doesn't necessarily affect how we enjoy working on it imo.
You can love writing code and working on tricky projects the same way you can love hand-making boots.
You can love managing an agent swarm the same way you can love managing a shoe factory.
I was talking about enjoyment of the work, not the economics of it.
I think it mostly got harder? You had relatively clearly defined paths to build a skill that would be valuable. And now you don't. So the skill that you need to learn now is, roughly, figuring out what to do when nobody tells you what to do.
I disagree with the article a lot. Solving problems because easier yes, the size of the problems became bigger. What I can do now with an LLM is magnitudes larger than I could've done alone.
I think the hard problems are still hard.
I think the problems used to be easy and here we are.
Its still really hard to build large, secure and maintainable systems.
idk how many articles I have seen as variants of this but
what you do when things get easier is... go try something more difficult
If before it was hard to build one software thing
And now it's easy but building 10 software things is hard (or some other kind of new software thing)
Then you build the 10 or new hard software thing
Satisfaction restored?
What will always be hard and useful is to observe people, find a problem they haven't solved, and then solve that problem for them. AI has not, and will not, make that easier or less useful.
All these analogies are just bad. If we are going to live with LLMs, let's reason from first principles. 'It feels like we're just going to be left with analogies'.
> I feel like an old rock and roll guitarist watching a DJ sell out a stadium.
Now it is too easy. I started garage band with my flatmate, we sell out stadium every weekend. Single ticktock short gets us million views.
Why people complain today? Just live celebrity life!
> I legitimately think this will be the biggest sociopolitical issue over the next few years. The frustration of seeing your hard work getting one-shotted.
Man, what a narrow world view.
Well if you’re a talentless hack this is all mostly awesome
Very limited thinking about challenges that are derivative to this time in history.
These used to be hard things that the author listed, and a potential next evolution from 1 minute of abstract thinking on my own:
1. "Building a financial model to compare recent S-1 filings?" - Build a bigger model to do a larger and hopefully more accurate/conclusive model.
2. "Photoshopping recent presidents onto Mount Rushmore?" - Make a physical model of recent presidents on mt Rushmore.
3. "Turning this essay into a song in the style of 2000's Hip Hop?" - Make a song that people actually give a shit about.
Like cmon folks, none of these seemingly hard things were actually all that useful for humanity, but rather just a task that was put in front of us because of the environment we were/are in.
Pre and post ai-boom; most software I interact with is dog shit. Not much has changed there other than speed.
This is simplistic. The hard part of writing professional software has never been the code.
All the remaining problems still exists and I dare to say they were made worse.
Whilst you're writing "professional" software, people are publishing to app stores and earning money.
Wtf, it's still hard (wo)man, or are you just dropping your vibe coded stuff onto your customers and call it a day?
I for one still understand what I'm making and strive to be able to converse about it intelligently with anyone interested.
Of course I also use LLMs all day, but it's not like anyone can suddenly do my job to the same standards.
I have bad news about the demand for DJs.
The written word went from the domain of elites to the common man in a short space of time after the printing press was invented. Today, the barrier of entry for authoring is so low, that people are self-publishing.
I'm seeing the same thing in software. The people who used to ask you to add functionality X, are now giving it a tentative go. It's not perfect, but the progress I've seen in just the last year makes me believe it will get to "good enough" to run a business on.
I think there should be honesty about what "Doing" some of these things means. Outsourcing is "doing" IFF you regard the end product as the sole meaningful or significant part of a given goal or process.
"Have your digital slave do it for you" is not really doing it if doing something and difficulty refers to your own action, and there's a gradient between that extreme and manually grinding rocks to make silicone wafers. I did not just refactor a bit of code, something did it for me. I cannot take ownership for something I didn't actually sodding do, no amount of semantic dishonesty changes this.
Ultimately I am not going to listen to someone who has """""done""""'" a hiphop cover of their history test if they put it into some software that automated 80+% of it from lyric to beat, and their decision-making amounts to 'fuck it that will do'. I'll absolutely listen to someone who has given it a real crack through means convenient and not, if it seems like they give a crap.
It used to be hard, now it is soft! My wifes boyfriend has it much harder now!
One of the fundamentally and widely accepted concept in learning science is the need for “desirable difficulties”. Too bad that wiping that out in favor of convenience has been the fundamental business model of Silicon Valley since two decades. LLMS productization is just the last and more egregious step in the wrong dorection.
> feel like an old rock and roll guitarist watching a DJ sell out a stadium.
> Is it bad that the barrier to entry for a DJ is lower? No
Lets set very modest goals, not selling out stadiums, just making median income, so you can buy a house and raise family.
It is much much much harder now! DJ is not even paid profession anymore! Actually maiking money is impossible. This field is impossible!
> we are not enough as people and worthy of good things.
That is totally true for like 90% of population. Not some sort of feelings, but based on response stats from job sites!
[dead]
[flagged]
It needed to be said
Thanks, worth the downvotes. Damn, flagged even, that's a bit much for a modest attempt at humor.
It is just old age. When you are young, it is hard. It gets softer as you get old. But i can ensure it is hard for young generation.
Perhaps cut drinking, and it will get hard again!