this post was submitted on 28 Jan 2025
67 points (95.9% liked)
technology
23495 readers
393 users here now
On the road to fully automated luxury gay space communism.
Spreading Linux propaganda since 2020
Rules:
- 1. Obviously abide by the sitewide code of conduct.
Bigotry will be met with an immediate ban
- 2. This community is about technology. Offtopic is permitted as long as it is kept in the comment sections
- 3. Although this is not /c/libre, FOSS related posting is tolerated, and even welcome in the case of effort posts
- 4. We believe technology should be liberating. As such, avoid promoting proprietary and/or bourgeois technology
- 5. Explanatory posts to correct the potential mistakes a comrade made in a post of their own are allowed, as long as they remain respectful
- 6. No crypto (Bitcoin, NFT, etc.) speculation, unless it is purely informative and not too cringe
- 7. Absolutely no tech bro shit. If you have a good opinion of Silicon Valley billionaires please manifest yourself so we can ban you.
founded 4 years ago
MODERATORS
There are certainly bad programming jobs, but programming jobs in general are extreme labor aristocracy. Yes people are chasing the bag, but they're certainly not "survival jobs". Within the system until you reach senior levels is no real discriminator between "bag chaser" and "person who is trying to learn", both these are going to get squad wiped.
There's certainly still going to be a path to being a SE. But it's going to be autodidact hobbyists who start extremely young. As a person who has been running Linux since 5th grade, who got a CCNA at 16, who has only had programming or network jobs since high school, this is the worst path because the reality of the career at scale murders your passion. If I don't age out I'm betting my next 10 years are going to be uncomfortably close to Player Piano, and that's something that's entirely dreadful. Instead of teaching juniors to program at scale while giving them boring CRUD tasks, I'll be communing with machine spirits so "they" can generate the basic crud endpoints and the component screens.
The reality of being a greybeard is that if you're close to retirement in this industry like my dad is, you're gonna do the same shit jobs as the bag chasers. They'll stick you in the basement and steal your stapler if you even make it past the vibe check interview. The only way to avoid this is to be a lifer somewhere, but that in itself is a challenge.
The difference between the previous developments and now, is that it may improve productivity now in your case and the case of the 1000 juniors, but tomorrow it's going to actually undercut demand for people. Building a system that builds and deploys applications has been the goal of several public and private projects I've been privy to. I agree this exact use-case that you linked is an example of a way to not have to learn ANTLR or how an AST works and flip a coin if it works. In practice though, this is step 1. Code generation has improved significantly in the last year alone across the whole LLM ecosystem. The goal isn't' to write maintainable code or readable code, the goal is to write deploy-able code with 90% feature coverage. Filling the last 10% with freelancers or in house engs. depending on scale. To me that's a worse job than the job I have now, at least now I can teach others how to do what I do. If that's taken away from me I'm not fucking doing this job anymore. I don't care about computers because in reality this job at scale is about convincing morons to stop micromanaging how you build things.
What you're afraid of is precisely what was tried with outsourcing dev jobs. That proved to work in some areas where you have very boring crud apps, but was a complete failure in others. I expect LLMs are just going to work out in a very similar fashion.
Meanwhile, the most enjoyable coding I've done was never done for money. If anything, I can see AI taking over work turning programming away from being a career and into a way for people to express themselves artistically the way you see with demo scene, live coding, generative art and so on. I don't see that as a bad thing.
Okay but like again, I'm not afraid of losing my job. I'm afraid that we're going to lose real capability as a society. It's how our oligarchs are practically morons compared to past oligarchs who built hundreds of libraries, or how we don't have the real capacity in the US to build rail.
I'm currently working as a platform architect coordinating 5 teams over multiple products building a platform for authoring, publishing and managing rich educational courses across multiple different grade levels. I do most of the greenfield development still, I personally manage a DSL and tools for it, while figuring out platform requirements and timelines for other teams including my own. I used to work on a real time EEG system doing architecture and signal processing. I've architected and implemented medical logistics platforms. I've been a first engineer at a couple of startups. I've literally written purpose built ORMs, schedulers, middleware frameworks, and query frameworks from scratch. I've worked at almost every major common role at a principal level except security (which is mostly fake) and embedded so front end, back end, database optimization/integration, infrastructure, machine code on JVM and X86, and distributed computing. I haven't work in niches like networking, industrial, ML or quantum, I'd only really want to explore quantum or networking in reality. But quantum is something you typically need PhDs for otherwise it's gonna be a bit grunty. OSS may bring up engineers for some of these roles, but in practice the majority of OSS projects don't reach the level of complexity that I've worked at -- the ones that do aren't community projects they're corporate ones.
Very few people can step into my shoes, most principal engineers I've met average out at a large project where they implemented a strangler once or twice. The system currently has a hard time reproducing me, if the bottom falls out it's gonna be good game. I'm happy that LLMs are helping you rediscover your passion, but the kind of stuff you're talking about are toys. Personally they're not fun, they're mostly boring, I enjoy building large technical systems in complex problem spaces in a high level reproducible way. Everything else gets stale quickly. I've built out systems where if you blow on the code the tests turn red without test maintenance and creation being a burden. The goal was high value test in 5 minutes in that system. The future I see is that everything is just shittier because the skill that is hard to find and is dying is understanding the essential complexity at the 10,000 ft view, the 100 ft view, the 1 ft view, and the 1 micrometer view. I can barely find developers who can innately understand essential complexity at one of those view points. I've met about 20 who can do all 4 and I've met maybe like 400-ish devs in my life.
The only passion project I wanted to start I basically decided to call off because if successful it would be bad for the world. I wanted to build a high level persona management software that could build swarms in the tens of thousands without being discovered.
If LLM removes programming as a job, might be nice, but in practice it's just gonna mean more people on the struggle bus.
Hey so I read your comments and found them insightful. Me being a Software Engineer who just started his first job, what would be your advice for the right approach to grow and learn as a software engineer? Both in general and with respect to using LLMs while learning/coding.
The US has far bigger problems than LLMs to worry about in the near future. Personally, I'd be far more worried about the rate of deindustrialization in the states, lack of people who know trades, engineers, farmers, and so on. All of that is far more crucial than the software industry. Meanwhile, even if people started losing this expertise, it's not like it can't be learned again if needed. The whole software industry has only existed for a handful of decades, and society got on just fine before it appeared. This is just complete hyperbole I'm afraid.
What I think is most likely to happen with serious engineering going forward is that the human aspect of the work will shift towards writing formal specifications that encode the desired constraints for the system, including things like memory usage, runtime complexity, and so on, and then having LLMs figure out how to generate code that passes the spec.
Incidentally, you can do this stuff without LLMs as well, for example Barliman is a program synthesis engine that is able to take a signature for a function and figure out an implementation, it can even compose functions it already wrote to solve more complex problems. Combining something like that with LLMs could be very effective.
I see this is as a similar advancement as creation of high level languages. Plenty of people moaned that nobody learned assembly anymore when C showed up, and making very similar arguments to the ones you're making. Then people started moaning about garbage collection, and how you weren't a real programmer if you weren't managing memory by hand. Every time a new technology comes around that makes programming easier and more accessible, there are inevitably people screaming that the sky is falling. LLMs is just the latest iteration of this phenomenon.
And more people struggling on the bus because we have more automation is a result of capitalist relations. That's where the ire should be directed.