Hacker News new | ask | show | jobs
by debacle 4646 days ago
I have a hypothesis. Is it possible that the people who talk with wide-eyed wonder about programming after doing it for ten years and the passion that they have for writing software haven't come to appreciate the banality of almost every problem that they're going to be asked to solve in the software space? If you find putting together CRUD apps and laying out contact forms challenging and engaging after ten years, you may lack the mental capacity to really appreciate and understand why programming is terrible.

The reason open source software exists is because programming is terrible - if programming were the digital orgasm that these people pretend it is, people wouldn't have been bitching for years about how bad the open source ORM they're using is - they would have rewritten it already, twice.

Programming is a menial mental task for anyone with the capacity to properly abstract their real world problem into a solution that a computer can understand, with a few bits of crunchy debugging on top, that has no reward on its own.

We program, not because it is fun, challenging, or fulfilling, but because it is morphologically necessary for our continued existence as solution creators and problem solvers.

90% of the time spent programming is a slog. All of the enjoyment comes from the 10% of time spent solving cool problems, but more and more as open source technology gets better, sturdier, and more engrained into IT, the 10% problems are being solved before ldconfig is done doing its thing, and so you're left with 95% slog or 98% slog.

Are there domains where programming is still hard? Most definitely, but for most programmers programming is no longer drole.

8 comments

Oh please. I have a theory about people who talk with patronising disdain about how programming is easy and you can do everything with open source already. Work is work, if it was all fun you wouldn't get paid for it.

If most programmers want a challenge in their day job they could try learning how to communicate or how not to assume that everyone else is an idiot or even try and improve the processes their team use so that everyone benefits.

The biggest problem I find programmers coming up against is cummunication and understanding and yet 95% of them would rather point out how their immediate coding problem isn't challenging enough to their almighty brains.

A job being boring is just one of the reasons you might get paid to do it. Another reason could be that it's hard and that you are one of the few available for hire with the necessary skills. Then it can still be all fun (for you). I think the problem and negative spiral occurs when people have to take boring work just to pay the bills. Boring work leaves you mentally drained at the end of the day which keeps you from learning more or working on spare time projects in order to get more interesting work.

The challenge is getting into a positive spiral instead.

I guess you're assuming that I'm one of those semi-autistic types who isn't happy unless he's slugging down coffee while trying to hack the Gibson or whatever.

I'm not - the social aspect of problem solving, and especially the social aspects of requirement gathering, is the best part of my job.

> one of those semi-autistic types

This is vile. You aren't semi-autistic. You are or you aren't. And what qualities are you referring to when talking about semi-autistic? Are you referring lack of communication? Stimming?

How the fuck does stimming have anything to do with slogging down coffee while programming?

Seriously, "semi-autistic"? People like you are vile.

I did rather assume that but consider this a retraction of my assumption.
putting together CRUD apps and laying out contact forms

That's the problem. If that's all you are doing 90% of the time after ten years it's time to move on to a different company.

Once a company gets large and has numerous engineers it tends to settle down into a environment where people have set roles as engineers where they work on simple boring projects.

But when you are building something from scratch in a small startup team you'll often have a more flexible role where you are writing core code, solving scaling problems, configuring servers and load balancers, tuning database queries, and numerous other things. From day to day you are learning new technologies and coding new things all the time.

That's what keeps software engineering fresh and enjoyable for me.

> That's the problem. If that's all you are doing 90% of the time after ten years it's time to move on to a different company.

Trouble is, 90% of the time, it's very difficult to find an opening at a company that does more interesting things. :(

To this whole discussion of "Is programming terrible or not?" I have to quote Sturgeon's Law: "Ninety percent of everything is crap."

I'm just a newbie (started my programming job 9 months ago) but most of the stuff I do is kinda boring. I try to enjoy myself, and I believe clever people can find ways to enjoy what they're doing. Somedays are just a bore, with crappy documentation, crappy tools, and everything just crashes around you. Other days you find a new and interesting problem. This is when you must set your brain free and tackle that problem like an hungry wolf.

And in the end, it's just my job. I NEED to have a job to have my independence and enjoy some of life's pleasures. But it's just a job. It's a mean to an end. I need a job to buy videogames, go to the movies, travel, enjoy an expensive dinner, etc.

And I like programming. I program at home, making games and scripting stuff. I't just that 90% of software engineering is crap. You just need to wait for and enjoy the other 10%.

There's a great Vooza video that pokes fun at wide-eyed wonder. [1]

"Does your enthusiasm permeate the walls of our office like a disease?" "In the tech world, you've got to be incredibly passionate about... really boring things." "They need to care more about our mission... than whether or not they're gonna get health care. 'Cause they won't."

[1] http://vooza.com/videos/job-requirements/

I don't agree with you. Therefore you lack the mental wherewithal to understand my point of view. I mean just look at all these connections I make between unrelated things. I also have all these cool statistics I made up to prove (not really) my point, so obviously you're wrong.

In all seriousness, though, maybe the programming you've done has been a slog. I'm sure I speak for quite a few programmers here on HN in kindly asking you to not call us all stupid for liking something you don't.

> people wouldn't have been bitching for years about how bad the open source ORM they're using is - they would have rewritten it already, twice.

I would do that, I just don't have enough time :(

As the author of this post, I can tell you that many of the things I do day to day are not mentally challenging, but are still fun. Have you ever played any games in your life? Are they still fun when they aren't mentally challenging? Of course. If you enjoy something, then it will be fun whenever you do it. Not just cool problems or challenging ones, but all problems. The only part of my job that isn't fun is going to pointless meetings..but that is a crappy part of most corporate jobs.
Wow I thought I was cynical. Have you considered doing something new? Learning a new framework or language often gives me a fresh perspective on past projects.
Dude, when most programmers hit 25 they have already learned dozens of frameworks, know how to build compilers, machine learning, etc. The problem is after a certain age, all the cool/novel stuff no longer is, and it becomes boring as hell and your back to building CRUD Apps and your still got most of your career ahead of you.
>when most programmers hit 25 they have already learned dozens of frameworks, know how to build compilers, machine learning, etc

Really? I have yet to meet one of these 25-year olds.

What 25 year old developers hasn't learned frameworks like django, rails, Java EE, iOS, node.js etc. I know fair few frameworks, some more than others.

The majority of university courses teach you compilers(Parsing, Multi-pass optimisation, machine code output) and ML. I've built a fair few compilers in spare time, and I'm in no way special within my peers. Sure the stuff you learn probably isn't leading edge in terms of research, but unless you take a second job reading research papers, it isn't going to happen for most software developers.

The most enjoyable part of job is probably introducing better software processes, but once it is set up well, I get bored again.

25 year old here, I agree. I only know enough of the frameworks I've learned to solve the problems I've come across. As far as compilers and ML... yeah, I know a little bit of that stuff, but it's far from common for people in my age range to be good at it.
I try and learn a new framework and a new language a few times a year.

They never solve the actual fundamental problem of computing - we still trust computers less than a four year old when it comes to understanding context and meaning in language.