
Programming Sucks and Why I Quit (2014) - dredmorbius
http://deirdre.net/programming-sucks-why-i-quit/
======
notacoward
I agree that programming _as a career_ sucks a lot more than it used to. I
understand that part of my saying so is the result of changes in me or my own
circumstances. Life was better when I didn't have to deal so much with product
and project managers, when I didn't have to be the "leader" creating momentum
and mentoring those who don't want to be mentored. I do miss the days when I
was an individual contributor minding my own business.

On the other hand, that doesn't explain everything. As the computing industry
has become bigger and more lucrative, it has also become less like a
gentleman's race and more like a cage fight. The primary mode of interaction
has shifted from collaboration to competition. There are always more projects
in any given space, creating more factions each more determined to sling FUD
at each other so that their project and their investment in it stay relevant.
There are more sub-sub-domains of knowledge, with those on the peaks of each
sneering at the others. The environment for women has become measurably
_worse_ than it used to be; I worked with a higher percentage of women on
Encore's kernel team twenty years ago than I do now even at Red Hat. It's a
nasty, aggression-soaked environment, and anybody who doesn't believe that
must not have read the other comments on this very page. I can tell you, it
didn't used to be that way.

Programming as an activity has its ups and downs. Programming as a career has
started to just plain suck.

~~~
eterm
> measurably

Do you have some measurements to back this up? I could believe it's true, but
you shouldn't say something is measurably worse and then not provide those
measurements.

~~~
notacoward
[http://fortune.com/2015/03/26/report-the-number-of-women-
ent...](http://fortune.com/2015/03/26/report-the-number-of-women-entering-
computing-took-a-nosedive/)

~~~
eterm
Thank you.

------
dahart
Wow, I thought I was critical, but there's some serious negativity going down
here.

Maybe the article is a little scattered, but the tl;dr is Deirdre switched to
programming for herself, and quit making crap other people want. For those
reacting to the title without reading the article, she clarified that
programming is awesome, but programming for money on other peoples terms
sucks.

I don't know about you guys, maybe you're too young, but it resonates with me.
Maybe I would have wasted fewer years programming for others earlier in my
life if I'd known how bummed I'd get about it, or how excited I'd get about
programming on my own terms.

~~~
Killswitch
I feel she was gloating more on what she did than why she quit, but I am in
the same boat, I hate programming for others. I have a single client I work
for that pays my bills and the rest of the time I build my own stuff.
Sometimes the work for them is so mind numbingly boring and not interesting to
me, that I could go a whole month only putting in 15 hours of work.

~~~
deirdresm
Were I gloating, I'd point out that I a) had code in space before I turned 18
(digital tape driver); b) had written (in Pascal) the code to control
emissions for four power plants by the time I was 22.

Truth is, I feel like there aren't any more really interesting problems for me
to solve. I've accomplished enough of each kind of thing that really engages
me that I'm done.

I'd turned down an Apple job in the mid-80s and always regretted it, so once I
spent 5+ years on the Safari team, I felt like that was the only checkbox
left.

------
SlashmanX
I have no idea how the middle section of this post is relevant to the rest of
it. It just seems like the author needed to flesh out another rant or justify
a choice no one questioned them on and decided to find any reason to diss the
web. An error in the W3 validator is not really an 'error', especially
considering the type of errors that are included in those 600 odd (Most of
them are about missing spaces).

EDIT: Just seen the date on the article, likely the hundreds and hundreds of
errors at the time are gone now, seeing as there's only like 50 showing now

~~~
dredmorbius
Among her later projects was Apple's Safari.

Writing code that _must absolutely positively do the right thing_ ... with
other people's unvalidated crap ... might just colour your views slightly.

------
NathanKP
Programming is nothing but transforming data from one form into another.

Once you reach a level of competency where like the author of this article you
can implement any kind of transform you like then 99% of programming becomes
rather boring.

Sure there are still the 1% of interesting problems and algorithms that are
fun to work on, but you can only implement so many basic CRUD API's, and
boilerplate business logic classes, and cut and paste website designs before
you tire of that stuff.

After 30+ years of coding I'm sure the author of this article has implemented
pretty much everything she has ever wanted to. It's natural that she would
find implementing the same things over and over again for other people to be
unrewarding, and instead desire to pursue the new challenge of designing an
interesting new product of her own.

~~~
deirdresm
Yep, you've got it. Once I realized I had the skill to accomplish a workable
version of anything is when I started noticing that there weren't many
problems I cared enough about to feel like they were worth my time.

There are things I'm interested in implementing still. I still enjoy working
in Ruby, and my Python's gotten rusty, but I actually work mostly in PHP these
days (because of WordPress). I keep promising myself to learn Swift, but I
lack Swift-type problems to solve that I care about.

The other thing, as one gets older and has a lot more experience: how much of
your remaining unknown quantity of time are you willing to spend doing
programming vs. some of your other life goals?

------
irishcoffee
Author claims to have been working for 38 years.

They're not quitting, they're retiring. What a silly article.

~~~
jevgeni
So, after a law professor retires s/he immediately stops thinking about law?

~~~
adwn
> _So, after a law professor retires s /he immediately stops thinking about
> law?_

The proper analogy would be: "So, after a _lawyer_ retires s/he immediately
stops _practicing_ law?"

Yes, s/he does.

~~~
jevgeni
So, when you retire will you immediately stop practicing programming?

~~~
jerf
Equivocation; "practicing" law and "practicing" programming are not the same
thing.

~~~
jevgeni
It can be compared. Both require to mentally navigate certain set of
constraints and rules and build up a mental model of the domain problem, after
which you produce a concrete result. In programming it's software, in law
practice it's mostly a written consultation or a decision.

The point I'm making, is that both are mental endeavours. Programming isn't
constantly typing at a desk, hitting TAB, and letting the IDE do the rest, but
actually solving the problem in your head.

If I quit a programming job, that doesn't mean I stop thinking on programming
problems. Same goes for law.

The problem that the author is describing, is that she has reached the limits
of her profession to such an extent, that even thinking on (most) programming
problems isn't interesting to her anymore. Which is a sad thing.

~~~
jerf
"Practicing law" _specifically means_ performing legal services, in the real
law system, for a real client. It is a term of art, not a generic English use
of the term. Practicing programming has a much fuzzier meaning, because it
_is_ the generic English term.

My point is your snark doesn't hold, because "practicing law" is fundamentally
a different thing from "practicing" programming.

~~~
jevgeni
Just because my initial comment was a short sentence, doesn't mean it was
snarky; like this one.

And although I agree with your definition within a professional legal context,
that context is irrelevant to the discussion, since we are discussing a
person's personal relationship to the discipline.

------
jevgeni
Wow, I'd expect people here to be more empathic towards a person having a
career in software engineering longer than most of the lifetimes of the HN
crowd (assuming the article is truthful).

Instead one gets a bunch of dismissive, I-know-better-then-all-of-you BS. And
they say bankers are arrogant.

~~~
deirdresm
Thank you.

~~~
jevgeni
I might've confused the gender of your name further down in the comments (not
a native English speaker). Sorry for that. :)

------
robodale
I got the "...back in my day, everything was all neat and tidy...now it's all
gone to shit..." sort of feeling while reading this article. Websites have
always been shit, and if you approach rendering/parsing/consuming web content
programmatically and expect perfection...you're in for a frustrating
experience.

~~~
notacoward
In this case, "back in my day" far precedes websites, so it's entirely
possible for both the OP and you to be correct.

------
lojack
I agree with the author that programming sucks pretty bad. Making it suck less
is part of the joy I get when programming. Even the highest quality software
is at best organized chaos. We all know how to approach problems, that's the
boring part that no one really cares about. Diving in and discovering the
unknown is where the fun begins. That's where we have the opportunity to
optimize, refactor, learn new things, and perfect the art.

Maybe everyone reaches a point where they become jaded, but all of the things
causing the author to quit are the exact things that make me want to continue.

------
intrinsnik
"...consistently one of my top ten web hits, partly because of strong Google
ranking." Wonder what the other part is, because the article is garbage.

------
rubidium
Nothing to see here. Someone ranting about how there's errors in web-pages.
Not really sure the point.

------
kozukumi
I love programming when it is for myself or something I am passionate about.
However writing CRUD apps or other mundane LOB apps is pretty mind numbing
after a while. I don't regret leaving programming as my job but I could never
give it up fully. I love it too much. The best bit about doing it just for
myself is I can use what I want, this makes all the difference to my
enjoyment. If I had to write everything in Java I don't think I would enjoy it
quite as much ;)

------
jeremiep
"About the Author"

"Deirdre Saoirse Moen is a science fiction and fantasy writer, photographer,
and graphic designer from Menlo Park, California."

What? I thought this was a programmer quitting his job..

~~~
mcv
"His"? I think it's a programmer who quit her job.

------
secstate
Hrm:

[https://validator.w3.org/nu/?doc=http%3A%2F%2Fdeirdre.net%2F...](https://validator.w3.org/nu/?doc=http%3A%2F%2Fdeirdre.net%2Fprogramming-
sucks-why-i-quit%2F)

I think the more likely reason why validation errors show up all over the
internet is because for 99% of business/entertainment/service on the internet
they are irrelevant.

Personally I would not like Firefox to fail to render on HTML validation
errors, what a terrible idea that would be.

In the meantime, I have no idea what HTML validation has to to do with not
enjoying working for someone else.

Swap "programming" from the sentence: Programming for somone else sucks. With
"carpentry" or "plumbing" or "manufacturing" or "cooking" and you'll have the
same bitter, burned out employees. The trick to life is to avoid being bitter
when asked to get things done, and rather take pride in having been asked to
help someone get something done. If you don't feel appreciated in your work,
look for something else to do. If there is literally nothing else you can do,
being bitter isn't going to make life any better.

Not to sound like an asshole, but I have very little patience for people who
lack creativity in how they use their time. Yes, I've been frustrated at my
work before, and listless in the face of a project I don't want to
start/finish, but I find a way to keep working, or I'd be looking for
something else to do.

------
dean
This article made me angry. Why does she care that cnn.com has 349 errors that
can only be found by running a validator? The web is a huge place. Does anyone
really expect that every single site out there is going to be perfect? And
you're going to be depressed to find out that it isn't. And change careers.
Give me a break. Her complaints are akin to a writer whining about grammar,
and quitting their job because there's so much bad grammar out there. Good
riddance!

~~~
dredmorbius
The "HTML is an error condition" quip was actually what lead me to that piece.
And the fact that you need a specific _validator_ to actually check the source
is actually a pretty strong indicator of the magnitude of the problem.
Browsers simply don't care, or worse, _have to not care_ , that what they're
getting is valid HTML. Rather, it's that they will, and pretty much _must_ ,
render pretty much any random crap.

See my recent comment about Web fonts, and additional discussions about Web
accessibility for the disabled (a very good friend has exceptionally limited
vision), and think over how a truly _semantically_ constructed Web document
might be just slightly easier to parse by assisting software or systems.

[https://news.ycombinator.com/item?id=10326649](https://news.ycombinator.com/item?id=10326649)

[https://plus.google.com/104092656004159577193/posts/f6mP6XqH...](https://plus.google.com/104092656004159577193/posts/f6mP6XqH81S)

A rigorous document structure, strict adherance to it, and penalties (e.g.,
lower SERP ranking) for invalid / poorly constructed pages would help.

As for Saoirse Moen, her (last) day job _was_ in fact working on a Web
browser. Dealing with crap HTML, JS, CSS, etc., etc., etc.

------
sheldor
Irrelevant rant, irrelevant article, yet in the front page of HN. Beats me
every time.

------
arca_vorago
I think this is a reasonable stance, mostly because she is saying it's not
programming itself that sucks, it programming for others on matters that
aren't what you are passionate about that sucks, and I think that's an
important distinction to make. Her options are to either find something she is
passionate about programming and do that for a living, or do like many of us
do and do it on the side.

I'm a sysadmin, and I have almost no formal programming training, but on the
side I really like experimenting with developing solutions to my very specific
set of problems, and it is empowering to me. At work I often cobble stuff
together in bash, perl, and python, but I'm sure if a professional programmer
reviewed my code they would balk... but it works for me, and I document
everything heavily to make sure the next fellow won't have too much trouble.

For me programming is about problem solving, because that's what I do best. I
will admit though, sometimes I go through burnout phases, and perhaps this is
where the author is at the moment.

------
deedubaya
It's easy to get down on the negative sides of programming... the rub is that
there are negatives to every job. There are widespread problems in every
industry that need fixed/improved.

In the end, we all have a choice of what we want to focus on and what to do
about it.

Stay focused on the bright side, minimize the negative, and keep on keep'n on.

------
jxm262
> Instead, I need to pick projects that I care about and not spend long
> stretches of time on things I don’t.

I'm getting this feeling myself more and more lately. And I've only been doing
this for a little over 5 years. Although, I wonder if I'll have this thought
regardless of what field I am working in.

~~~
phkahler
After similar lines of thought, my conclusion is that you have to embrace the
process of writing code and not get too personally invested in the end product
- it doesn't belong to you, and a company can and will sell it, scrap it, or
let it decay slowly. Step back and be grateful for the opportunity to apply
your skills to help someone else create something they felt they needed, and
don't worry about what they do with it after the fact. I've found over and
over that caring about a project too much leads to disappointment - the more
bleeding edge the project, the more interesting it is, and the more likely it
is to die. Embrace the idea that your job is to help someone with a short term
goal. It can be fun, but don't let it be your life. Life is about people, not
things, and certainly not the code you wrote last week. Help someone by using
your skills and move on, it's very rewarding.

~~~
notacoward
That is so depressing. I'm not saying you're wrong, or wrong for saying it,
but it's still depressing. For years I've taken pride in my ability to see
beyond the code I'm working on, to how that code or other activities (e.g.
teaching or even blogging) can contribute to business goals and/or make the
computing world a better place. It's what we're _supposed_ to do. We're told
we'll be rewarded for it, and sometimes we are financially (thanks boss), but
it still takes its mental and emotional toll. Others will undermine your
efforts with a competing project or contrary message, or outright pull a
project out from under you, often with the best of reasons or intentions, but
it still leaves you feeling betrayed.

To end this on a more positive note, consider this: "we're not here to make
friends" is EXACTLY WRONG. The friendships you make are the _only_ thing that
will last. The "legacy" of your code will become smaller and less valuable
over time, even if it's really awesome code; more likely it'll just be tossed
aside without a second thought by the next developer or exec with their own
agenda to pursue. Your money will be spent. All of the companies I worked for
twenty-plus years ago, their technical and financial assets gone as though
they'd never been, but some of the friendships I made back then continue. Make
code, make money, make friends, but only one of those will last.

------
ebbv
This is nonsense. Anyone who knows anything about developing on the web should
know that W3 Validation means nothing. It's not even something worth striving
for. They are not analogous to actual programming errors.

~~~
outworlder
I think many comments like this are missing the point. You don't get a
"Haskell/C/Java/Lisp validator". You have a compiler, which will flag obvious
crap as crap. The possibly crap stuff are flagged as warnings. And then you
have a linter when you want your crap to smell slightly better. But the point
is that obviously wrong stuff on the web should give you errors, not a vaguely
working page, sometimes, in some browser version.

~~~
ebbv
It is you who has missed the point. I mention in my comment specifically that
W3 validation errors are not comparable to compiler errors or run time errors
in programming.

As far as things working in one browser and not another, if you're working
with _standard_ features they tend to work across all modern browsers. If you
are using features which are still only candidates, then yes they may not work
but you've chosen to implement non-standard features so you've done this to
yourself.

------
icewater0
Echoing some of the sentiment elsewhere in comments, I liked programming a lot
more when I was more of a one-man show, instead of a team member with other
people doing business analysis, project management, client contact, and
basically everything except pulling predefined stories off a scrum board and
delivering them.

I'm sure it's more efficient and effective, but it feels like factory work
now.

~~~
deirdresm
Like you, I did enjoy it more when I was contracted to do the 1.0 version of
something and where I was basically working alone to a spec.

Though I prefer the modern tools.

------
jordanlev
I totally get burning out or losing your passion etc. But I'm not sure how
other people's web pages being of poor quality affects one's own work -- if
anything, it motivates me to do a better job (and gives me a competitive
advantage, or at least a reputation which attracts the right kinds of
clients/customers).

~~~
dredmorbius
The author mentions working on Safari. Perhaps writing code to deal with other
people's crap has something to do with her views.

------
throw7
I think the author is tired of being "liberal in what you accept." In other
words, getting old! :D

------
empressplay
needs (2014) added to title

------
biggio
[https://github.com/deirdresm](https://github.com/deirdresm) Maybe you haven't
started programming at all?

~~~
deirdresm
Actually, I deleted my github account while I was a software engineer at
Apple. Here, have a photo of my Steve Jobs engraved iPad I got while working
on the Safari team:

[http://deirdre.net/wp-content/uploads/2011/10/SJ-engraved-
iP...](http://deirdre.net/wp-content/uploads/2011/10/SJ-engraved-iPad1.jpg)

Presence or absence of a github account isn't meaningful. Plenty of really
great programmers have never had them, and there's plenty of crap code on
github. (And the inverse is also true, of course.)

------
blisterpeanuts
First world problems :)

I'm grateful for the opportunity to work from home, support my family
comfortably, be in a field with lots of employment opportunities to fall back
on, and be constantly learning new stuff.

Sorry it didn't work out for you, but it sounds like you found other interests
to occupy you and (hopefully) support you, e.g. fantasy/scifi writing.

~~~
outworlder
> Sorry it didn't work out for you

What? The author was in the field for THIRTY-EIGHT YEARS!

~~~
blisterpeanuts
Unless I missed it, she didn't say for how many of those 38 years that
programming sucked, though. Her examples of suckiness were all from just a few
years ago.

Anyway, that's a potentially long time to be doing something you don't enjoy.

~~~
deirdresm
That's a difficult question. Essentially, some part of any job sucks. Even
within a given field, some jobs and/or projects will suck more than others.
Some tools and languages suck more for certain applications than for others.

I've always enjoyed—and still enjoy—the technical aspects of programming.

Since this just came in my email….

"Working at $FIRM offers you the opportunity to work in a fast-paced,
challenging, startup environment with a team of passionate individuals who
love bringing ideas to life. At $FIRM, no role is small and every person plays
a part in the development of our game-changing technology."

fast-paced = you won't have time to think to solve the problems better

challenging = no one knows how to behave themselves, least of all the founders

startup environment = so forget reasonable workweeks and having any time on
weekends

team of passionate individuals = they don't have lives, either

no role is small = you will be assigned roles that the last person quit over
_because_ it was so trivial

That's the kind of thing I'm done with.

~~~
blisterpeanuts
You might find freelancing more appealing than these kinds of full time jobs
as you describe.

------
LargeCompanies
because as a beginner logic coder it can be exhausting ... grinding and
grinding and grinding away to figure out how to achieve X.

Maybe not having anytime to yourself isn't important, but im not a coding
robot and need a nice amount of downtime!

------
davidhariri
Drivel.

------
eterm
This article is garbage, but I did enjoy the one linked to at
[http://www.stilldrinking.org/programming-
sucks](http://www.stilldrinking.org/programming-sucks)

