25 votes

Programming Sucks

8 comments

  1. skullkid2424
    (edited )
    Link
    This is a great tongue-in-cheek read that some people tend to take a bit too seriously. It purposesly exaggerates and takes a pessimistic view of things to craft a very amusing article. And...

    This is a great tongue-in-cheek read that some people tend to take a bit too seriously. It purposesly exaggerates and takes a pessimistic view of things to craft a very amusing article. And sometimes it really does feel like a lot of the "super reliable" programs basically work on arcane magic and if the one guy who understands it decides to retire, then everything will fall apart. But thats not always the case. But this article is to programming what Office Space is to a cubicle job.

    My favorite part is the section on Good Code. After working on a particularly difficult or crazy issue all day, sometimes you just want to shut your brain off and look at something that just works and works well. While its another exaggeration, it definitely captures that feeling for me.

    Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

    This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

    15 votes
  2. mystickphoenix
    Link
    His book, and then I thought I was a fish is a fascinating account of his own descent into mental illness and his journey back out. Interesting, entertaining, etc. Would highly recommend!

    His book, and then I thought I was a fish is a fascinating account of his own descent into mental illness and his journey back out. Interesting, entertaining, etc. Would highly recommend!

    7 votes
  3. [5]
    teaearlgraycold
    Link
    I've been seeing a lot of these posts. In fact, I'm sure I've seen this sentiment repeated ever since I was a kid reading Michael Crichton novels. The idea that programming is miserable work...

    I've been seeing a lot of these posts. In fact, I'm sure I've seen this sentiment repeated ever since I was a kid reading Michael Crichton novels. The idea that programming is miserable work almost dissuaded me from studying it and entering the field. I'm sure some luck is involved, but I've never dreaded my work. I've only had ~2 years of full time experience but there's a huge gap between what people write about programming and what I've personally seen.

    6 votes
    1. [3]
      leachim6
      Link Parent
      It makes you realize that a crappy work environment can make any profession terrible. It's definitely not specific to coding.

      It makes you realize that a crappy work environment can make any profession terrible. It's definitely not specific to coding.

      5 votes
      1. izik1
        Link Parent
        Certainly, and I guess I'm pretty lucky, my work environment is pretty good, and I haven't even seen much bad cod- Actually, I just remembered this one person who keeps pushing to master in a...

        It makes you realize that a crappy work environment can make any profession terrible. It's definitely not specific to coding.

        Certainly, and I guess I'm pretty lucky, my work environment is pretty good, and I haven't even seen much bad cod- Actually, I just remembered this one person who keeps pushing to master in a groupish project (not school related, not sure what to call that) without reviewing, breaking stuff in the process. (Not work related though). Doesn't like making PRs/MRs because "they pollute the history" (and spam the bot channel in the Discord server). I guess my worst offender was (luckily) on code that I've never touched, nor will ever touch. Which was C++ but actually C (or C++ written like it was C, even though this is 2019, and they're using C++11)

        1 vote
      2. banned
        Link Parent
        Having been in a shit apprenticeship under a shit boss before and now having an amazing one, I can confirm, that a crappy work environment makes you miserable.

        Having been in a shit apprenticeship under a shit boss before and now having an amazing one, I can confirm, that a crappy work environment makes you miserable.

    2. tildez
      Link Parent
      Pick literally any profession and you will find a sizeable group of people that are sick of it. On the scale of actually sucky jobs, programming isn't even a blip on the radar.

      Pick literally any profession and you will find a sizeable group of people that are sick of it. On the scale of actually sucky jobs, programming isn't even a blip on the radar.

      1 vote
  4. izik1
    Link
    I think I disagree with this article, at least, in the way it's portraying it: This has not been the case for me. Now, I do know crazy programmers (they don't read this, but some of them might...

    I think I disagree with this article, at least, in the way it's portraying it:

    All programming teams are constructed by and of crazy people

    This has not been the case for me. Now, I do know crazy programmers (they don't read this, but some of them might know who they are). However, I don't think that a majority of programmers are crazy, and most certainly not in the "crazy requirements that don't actually matter" way. I personally think that that gets blown way out of proportion.

    All code is bad

    This is false as long as you or your dev team isn't swamped (and cares I guess), I personally haven't been swamped while working, and I actually spend an entire work day most weeks just cleaning code because maintenance is important to me.

    Every programmer starts out writing some perfect little snowflake like this. Then they’re told on Friday they need to have six hundred snowflakes written by Tuesday, so they cheat a bit here and there and maybe copy a few snowflakes and try to stick them together or they have to ask a coworker to work on one who melts it and then all the programmers’ snowflakes get dumped together in some inscrutable shape and somebody leans a Picasso on it because nobody wants to see the cat urine soaking into all your broken snowflakes melting in the light of day.

    Once again, I've personally never seen these unreasonable requirements. I know they exist, but they've never actually gotten to me, I've had deadlines, but nothing unreasonable.

    There’s a theory that you can cure this by following standards, except there are more “standards” than there are things computers can actually do, and these standards are all variously improved and maligned by the personal preferences of the people coding them

    I disagree with the second half, because once again, most code I've seen uses the standard of whatever language the code was written in, camelCase? Sure. UpperCamelCase? Sure. Tabs? Sure. Spaces? Sure. snake_case? sure. &str instead of String? Sure. Same line brackets? Sure. Newline brackets? Sure. And so on, most languages (with C++, C, Java, and JS being the biggest notable exceptions). Every single programming language I know has some standard style that you're expected to follow, with exceptions to said style only being allowed for a very good reason.

    For example, say you’re an average web developer. You’re familiar with a dozen programming languages, tons of helpful libraries, standards, protocols, what have you. You still have to learn more at the rate of about one a week, and remember to check the hundreds of things you know to see if they’ve been updated or broken and make sure they all still work together and that nobody fixed the bug in one of them that you exploited to do something you thought was really clever one weekend when you were drunk. You’re all up to date, so that’s cool, then everything breaks.

    Here I actually have to agree. Some dependency broke without any warning, at least twice in the past month. Which is really annoying honestly.

    You are an expert in all these technologies, and that’s a good thing, because that expertise let you spend only six hours figuring out what went wrong

    Okay, legitimate question time: Do you actually need to be an expert to find the cause of a bug in 6 hours? The worst bug I've had was due to one of the aforementioned dependency breakages. And really, the only reason it got so bad was because something that was supposed to be unreachable got reached. Took me 4 hours to find and permanently solve (now if/when the dependency breaks again, it'll only take a quick glance at the error log to see that something that wasn't supposed to be reachable got reached). This was in a language I've known for... 2.5-3 months? Not that the language really mattered, since it's similar enough to the other languages I know how to use.

    A lot of work is done on the internet and the internet is its own special hellscape

    While I agree that the internet can be very difficult to program for at times. I can't agree with the sentiment of things "constantly" breaking. Very often, yes, that happens when you have hundreds (thousands? bit tired) of people work on something.

    “Is that called arrayReverse?”
    “s/camel/_/”
    “Cool thanks.”
    Wasn’t that guy helpful?

    In the literal definition? Yes, that solved the other guy's problem. Talking in code has its useful points, like when you are trying to describe code. Code can be the best description for code if done right.

    Vast chains of abstract conditions and requirements have to be picked through to discover things like missing commas.

    Sounds like bad design, but compilers should be able to find missing commas fairly easily? Maybe I'm just spoiled by the compilers for Rust, Kotlin, Dart etc.

    The destructive impact on the brain is demonstrated by the programming languages people write. This is a program:

    I find it unfair to use code that's intentionally esoteric to drive home a point that programming sucks. It's like saying "programming sucks because people invented ways of making code that looks totally different from other ways of doing it." (not to mention that I'm pretty sure the BF and Ook implementations are literally the same thing, since Ook has the same instructions as BF).

    2 votes