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.
21–30 of 102 posts
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.
"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.
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.
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.
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
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.
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.
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.
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 so…
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.