Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
58% Positive
Analyzed from 3875 words in the discussion.
Trending Topics
#hard#more#software#code#still#same#easier#don#making#something
Discussion Sentiment
Analyzed from 3875 words in the discussion.
Trending Topics
Discussion (74 Comments)Read Original on HackerNews
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.
- 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/
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
Maybe, but the author's DJ analogy in the post was rather off the mark. Skill-wise, DJing is actually a perfect example of "it used to be hard" in pretty much every aspect -- beatmatching on vinyl, mixing in key, discovering new records, building and reaching a fanbase, getting distribution for mixes, physically carrying tons of records around and sometimes getting them stolen or damaged.
If everyone is a DJ now, it's because software and technology has made it so much easier than it used to be. Although to be clear, I completely agree with your comment on how successful DJs are the ones who leverage modern tools and understand the market.
But in terms of the analogy in the original post, the author is making some weird comparison between guitar players and DJs, which is totally apples to oranges... not to mention that selling out stadiums solo has never been easy for anyone, regardless of year or whether you're a guitar player or a DJ.
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
... or Google Gemma or Mistral.
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
I think that's software. It's not good software, but it's software.
This perspective feels a bit like a chef insisting McDonalds or frozen dinners aren't food. It's mass produced, unoriginal, and typically soulless, but it's still food. As Scott would say, maybe a map vs territory discussion.
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.
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.
You're absolutely right!
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.
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.
Getting proper requirements, knowing what to make, update, the domain knowledge, satisfying customers was and still is the hard part.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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 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 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.
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.
It's almost like a reverse doomer-doomer-ism. I'm terribly sad because others don't see the value in this thing I grew to value. It is very New York hipster.
I think the problems used to be easy and here we are.
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?
Man, what a narrow world view.
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!
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.
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.
All the remaining problems still exists and I dare to say they were made worse.
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.
"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.
> 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!