Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Hopefully people will tell me why I'm wrong, but right now programming is just feeling like a bit of a dead end in general? The demand seems to be for AWS gurus, data analysts, low-code, prompt engineering etc. I'm not against learning new things to stay employable, but the new things that are in demand don't really seem to be programming. I learned a bit of Rust because it's kind of new(ish) and exciting, but apparently there's a massive glut of Rust devs. Whereas 15 years ago I learned Python and my employment prospects rocketed.


The nature of the majority of programming work now is not enjoyable IME.

Seems the majority of work is overly complex (in terms of "system design") CRUD stuff that uses whatever constellation of "Services" are cool this month, and "solving problems" that Ruby on Rails or ExpressJS solved like ten years ago, but now with way more yaml configurations and and other imposed complexity for dubious gain and benefit.

The new hyper focus of LLM chatbot hype isn't helping either.


There's two things going on. One is, yes, I think the quality of work mostly sucks all over.

But the other is it's a down part of the cycle and there's just a glut of us all, and a bit of disrespect from employers as well.

It's been a long time since we had one, and many people either didn't work through one before, or have forgotten.

That part will bounce back. In 5 years it'll be a crazy job market again, and having Rust on your resume will be valuable.

(To put it in perspective, I learned and wrote Python in 1996, 1997. And I really liked it. But nobody even knew what it was, and nobody would hire for it. I moved on, and lost my taste for dynamically typed languages, and then all the sudden Python was huge, and if I'd stuck with that, it would have been a big thing for me, I guess. I suspect a similar thing will happen with Rust, etc. At least I hope so, since Rust is my day-job :-) )


Work is work and always has it's plusses and minuses.

But, yes, even if the tech cycle isn't terrible at the moment (e.g. dot-bomb nuclear winter) it's definitely down. I somewhat regret effort and money I put in a couple of years ago to get myself setup to do various stuff post "retirement" because, while I haven't exactly been beating the bushes, opportunities haven't been falling off trees either.


What is it that you want to build? I mean if you frown upon AWS gurus, analysts and low code?

Programming for the sake of "writing code" is probably going to miss the target.

For example "analyst". My take is that is where it all started. Someone looking at numbers and needing computers to help making sense of them.


> Programming for the sake of "writing code" is probably going to miss the target.

Why do you have to be so demeaning?

I'd argue almost nobody is "writing code for the sake of writing code". In my case I love solving problems with code. Not by clicking through AWS' terrible website. Not through taking a deep breath and trying to reformulate a ChatGPT prompt for the 17th time.


> Not by clicking through AWS' terrible website.

Most places with a decent level of engineering maturity are using some form of infrastructure-as-code (Terraform/OpenTofu, Cloudformation, etc). Though more broadly speaking, it's true that software developers are now frequently expected to move beyond just compiling a JAR file and calling it a day. Expectations of knowledge of the underlying infrastructure that's running your code and how to operate it is more common than it was 15 years ago. I consider this a good thing overall though.

> Not through taking a deep breath and trying to reformulate a ChatGPT prompt for the 17th time.

I don't know anyone who's doing this at their programming job. GenAI is really good at 1) acting as an enhanced, customizable StackOverflow replacement for specific one-shot algorithms ("given a pandas dataframe with these columns, write code that groups by X and gets the median of the top 3 values"), and 2) pumping out boilerplate code that wasn't interesting to write anyway, like object mappers and certain unit tests. The tougher problems around software architecture, class design, and the trade-offs are still fully in the realm of humans, for now.


> Though more broadly speaking, it's true that software developers are now frequently expected to move beyond just compiling a JAR file and calling it a day.

And you are demeaning as well for no reason. I even went out of my way to clarify I like SOLVING PROBLEMS WITH CODE, not "just compile a JAR file" which you conveniently ignored and pushed your narrative. Not cool, dude.

> Expectations of knowledge of the underlying infrastructure that's running your code and how to operate it is more common than it was 15 years ago. I consider this a good thing overall though.

I don't deny it on the premise but again, most vendors want to lock you in so their UX is terrible and specific. I had much more fun making scripts and cookbooks that setup a VPS for my customer's app. Nowadays this has been mostly remedied by Dockerfiles though integrating with k8s and its 5000+ friends is making me want to retire for the next 3 lives.

> I don't know anyone who's doing this at their programming job.

I don't do it either but I've met plenty of "programmers" who do, and swear by it, even though they had to chase 2-3 subtle bugs that took them 12+ hours to find and correct... whereas just writing those 150-200 coding lines would have taken them 4 hours tops, tests included. It's quite funny.

---

My bigger comment here was to criticize the very weird direction the area is trying to go to. It will fail btw. Marketing people are pushy and get their way... INITIALLY. Sooner or later reason prevails.


> Not by clicking through AWS' terrible website

Look into IaC (infrastructure as code) which all major clouds, and even smaller clouds support. Much more sane way of managing resources.

> trying to reformulate a ChatGPT prompt for the 17th time

Is the company mandating you use AI to solve problems... or? Anecdotally I don't use AI very much at $DAYJOB, nor do any of my co-workers.


> Look into IaC (infrastructure as code) which all major clouds, and even smaller clouds support. Much more sane way of managing resources.

No, sane way is automating it 100% with zero UI required. But you do you.

> Is the company mandating you use AI to solve problems... or? Anecdotally I don't use AI very much at $DAYJOB, nor do any of my co-workers.

As mentioned in a reply to your sibling comment, I don't do it because I was sure from the get go that it will only get some algorithms right, and only for the most popular languages, and I was on point. But I had fun watching colleagues banging their heads against the wall many times.

And again as per the reply to the sibling comment, I was commenting on the general "future" state of the area.


> sane way is automating it 100% with zero UI required

Umm... that's what IaC is for, you write resource blocks in a file then use a command to deploy said resources.


>No, sane way is automating it 100% with zero UI required. But you do you.

Infrastructure as code means text, not a UI. Please Google the things people are suggesting before getting confrontational


Don't you still have to prepare stuff in the vendor-locked UI beforehand? Or is it much better these days?


I'm turning 50 in a few months. I still enjoy coding; and I expect to be coding for another few decades.

One thing I figured out early on is that your choices in languages and tech really matter. There are only so many things you can learn and you have to make some educated bets on things getting traction or not. And if you make the right bets, it's easier to keep your skills fresh and relevant.

Some things look fancy and nice and then five years later it's all outdated and obsolete. And some other things go big. Java was one of those things and in 1995, when I was in university, they decided to use it for teaching programming to first year students. So I ended up being a teaching assistant and now have nearly thirty years of experience with the JVM ecosystem.

I recognized the signs of the platform and language (especially) going a bit stale about fifteen years ago. It's becoming the Cobol of my generation (plenty of work but not the kind that gets me excited). I realized I needed to move on if I wanted to stay relevant. Since then I've touched a lot of languages. Right now, I do a lot of Kotlin but I keep an eye out for new things. Kotlin was a bit of a bet ten years ago. I fully committed to mastering it six years ago. And at this point it's starting to feel like a good bet. The language is modern, has a lot of momentum and there's lots of interesting stuff happening with the language, compiler, tools, etc. Particularly multi-platform is opening up a lot of possibilities.

I've dabbled with other things along the way but never really got the feeling that mastering that stuff was worth my time. E.g. Ruby was interesting but it's now mainly used by people in their forties (i.e. my age). Younger generations seem to not be interested in it. Same with things like Scala. Lots of stuff still happening with both of course but it seems that they are both a bit past their peak.

Python on the other hand keeps surprising me by not getting replaced with something else. I kind of like the language and have done some things with it over the years. And I like that they are clearing out technical debt (like the GIL) and keeping the language fresh. I work with some twenty year old interns that know and love it. People will be doing Python long after I die. That's a bet I didn't make but it would have been a good one. And not too late obviously. I know enough python to be able to jump in a project and use it. I've done so on a few projects in recent years. It's a very approachable language; kind of by design.


> [Java] I recognized the signs of the platform and language (especially) going a bit stale about fifteen years ago.

Java has become a lot better. It was always a boring, but easy to write, easy to debug, easy to build with language, on purpose. That was the selling feature, so that finding developers was easy. It purposely didn't move quickly, or adopt the latest fasions, waiting them out to see what stuck and adopting later.

Ok, so what? Well, Java has started to evolve more quickly with the new development cycles. I still write Java. We easily deal with null safety, we have a good build system, we have a monorepo, we don't (often) have dependency hell. Most of our code runs on ZGC and we don't think too hard about garbage, because ZGC is so damn fast. Our hotpath is different. We think very carefully about GC and memory access etc on the hotpath. And we have one language, covering both types of coding, in the same repo, the same build, the same tooling, the same monitoring, deployments, etc etc.

Java is a real workhorse and is becoming nice to work with too.


Have you played with Go?


Yes, IMHO a bit of a downgrade relative to Kotlin.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: