
Programming Sucks - sramsay
http://stilldrinking.org/programming-sucks
======
sikhnerd
The page source has a nice gem:

    
    
      <!--
      So this guy we just interviewed at my
      current job wrote this little script
      to see if a product update for some 
      company had come out. Every 10 seconds
      the script urllib'ed the page, checked
      the length of the html - literally
      len(html) - against the length it was
      last time it checked. He wrote a blog
      post about this script. A freaking
      blog post. He also described himself
      as "something of a child prodigy"
      despite, in another post, saying he
      couldn't calculate the area of a slice
      of pizza because "area of a triangle 
      with a curved edge is beyond my 
      Google-less math skills." Seriously 
      dude? I haven't taken geomtry in 20 
      years, and pi*r^2/8 seems pretty 
      freaking obvious.
    
      The script also called a ruby script
      to send him a tweet which another 
      script was probably monitoring to text
      his phone so he could screenshot the 
      text and post to facebook via 
      instagram.
    
      I think the "millenials" - who should
      be referred to as generation byte - get
      undeserved flak, as all generations do,
      for being younger and prettier and 
      living in a different world.
    
      But this kid calling himself a prodigy
      is a clear indication of way too many
      gold stars handed out for adequacy, so
      to ensure that no such abominable
      script ever does anything besides 
      bomb somebody's twitter account, this
      comment shows up exactly 50% of the 
      time, and I encourage others to do 
      the same.
      -->

~~~
ColdHawaiian
Are you sure that's in the source for the blog post? Because I don't actually
see it in there, I searched for "so this guy" and "interviewed" too.

~~~
ColdHawaiian
Why did I get a downvote? Seriously, when I searched "So this guy we just
interviewed" in the page source, I didn't get any results. Did I miss
something?

~~~
tobr
Yes, you missed the last sentence of the comment.

------
ashray
This is one of the most brilliant pieces I've ever read about programming.
It's funny and really manages to capture the frustrations a programmer faces
through the days, months, and years with his relationship with code.

I guess what we miss in programming is a standardized way to do things and if
you did it that way your accountability ends there. There's a lot of
uncertainty being dealt with all the time because there's no de-facto "THIS IS
THE WAY IT'S DONE BRUH!" for pretty much anything. Maybe that's what makes it
interesting ? It's definitely what makes it stressful.

~~~
aaronem
> I guess what we miss in programming is a standardized way to do things and
> if you did it that way your accountability ends there.

Isn't that what Java is for? But seriously, I would rather have the
opportunity to do it right, even with the concomitant risk of being
responsible for having done it wrong, than to find myself in a field where
what matters is not whether my work is right or wrong, but only that it's done
according to the rules.

If you're a web developer, and if "THIS IS THE WAY IT'S DONE BRUH!" is what
you're looking for, you should really try Ruby on Rails, because that's their
entire philosophy, and they're really very good at it -- so good, indeed, that
in every major version they do it all over again.

------
fragmede
"Is that called arrayReverse?"

"s/camel/_/"

"Cool thanks."

> Wasn't that guy helpful? With the camel? Doesn't that seem like an
> appropriate response? No? Good. You can still find Jesus.

That made perfect sense. Aw crap.

~~~
wldlyinaccurate
Stuff like this bleeds over into my "normal" life all the time, and it's
starting to get really embarrassing. Correcting my mother's inaccurate typing
on Facebook by replying with a sed substitute pattern only serves to make me
look like a douche.

~~~
aaronem
> ...only serves to make me look like a douche.

Forgive me for telling you what you no doubt already know, but there's a
reason for that. Actually, correcting people's inaccurate typing _at all_ on
Facebook makes you look like a douche, and there's a reason for that, too. I
understand how you feel when you see it; I used to feel the same way. But
there truly is a lot to be said for the idea that what matters is how well it
gets the point across. Besides, having to explain what a sed replacement is
and how it works, in Facebook comments, is like having to explain the joke,
and only realizing partway through the explanation that the joke was not funny
in the first place.

------
taiki
I'm struggling to find any sort of counter argument that isn't, "But we get to
make something cool!" Which is wrong, because most of our time, we're coding
up something that shits CSVs so someone can go into a meeting and highlight
some menial point to other managers.

~~~
JadeNB
> I'm struggling to find any sort of counter argument that isn't, "But we get
> to make something cool!" Which is wrong, because most of our time, we're
> coding up something that shits CSVs so someone can go into a meeting and
> highlight some menial point to other managers.

"We get to make something cool!" is not the same as "Everything we make is
cool!" I'm not a professional programmer, but it seems to me that, if you're
not _also_ (in addition to your job) programming in your spare time for the
sheer joy of creating, then you're probably not the best programmer you could
be.

~~~
taiki
I also meant to say that even if we do eventually make something cool, the
crushing realities of working as a software developer still sucks.

Granted, if you're a Googler or Amazonite, or otherwise working for a decent
company, this isn't true. But most software developers aren't Googlers or what
have you.

------
mattgreenrocks
This is why I only work for engineering-driven organizations. If I'm going to
be slogging through things, then I want the work to be interesting,
challenging, and I need to know my opinion will be heard and respected. I know
my peers are reasonably high caliber, and will not compromise quality.

These qualities are extremely counter to a lot of corporate jobs, where
development is a cost that should be cut, there's never enough time for
_anything_ (because, business!), and the work is CRUD-driven.

~~~
shortsightedsid
Any job or work can eventually become frustrating. That's why its called a
"job" or something your "work" for. Even if you work for the greatest company
in the work with the best engineering driven "culture", there will be
something that will hinder you due to business.

The only place I knew which didn't have any business pressure was the old Bell
Labs. That's because of the AT&T was a monopoly and was allow a profit of 7%.
That meant any expense can instantly be justified because no matter what AT&T
would earn 7%.

End of the day, engineering is about compromises and tradeoffs. It's applied
science. It's about being practical and sometimes that means we need to
compromise on "quality". That's what makes good engineering culture. A product
that ships and makes money is infinitely better than a product that doesn't
ship. So, I don't think it's right to assume that the corporate approach is
incorrect. In fact, it is better simply because once you get business
involved, a lot of the decisions become impersonal.

~~~
turnip1979
You probably know this already but for the youngins ... such places (such as
the old Bell Labs) don't exist anymore. Research labs have gotten a lot more
stressful over the years. Simple problem of having to justify their existence,
and aligning with the products of their sponsor company.

When I try to explain to loved ones that research is a dying career path
(which I sadly invested in by getting a PhD), I get pep talks saying that I
should be more optimistic :-p

------
WhiteHalmos
"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..."

I too once dreamed of perfect programs. Then I got a real job.

------
markpundmann
->The only reason coders' computers work better than non-coders' computers is coders know computers are schizophrenic little children with auto-immune diseases and we don't beat them when they're bad. HAHAHA so true

------
Intermernet
Absolutely brilliant article. From someone who has, in times of stress, had
nightmares in code, and spent minutes in normal conversation formulating
replies to illogical questions, before realising they were illogical.

Programming doesn't suck, but you _really_ need to take a break sometimes!

------
lemming
A friend sent me this article on IM, and I read it when I needed a break. I
needed a break because the method I want to call is private, and deprecated,
and the suggested substitute in the deprecation comment doesn't exist. If I go
ahead and call it via reflection, the implementation is commented out with a
TODO comment.

Sigh.

------
killertypo
Programming is beautiful and interesting and filled with creative folks who
want to express themselves. That's what I see in programming.

Should every creative and expressive person be on a team writing code, hell no
- we've seen what they produce and it's not something you ship to people.

The individual themselves though, their ideas and their input and their drive
and passion. I enjoy that company and when we gel as a team.

Programming is beautiful.

~~~
AnimalMuppet
> Programming is beautiful.

It can be. But _corporate_ programming too often is... well, it's often not as
bad as the article said, but it's somewhat less than beautiful.

------
mangeletti
Oh my god, this guy should go on tour, or at least get to give an intro speech
/ keynote introduction at some big conference... something

------
dredmorbius
For a field that has a number of classic formulations of this essay (look up
"The Story of Mel, a Real Programmer"), this is a new and excellent addition
to the genre.

 _It 's not just about programming_. In writing up my own bit on this piece
([http://redd.it/24cxgc](http://redd.it/24cxgc)), I happened to look for the
origins of the phrase "complexity is the enemy", figuring it would turn up in
some late 1980s / early 1990s Usenet post.

Nope.

 _The Economist Newspaper_ , Jan 18, 1958, volume 186: "It is easy to see that
complexity is the enemy of reliability".

(Thanks again to the Google ngram viewer).

Bruce Schneier takes this one step further and notes that "Complexity is the
enemy of security"

[https://www.schneier.com/news-038.html](https://www.schneier.com/news-038.html)

This also applies _far_ beyond just programming, the Internet, or IT. _All_
technology faces this problem, and it's going to bite us by and by.

------
beat
I cannot possibly recommend this post enough. Is this the top of the front
page yet? Or is it some random drool about Bitcoin or gossip about funding
another zero-revenue startup or the other nonsense that dominates here?

Everyone should read this.

------
mkal_tsr
Incredibly accurate rant that _gets it_

------
ColdHawaiian
For the curious, these are the languages of the example Hello World programs:

* Brainfuck[0]:
    
    
        >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]
        >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++
        .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.
    

[0]:
[http://en.wikipedia.org/wiki/Brainfuck](http://en.wikipedia.org/wiki/Brainfuck)

* This one I googled, it's called Ook![1][2]:
    
    
        Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
        Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
        Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
        Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
        Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
        Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
        Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook!
        Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
        Ook. Ook. Ook. Ook. Ook! Ook.
    

[1]:
[http://www.dangermouse.net/esoteric/ook.html](http://www.dangermouse.net/esoteric/ook.html)
[2]: [http://esolangs.org/wiki/ook](http://esolangs.org/wiki/ook)!

* This one is in Perl[3]:
    
    
        #:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :||
        open(Q,$0);while(<Q>){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/\|
        /:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"\n";
        #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:|
    

[3]:
[http://mysite.verizon.net/les.peters/id2.html](http://mysite.verizon.net/les.peters/id2.html)

------
good-citizen
Stephen Ramsay how did you find this article and be the first to post it on
hacker news? This is _the_ most appropriate hacker news story there ever was.

