
Programming is a Terrible Job - ibadeyes
http://pastebin.com/ed1pP9Ak
======
ianstallings
I'm approaching 20 years of doing this and I would _love_ to have 20 years
more.

What this really sounds like, and the message gets muted by the complaints, is
that the author wants you to find a part of software that interests you and
follow that path. I agree 100%. Some people love front-end Javascript websites
and all that entails. I find it painful. I still do it when called for but my
true love is in low level protocols, embedded programming, hardware, and
anything else that let's me get to the "bare metal". It too can be mundane and
painful, but I find joy digging through RFCs and implementing them, pushing
and popping from the stack, handling memory, and a bunch of other stuff that
others might find completely boring.

So I do agree - it can be boring and you should always be looking for
something you truly like doing. There is so much in this industry, the world
is wide open to you.

~~~
SonicSoul
10 years here, and loving it too!

the best part for me is, the more i learn the better it gets. And the longer i
do it, the bigger the variety of solutions and ways to get things done.

Sure, will get stuck on a crappy project from time to time, which could last
for 1-12 months, and it may not be a blast, but i know it's temporary, and the
more senior i get, the more say i have in making it suck less.

It took me many years to learn this, but you don't always have to do what
you're told (if you know you can do it better). If you're being pressed to get
something done, you'll be inclined to cut corners and hack it. But in the end
you can just do it the right way, and tell your boss afterwards. The trick is
to do it in the same time it would take to hack it. If it means working nights
and weekends? so be it.. in the end, it's your name and showing such ownership
will eventually give you a bigger voice, and people around will know who
produces quality stuff. And if you're working for someone that will not be
happy about you doing it the right way just because they told you otherwise,
you don't want to work for them in the first place.

~~~
plaguuuuuu
7 years.

KILL ME

~~~
fredsanford
Oh how I can _feel_ this.

After 3+ years of dealing with banker types when I first started (1991ish), I
wanted to leap off the building and land on their fancy cars. :)

Without a doubt, the tightest fisted, greediest and most short sighted people
I've ever dealt with. Save 15 minutes here and waste months in the future when
you've forgotten how this hack works. Get it out ___now_ __.

Then I had a few dream jobs. It seems to go in cycles. Get used to it or
change professions.

~~~
plaguuuuuu
my current job is so boring but the money is so good ~_~

will probably have a 2-3 month break to hack on some project and return to
contracting afterwards, hopefully somewhere more interesting.

------
pilif
Of course the day job isn't always fun. That's why it's a job and that's what
we get paid for.

But: I f'ing love my job as a programmer. There is nothing in this world that
I'd rather do. There's nothing that constantly fills me with as much joy as
programming does. I admit that I might be a bit lucky here, having founded the
company I'm working for; that allows me to pick my battles and find a good
balance between stuff that's pure joy and stuff that's just a job.

I do however look out for everybody here who likes solving the interesting
problems as much as I do - we try to keep the interesting problems evenly
distributed between us.

The thing is: Many of the crappy tasks can still be made interesting: Form a
challenge. Fix something related that has been bugging you constantly. Try to
implement the crappy feature without performance regressions. Try to implement
it in the cleanest way possible. Try to make your future self proud.

If it goes beyond changing the working in an email for the 100st time, I'm
sure there is something in there that can make your task bearable or even
enjoyable. At least it is for me.

~~~
iSnow
I think, as a founder you are missing the point that 99 out of 100 times you
are told - explicitly or by work schedule "do not do it in an interesting,
performant or elegant way, just get it working somehow and move on"

~~~
jasonlotito
I've never been told that. I've been told to get something done. How I achieve
that has never been an issue. Interesting, performant, or elegant does not
mean it has to be slow. That's part of the challenge. Meeting the demands of
the business while meeting the demands of a professional.

~~~
resu_nimda
In my experience, virtually every coding task takes longer to do "the best
way" than the quickest or easiest way. Many times it takes much longer. Either
you are a savant-like exception to this rule, or your velocity is
(significantly) lower than it could be.

Don't get me wrong, I push for doing things the right way whenever I can, but
acting like you can have it all with no compromises seems silly.

~~~
collyw
Depend on whether you are looking at the immediate time scale, (when "the best
way" takes longer), or over the longer term, where it is often a lot better to
sped the time up front, and have a good solution, rather than a quick hack.

------
nicpottier
There's a reason it is called work and not play. If work was always enjoyable,
then they wouldn't need to pay you to do it.

I think the author is delusional if he thinks any programming anywhere doesn't
have large swaths of time that are a bit mind numbing. And my experience has
been the programmers who think themselves 'above that' are the ones that
provide the least value.

Our job is not to program, our job is to create value. You should be getting
your jollies off of making cool shit happen, solving real problems, not
necessarily that you just invented some sophisticated new algorithm.

I spent three years rebuilding video games I grew up on a really limited cell
phone platform, it was a blast from a technical point of view. I've spent the
last three years building fairly rote software that is used in developing
countries, it is satisfying more because of the end result that software will
hopefully have.

Go get a job someplace where you care about the end result of your work, or go
work someplace where your technical side is challenged, but programming is not
terrible, your attitude is.

~~~
antocv
> If work was always enjoyable, then they wouldn't need to pay you to do it.

Why do football players, musicians and movie actors get payed 1000x as much as
the software engineers who made the technology to make possible their success?
TV, Internet, radio, now all HD quality. So that some people can enjoy their
work and earn millions while we who invent and produce the infrastructure
should suck it up and call it work?

Does our society really encourage people to do stuff they dont really want to
do, stuff they dont find enjoyable?

Just my twist on this.

~~~
nicpottier
> Why do football players, musicians and movie actors get payed 1000x as much
> as the software engineers who made the technology to make possible their
> success?

Do you think their jobs are cake walks? You think football players really
enjoy the training, really enjoy destroying their bodies on a weekly basis?
You think musicians haven't toiled for years and years making no money at all
before reaching the level where they can make a living?

Even if you believe that they enjoy every minute of it, you are pointing at an
extreme minority. Software engineers are in the top 5 best paid jobs and
frankly, our jobs are ridiculously easy and enjoyable.

~~~
doorhammer
Seconded.

It reminds me of a quote from Muhammad Ali:

“I hated every minute of training, but I said, 'Don't quit. Suffer now and
live the rest of your life as a champion'.”

Now I'm not going to say that every athlete or musician is like that, which is
part of the point; reality generally defies generalizations, but I will say
that discounting the work professional athletes put in is a bit narrow minded,
regardless of any perceived pay-hardwork or pay-joy ratio.

~~~
bcbrown
Another quote I've heard and liked: "Training is like wrestling with a
gorilla. You don't stop when you're tired. You stop when the gorilla is
tired."

And the gorilla is never tired.

------
Supermighty
I've felt this way before. Dejected that the my new job wasn't an exciting
candy land of save-the-day hacks and movie montage of elegant code spanning
the screen. My expectations were too high. I thought we would always do the
right thing to kick out software all grown up ready to take on the world.

When the realization set in I got angry. First at the job then at myself. I
held it tight knowing someone was to blame. Anger lead to depression which
sparked more anger. But depression won, and eventually lead to a calm
realization that programming wasn't the magical world I wanted it to be. So it
became just a job.

I never wanted it to be just a job. I work with people who don't know a bit
from a byte. They could care less what I code as long as it works. For a long
time I believed them. I just made it work. Recently I've started to believe
again.

I've started to believe in the magic again. I'm learning that within the
boundaries of my job I can create little realms of beauty. No one cares how I
code so I can code to my own enjoyment. I've stopped caring what other people
thought. And I've stopped looking to the job and outside world to give me
enjoyment and I've started looking inside myself. To find the joy in my own
actions, in the moment.

~~~
aaronem
I don't want to burst your bubble, but there are bosses out there who a) will
read and criticize your diffs and commit comments, and b) will not be anywhere
near as capable as you. These circumstances combine to produce a situation
where it is entirely possible to be "too clever", which elicits a polite
chewing-out and an assignment to go back and replace elegant code with code
that any idiot can maintain.

If you know a trick for maintaining a sense of satori in such conditions, you
would oblige me enormously by describing it.

~~~
Supermighty
(I'm replying late to this so you may never read it.)

I don't think I'm that great of a programmer. I'm self taught and I have a lot
of insecurities about my abilities. Even though I get paid to program. Even
though I pickup new languages, on my own, and write working software with
them.

So when I write code I write it as simple and direct as possible. I stay away
from clever and I stay away from cute or smart. Because I know that the idiot
that will be maintaining the code and need to understand that code will be me.

------
10098
Honestly, I can understand OP's frustration. I would be lying if I said I
didn't think similar thoughts. But the truth is, you don't get do to what you
want unless you're running your on company. Even if you are running your own
company, you have to make sure you're doing the right thing in order to not go
bankrupt.

I think having hobby projects can help provide a nice balance between doing
whatever the hell you want and doing what is needed right now. It also gives
you the opportunity to learn new things which you can maybe apply later to
your actual job. As long as I have my favorite forever project, I won't be
bored.

~~~
joshlegs
protip: every job is like this. I went into journalism because i LOVED reading
and writing. Making it a career sapped the fun out of it. Now i'm coding
professionally. It's much more fun than the pressures of journalism, but I do
find myself sometimes thinking "this was more fun when I did it just for the
heck of it"

~~~
Swizec
protip: Be a very picky freelancer and only work on projects that interest
you.

~~~
tootie
I'm having a mid-career crisis much like OP and the notion of freelancing is
enticing. Can you tell me more about how it is more fulfilling, lees
frustrating and how you find quality gigs?

~~~
kamjam
I freelanced in the UK for 2 years, currently in Canada since the past year.
Freelancing is tough here, it doesn't seem like it is the norm. It's tough in
the UK too, but if you are good at what you do and/or you work in a niche
field (like me) then then you have no trouble finding freelance work.

What I loved: you get to work on pure software. None of the BS with internal
company politics, requirements gathering, user analysis etc. You are focused
on a specific set of tasks. You are paid much more than as a perm (but not for
vacation, sick days etc)

The last part is important to me at this moment in time. It effectively meant
I could work for 6-7 months and make as much money as a perm salary. (This is
a short term view to take though). This difference should cover down time,
when you are looking for new contracts or you just want to take a little time
off to upskill. Depending on the availability of jobs, you can be very
selective on the contracts you choose. I've known people leave within a few
weeks and move onto something else since it was "not as advertised". Because
you shift job fairly frequently (3-6 months usually) you get to meet a lot of
different people, learn different techniques and different skills.

The bad part: No vacation pay, no sick pay, you work a day you get paid for a
day. You are usually hired for a particular skill, so there is no training. If
you don't like a job, there's no point in complaining since they will hire
someone else - in a decent company, they will try to accommodate your growth,
longer term at least. You can be let go on a very short notice and there is no
job security (obviously). It can also make it tougher to get loans and
mortgages since the criteria is much stricter.

It's not for everyone, and depends very much on what you do, but I have plenty
of friends who freelance and would not go back to permanent positions.

------
al2o3cr
TL;DR for the article: "OMG, work is BOOOOORING!"

See also: the disillusioned former law student who went in to change the world
but ended up pushing paper, the disillusioned architect went in to design
monuments but ended up designing Wal-Marts, the disillusioned English major
who went in dreaming of the Great American Novel but ended up spell-checking
ad copy.

There is a difference, though: if "wiring together unbelievably shitty,
amazingly poor documented frameworks" really pisses you off, you can FUCKING
CHANGE THAT. Not every discipline has quite that level of flexibility.

BTW, GTFO off my lawn.

~~~
bromagosa
By the number of people that are pissed off about webdev and still don't
success at changing it, and by the amount of "Oh Brand New Automagic Solution
for Everything (TM)" coming up every month and still failing at fixing the
mess that webdev is... I'd say it's not so easy to "fucking change that".

~~~
informatimago
I don't know if it's easy or hard. I'd bet it's rather on the easy side. What
I know is that it's not with having dealines to produce the next product that
anybody will have the time to take some step back and come with a better (more
automatic) way of doing things.

What's painful, it's not doing something repeatitive. It's being presured to
repeat it, without being let automatizing it, which is what we should do as
programmers.

~~~
loup-vaillant
I had a colleague once that wanted to invest 4-8 hours writing a script that
would save her about 1 hour each time it is run. The script was expected to be
ran about once a week.

She did the wrong thing and asked her boss. "Not enough time, there's more
urgent things to do."

She then lost an hour per week, contributing to the general sense of urgency
that she lived under. Of course, this wasn't the only such script she thought
about by far.

\-----

My advice: if you can shoulder the risk, automate it before your boss tells
you not to.

~~~
gotrecruit
frankly, it sounds like she could have simply taken the initiative and wrote
the script on her own time. seems like she could have simply done it over a
weekend, and it would have been worth it if she truly felt that it would save
her an hour per week.

~~~
loup-vaillant
> _it sounds like she could have simply taken the initiative and wrote the
> script on her own time_

I agree, except no one should ever have to work on their own time. Personally,
I think she should have written the script on _company_ time.

------
xinn
I felt the same way. I quit. I'm still unemployed.

I will admit the job I had wasn't nearly as dreary, but I was still plagued by
the fact that what I was doing was utterly pointless and had zero value.

In retrospect, I wish I had just grown the fuck up and accepted the simple
fact that the chances of any person on this earth making his or her life
meaningful outside of his or her own family are astronomically slim. The
machine we contribute to is one that takes in money, spits out more money, and
creates very little value in the process.

~~~
taeric
I'm not quite as cynical as your last line, but I fully agree with the outlook
growing up.

And honestly, does _any of this_ sound unique to programming? Do you think
carpenters are all happy just making what people will buy from them? Do you
think musicians all just want to make music people will buy? Mathematicians of
old just being glad they could reliably hit ships with a cannon? Electricians
constantly just plugging in similar wirings into similarly bad houses? ...

~~~
pawelk
> Do you think carpenters are all happy just making what people will buy from
> them?

An anecdote to highlight your point.

I'm a web developer, but I've built furniture four our new house last year. It
was fun, I've learned some new things and, most importantly, it's still there
once the electricity goes out. It provides, in my opinion, a lot more value
than nth iteration of some corporate website re-design. I thought in a
parallel universe I could become a carpenter and live a great life. Then I've
imagined the parallel universe in which a frustrated carpenter dealing daily
with stupid client demands, building the same table over and over again,
physically tired and risking dismemberment on a daily basis, comes home. He
wants to make him a website to reach to more clients, so he picks up HTML and
CSS and Wordpress, builds it and it's fun, it works, you can interact with
this creation from anywhere in the world! He goes to sleep thinking "I
should've become a programmer instead...".

~~~
mithras
The grass is greener...

------
joebo
It's not too different than other hobby turn professionals. Like to work on
cars? You may want to become a mechanic. Replacing brakes for the hundredth
time is not nearly as interesting or challenging as the first time. On the
upside, you get to be around the environment you love and occasionally there
may be some new problems to solve. As with any profession, there is always an
opportunity to learn and improve even on something that is considered routine.
For a mechanic, maybe do it faster or with different tools.

~~~
unknownian
I think "mechanic" is a bad metaphor. We're talking about engineering here. I
don't think I could doubt that a lot of programming jobs (webapps, etc) are
not as interesting as a lot of electrical and mechanical engineering jobs. But
I could be wrong.

------
garethadams
Solving problems is interesting. Repetition is terrible.

As programmers many of the things we build are to automate processing that
other people would find repetitive and make errors doing. As a result, _our_
work becomes repetitive and we make errors doing it. As some level we've
succeeded – we've added a layer of abstraction and made a lot of people's
lives easier – but we've also moved our expectations ahead of us and now _we
're_ playing catch up.

The author says

> Sometimes I also think if it would be different if I was born several
> decades earlier

but I don't think it would. The problems would have been more fundamental and
the solutions would be more "pure" computer science, but I imagine you'd still
have the same level of tedium with regards to debugging and loose user
requirements.

~~~
bigiain
"Solving problems is interesting. Repetition is terrible."

Most "programming" is just "digital plumbing". No matter how flashy or
utilitarian the taps or basin are, underneath the job is pretty much always
the same - you hook up hot water to one tap, cold water to the other, and the
sink drain to the drainpipe. You can do a great job or a shoddy job - so long
as nothing leaks _too_ much, it doesn't make any difference to most people.

Almost all of the programming jobs in the world are like that - call it CRUD
or MVC or Mobile Apps or Web Apps or websites or SaaS, or PaaS - you're mostly
gonna spend your life hooking some user interface up to some data store doing
some sort of filtering or data transformation in between - and hopefully
having some real-world side effects that generate value for someone, be that
entertainment, education, ecommerce, improving the efficiency of some
previously manual or tedious process, or often - just releasing a new version
of the same old thing because marketing decided it's time for a version number
change and a few "new feature" checkboxes for their competitor comparison.
Most "day to day programers" _don't_ get to write new 3D renderers or physics
engine for exciting games or write the next great crypto system or solve hard
computer science problems or software to control new spacecraft or fighter
jets - or whatever "interesting programming problem" you can name. But if
you're lucky, you might get to solve real world problems your
business/clients/customers have – by hooking some fancy new off-the-shelf taps
up to some standard boring old digital plumbing in fairly standard ways –
occasionally you might even get some new-to-you plumbing job, perhaps plumbing
in an espresso machine or a fridge-with-ice-cube-maker-in-the-door, and
that'll be fun - the first time. Maybe even the second and third time - then
it'll be "just another standard plumbing job", with a different fridge or
coffee maker.

I saw a presentation a week or so back, that seems to me a lot like the
article-writers original "I'll write some code to find Mersenne Primes!" \- it
was a bunch of local guys presenting (at DorkBot here in Sydney) about the new
ASIC USB BitCoin miners they were building - you _can_ find and attempt to
solve interesting computer science / math problems, but there's _vanishingly_
few people who'll employ you to do it.

~~~
RogerL
I don't exactly know the truth of your statements above, but I've spent my
life doing all of that cool stuff. I've written code for flight computers,
done machine vision for factory inspection, supported cancer research by doing
stats and data analytics, written 3D viewers/playback for aircraft black
boxes, worked on robots and UAV for several years, and now I'm doing some
computer vision + AI work that I can't make public just yet. And I had other
opportunities, like working for private space launch, which I declined.

How? Mostly (not entirely) by working for a defense contractor. Everyone seems
to knock corporate jobs, but I swear to you I've done so much cool stuff
because it is only companies that size that can bid on and win this
interesting work. Plus, I went to university (another false meme around here -
college is just a piece of paper), where I learned the chemistry, physics,
electrical engineering, and math to do all this stuff.

There is plenty of pain in big government type projects, but there is pain in
every thing important. Do you want to wrestle with undocumented CSS behavior,
or wrestle with how to program this robot, or how to reduce defect rates in
your machine in the factory, or how to make this plane fly. Sentence structure
doesn't make it clear, but I consider only the first boring, and the rest
extremely interesting.

There are a lot of those kinds of jobs. You may not live in SF anymore, and
end up at an airbase in Iowa, or in Albuquerque, or Huntsville. OTOH, your pay
will be absolutely amazing compared to local property prices, and you can
raise a family, go on great vacations, and not worry about living in the crazy
bubble we are in right now.

I know it won't appeal to everyone, but I swear to you there are tons of
extremely interesting, challenging jobs out there that aren't start ups, and
aren't corporate internal reporting apps (TPS reports). You will need to be
far more than a Ruby on Rails developer, CSS+HTML5 jockey, or what have you.

edit: all of the above is written by a US citizen. I don't know what
opportunities are like in other countries, and don't mean to imply that any of
the above applies to anyone but a US citizen. I don't know.

~~~
NTDF9
To add to Roger's answer, I can assure you that software engineers in
semiconductor companies are having a ball as well. The work often involves
understanding computer architecture, registers, memory and IO. Everything cool
(read: advanced OS concepts) that you learn in college is getting implemented
there.

Some job profiles include programming GPUs, device drivers for a new device,
writing kernel code for the processor, firmware for other chips on a
motherboard.

There are also math intensive jobs such as 3d spatial programming for
manufacturing simulation and nanoscale image processing for finding defects in
wafers.

Compiler and language enthusiasts often enjoy working in the forefront. When
Intel plans to come out with a new instruction set, it uses its own engineers
to write an optimized compiler (better than gcc) for those instructions.

Same goes for Java in Oracle.

------
edw519
_My advice would be - do not become a "software engineer"._

My advice would be - become a solver of other people's problems who happens to
know how to develop software.

This may sound like a futile exercise in semantics, but believe me, this
subtle little shift in thinking has made all the difference...

In order to escape OP's "boring as shit" programming life and have a ball
turning nothing into something, one has to change their perspective: It's not
about the code, or the elegance, or us, or what we become; it's about _solving
our customers ' problems_. That's it.

It doesn't matter if the solution requires the most elegant algorithm ever
conceived or smacking someone on the side of the head; _solving the problem_
is where the rush comes from. The elegant and cool code is the byproduct.

Once OP understands this, he'll be too busy building and solving to rant.

~~~
theorique
I suspect the customer can read this orientation as well.

When the customer perceives that the programmer's goals are aligned with his
goals, he will be much more inclined to send that programmer work.

In contrast, the programmer who sees the customer as an ignorant philistine
who "doesn't appreciate good design" or "doesn't understand what he needs"
will drive customers away.

------
brudgers
One of the author's frustrations, seeing months of work abandoned - is the
byproduct of training programmers as scientists and engineers rather than
designers...or rather it is the byproduct of a pedagogy which attempts to
extend mathematical logic and proofs to messy social problems.

Landing pages and NoSQL backends are not deductively better or worse: at best
they are statistically or inductively so. Typically, however, choice is simply
intuitive.

Making good intuitive choices is the essence of design and the way to develop
good design intuition is not to sit down and bash on one's first solution
until it plausibly works. Education should attempt to teach students that
falling in love with one's first idea is a tarpit.

Teach students the practice of coming up with three independent design schemes
and developing each to the point that the merits and flaws of its underlying
design concept is evident. Maybe one is worth developing.

Throwing away months of output is not wasted effort - just as lines of code
are no more a relevant measure of productivity than pencil lines on a
blueprint. Artists have stacks of sketches and studies, architects stacks of
abandoned schemes.

Most ideas are not worth loving, let alone executing and most solutions cannot
be demonstrated correct via mathematical logic. The education of programmers
should align with this reality.

~~~
Sarien
"Teach students the practice of coming up with three independent design
schemes and developing each to the point that the merits and flaws of its
underlying design concept is evident. Maybe one is worth developing." That
seems like a good idea but then you would need software designers and
programmers because what is good for one is not good for the other. We're no
were near this becoming a reality.

~~~
brudgers
The idea of developing multiple independent schemes comes from my background
as an architect. I mention it on the off chance that it won't the discipline
of software development as long to incorporate it as the 4500 years since
Imhotep.

I'm optimistic because functional programming is already seen as an often
viable alternative to bashing on an array - garbage collection is a useful
abstraction outside the computer too.

------
JohnBooty

      "Internet was a luxury in our struggling country"
    

Based on this, though nothing can be assumed, I can't help but wonder if the
author was doing outsourced/offshored development work for another country?

I can only imagine that doing outsourced/offshored work brings with it an
extra level of dehumanized drudgery.

I am a software engineer who typically works with small teams and/or small
businesses. While the code-writing itself can be mindless CRUD work, and is
almost never interesting on a theoretical level, solving actual problems for
my users makes it worthwhile to a large extent. I am solving real problems for
people trying to get through their days -- people I get to work with face-to-
face. That's rewarding.

If you're doing mindless CRUD work for somebody five thousand miles and
several levels of management away, though, that kind of rewarding feeling must
rarely be possible. I don't know if I could do it.

~~~
notahacker
The flip side of that equation is that in developing countries that much of
the "drudgery" is outsourced to, call-centre work is considered aspirational
and there are people literally killing themselves with physical labour for
less per week than an established elancer can earn in a couple of hours. This
may not be quite the situation the original author faced, but it certainly
helps put the lack of excitement in fixing IE7 bugs for anonymous foreigners
into perspective.

------
henrik_w
There are many reason why programming is a great career:

1\. You get to create things

2\. You make things that are useful to other people

3\. It is fascinating to see the program you wrote execute as intended

4\. There is always more to learn – you are never done

5\. Short distance between idea and running program

6\. Code is very expressive

There are also lots of jobs to chose from, and they pay relatively well, so if
you don't like where you are: switch. There is no reason to stay in a boring
job when there are many interesting ones to switch to. More on why programming
is great: "Why I Love Coding" [http://henrikwarne.com/2012/06/02/why-i-love-
coding/](http://henrikwarne.com/2012/06/02/why-i-love-coding/)

------
16s
Reality kills a lot of interest. Rules, deadlines, no one cares about good
design... just get it out. Only you and a few like-minded co-workers realize
how neat some of the solutions are. No one else cares.

Make it a hobby. The stuff you care about at least. Apply things you discover
there in your professional life and you'll stand-out and be noticed.

Most programmers don't love the job. They don't go home and think about how
something can be made more efficient or scale better or fit into smaller
spaces. Hell, most don't know the meaning of time and space and why those
things matter. Those who do (so much so that they make a hobby out of it) are
the kinds of people you want working for/with you.

Hang in there. It's not all bad.

------
CodeGlitch
Regarding the "specialization is more interesting" \- I have the opposite
opinion.

11 Years ago I starting in the video games industry, as a graphics-programmer.
This meant I lived and breathed graphics-related topics. After about 6 years I
could no longer take the tedium. I moved away from graphics into more general
programming (in the same company) and found the variation really helped me get
through the day. I've now left the games industry and couldn't be happier.

My suggestion is that if you are unhappy in your current programming role,
learn some new stuff in your spare time and apply for a new job. At the end of
the day, we do stuff that only a small % of the population can do. It's a
skill that people are willing to pay you for, and you don't have to go down
mines or anything :)

------
Kiro
OP has no idea how lucky he/she is. I've had some really shitty jobs before I
started my programming career and being able to write code for a living is
like winning the lottery in comparison. You need some perspective in order to
appreciate things.

~~~
taeric
There is also the odd view that "years ago" the OP would have been involved
with computers. Don't get me wrong, there is a chance, but statistically
speaking very very few people were involved with this sort of stuff years ago.
Even if I had had the opportunity, I have very little aspirations that I would
have actually been as good as the forerunners were. I mean, I can hope, but
since I'm not even the best at learning from their teachings, not sure I would
have been among the best to discover these things. :)

------
ryderm
If you hate JS hacks and web apps and that's what your current job is doing,
quit and go work on some database internals or a large distributed system or
something. There are lots of jobs that aren't working on CRUD apps out there.

------
TheCapn
Difference between the hobby and the job I find is your control over what and
when you do the things you want to do. Both have the type of work everyone
loves, its just not as free at a workplace.

I program Android at home and decide when I want to do the boring parts.
Sometimes I make it fun by finding some way I can script or generate the
boring, repetitive parts of programing games or layouts. Heck, sometimes I
just grind at it with a 6 pack and a good playlist. But at work there's often
weeks at a time where I'm forced to do the crap work that no one ever really
dreamed of. It needs to get done, it has strict deadlines and I'm not allowed
to drink. But it pays me well and its part of the stepping stones to getting
to the fun parts.

After spending the amount of time I have on HN I must admit that I am blessed
with the position I'm in so I can't complain fully about it but its not fair
to say that programming is a job to avoid simply because you're tasked with
the crap every so often. For one, you need to earn your stripes to be put in
that position where your responsibility and accountability are high enough to
get the critical components. The guy right out of school onto the job dreams
big but its no different from any trade or job in the world: new guy gets the
grunt work. Perhaps its because I spend more time talking with fellow geeks or
perhaps we do have a small superiority complex but no one should be fresh into
a career thinking they'll be the one doing all the magnificent things you see
on the web crafted by experts and superstars of their field. Heck I went
through that faze too and I'm still very young but its much easier to see once
you interact with the next shipment of grads: I don't hand off the critical
work because I don't know they're good for it yet.

------
auggierose
It is terrible because we let "the real world" dictate how we develop our
software. That is a mistake. What we can create is basically only bound by our
imagination and the ability to articulate this imagination in a precise and
consistent form. Eventually "the real world" will have to bend to that.

~~~
camus
Or , you can be usefull to the real world and actually solve its problems.
Some actually love that, you know and some even like boring predictable
stuffs...

------
mratzloff
If you don't like web development, learn something else. The only reason
you're not doing something you love is because you haven't put in the effort.

Right now, I write fault-tolerant, distributed systems in Go for a living. I
really enjoy it. But a decade ago, my first programming jobs were building
websites in ASP (pre-.NET), PHP, and ColdFusion for a little over minimum
wage. There are truly very few software tasks worse than writing ColdFusion.

I now count myself as proficient in a number of languages and I've done all
kinds of different things over the course of my career. My latest side project
is learning game development. Maybe my next job will be doing that?

If you don't like what you do, make the choice to do something else, then take
the steps to make that goal a reality. You never know where you'll end up,
unless you lack the energy or courage to try.

------
ctdonath
I object.

My story is very similar: teenager obsessed with programming, working with
paltry early-days computers (Sinclair ZX-80, Apple II, TRS-80, etc.), writing
Mersenne-prime & other such fascinating-but-obscure programs, got a $4/hr job
writing dBASE II programs for an apple farm, way advanced in college, 20+ year
career as a software engineer.

 _I don 't think I ever caught myself writing code for my employer and
thinking "hey, I really enjoy this"._

Speak for yourself. I wrote lots of code for my employers thinking "hey, I
really enjoy this". I love my job. Oh sure sometimes the situation gets
hard/grinding/depressing, but that's what ANY job will do. On the whole I
REALLY ENJOY PROGRAMMING AS A CAREER.

------
codonaut
Nobody seems to be addressing the author's recommendation about specializing
instead of being "just" a software engineer. Is specialization really the road
to less boring coding? As a recent entrant into the working world I find
myself thinking that may be the road to more interesting work, but don't have
much of an idea about what the day-to-day work of a specialist is.

~~~
ffrryuu
Specialization leads to the big bucks, it's also easier to dodge crap code
that is outside your specialty.

It has nothing to do with boring/exciting, that depends on the
project/company/coworker.

------
jezclaremurugan
But you know __why__ it isn't terrible - unlike people stuck in other
professions, one can pick whatever interests them, work on it, and with
minimal cost show case it to the whole world, and if that gets some attention,
maybe they can land an interesting gig, or the random stuff they work on might
even take life on its own. It doesn't happen frequently but last time I
checked there were a few that _did_ happen this way.

So if one limits oneself to just what the customer wants boss what the boss
demands - programming is terrible, but programming unlike most other jobs
allows one to follow one's own heart with costs tending to zero.

------
esw
"I only want to work on the things that are fun and interesting to me," said
every person in every profession.

This is why I started working for myself. There are some things I have to do
that I don't enjoy, but for the most part I do get to pick and choose how I
spend my time.

------
hds
My (unsolicited) advice would be, go and find one of those jobs that you
idealise from a few decades ago. They still exist, just where they always
were, in academia. Of course, it's not all playing, but if you want your job
to revolve around programming things that nobody has programmed before, that's
the place to be.

Have a look at getting into a PhD programme in Computer Science, Computational
Engineering or something even more abstract like Computation Number Theory.

------
alexvr
I'm a first-year computer science student, and I've been programming for about
3 years (self-taught). I find the field to be overwhelmingly expansive, and
while that's partly what I find so alluring about it, I sometimes feel like
exploring a bunch of subfields is taking away from the time I should be using
to specialize.

I really enjoy making games and simulations, but I have trouble picturing
myself working in the industry, as I really want to work on technology that
solves problems. And if I were to "specialize" as a game programmer, I would
probably be a generalist in that subfield.

One area that I find extremely interesting is the realm of real-time, embedded
software. My dream job would be at Tesla Motors, writing software for
autonomous cars. Unfortunately, it's not as easy to get experience with
embedded systems as it is to get game programming or web development
experience. And, for the same reason, it's not as easy (or cheap) to amass a
portfolio of, erm... UAVs, robots, elevators -- what have you.

I also enjoy making web applications, doing system administration, and
everything in between. And I can't deny that I've had my "start x website in
dorm room like Zuck and be rich" entrepreneurial fantasies.

Does anyone have advice or words of wisdom? If I had to choose one area to
specialize in, it would be embedded software, but I feel like I could get a
ton of great experience as a game programmer on my own, for free, while
getting a cursory glimpse at embedded systems would require more than just
time as an investment.

How might I pursue a career in embedded software? I think the real-time nature
of game programming would be a nice complement to real-time embedded software
development. Should I pursue both?

Sorry about the essay, but this dilemma has been bugging me incessantly
lately.

~~~
rjbwork
>How might I pursue a career in embedded software? I think the real-time
nature of game programming would be a nice complement to real-time embedded
software development. Should I pursue both?

You should contact some of the research professors at your institution and see
what's going on at the school in those fields. Look up the robotics/AI
professor and go knock on his door. Ask him what he's working on and if he
needs any undergrad programming help. Usually these professors will be glad to
take on a student to a team if there's room at all.

Of course you'll likely need some decent to good C/C++ skills, and arm/x64/x86
Assembly may help too.

------
hdra
> Like algorithms? You can be a computer scientist. You can become a systems
> programmer and develop OS internals. Try digging through Linux source code.
> If you're into programming languages, you can get into writing compilers. I
> hear LLVM is amazing. If you like graphics, dust off those math books and
> get good OpenGL tutorial.

What makes you think those you can't be those specialist you mentioned? All
those roles are still very high in demand, and if you really find generic
software engineering lowering your IQ, nothing is stopping you to do those
things in your own time. Remember Linux?

Even in mainstream game development, people tackle complex algorithmic
problems everyday. From game graphics to enemy AI, there are countless "hard
problems" to solve.

My point is, just because your boss wants you to churn out generic CRUD apps
everyday, doesn't mean you have to limit yourself to that. Just by spending
half an hour everyday on something you really loves can make a difference.

------
superails
> Imagine coming to work to spend hours googling, wiring together unbelievably
> shitty, amazingly poor documented frameworks and battling Javscript and CSS.

I don't have to imagine it. Happens every fucking day.

------
osmsiberiano
I think this is the direct consequence of the way IT is taught in many places.
The guy was truly a researcher, a scientist. He was able at doing theoretical
tasks well, and this is also an important work and good calling. But as I
understand he chose the "commercial IT" career. This is not science, in fact
they don't need smart people, although they hire them. And the result is you
work in a wrong place: too much chore, brain not needed, technical dishonesty,
and often you cover your management's ass with your work.

I think programming is easier for those who learned it at non-IT work: they
don't have passion for theoretical, ideal things, and every chore solved is a
holiday. I did like this. I had no time to argue about
semantics/approaches/OOP, just to resolve problems with very limited time.
Then I went to professional IT companies, and except for money and some smart
guys around, the work isn't inspiring.

------
jrobbins
If you're going to be a pro athlete, you need to love to practice, drill, and
train, not just play. If you're going to be a race car driver, you have to
love to hear the sound of the engine and feel the vibration as you go down the
road, not just the thrill of winning. If you're going to be a musician, you
need to love the feel of the instrument in your hand. If you're going to be a
writer, you need to love words, grammar, typing, and editing. If you're going
to be a painter, you need to love working with paint, not just imagining great
subjects.

If you're going to dedicate your life to programming, you have to love code:
syntax, text editing, refactoring, commenting, testing, debugging, tuning. All
of that low-level stuff. The problem-solving and learning-new-technology fun
parts are just the icing on the cake.

~~~
ghostdiver
actually race car driver need to love the gym

------
srikrishnan
I can imagine I would have said the same had I been doing "web development".
The way some stuff works on one browser but doesn't on another drives me mad.
It is as though web programming is not about logic, but about just knowing how
to get stuff to work on the browsers.

I think the fact that we've all grown used to pretty UI and are
design/experience conscious means there are more developers spending their
energy in prettying up stuff, making it mobile friendly, etc. which not
everyone enjoys - though looking at it after its done might still give some
satisfaction.

On the other hand, I still enjoy writing scripts to help me with tasks,
figuring out a nice algorithm to solve a problem, etc.

If you have a 60-40 mix of stuff you don't enjoy and stuff you enjoy, I think
that is OK. If that 60 grows to 70/80, makes it really tough to stay
motivated.

------
spion

      > It is now time to conclude this long-winded rant. 
      > I would like to end with a piece of advice for those who 
      > are thinking of becoming a software engineer. My advice 
      > would be - do not become a "software engineer". I know 
      > there is a lot of demand right now, but 1) the demand 
      > won't last forever; 2) most of the "software engineer" 
      > jobs are boring as shit.
    

My advice is, make the boring things interesting by providing better, simpler,
cleaner abstractions. But that is hard, isn't it?

Or pick a general boring thing and automate it away. Thats also hard.

Or perhaps enable non-programmers to write programs for their own problem
domain without having to learn much (if any) programming, so you don't have to
do the "boring shit". Hows that for a challenge? :)

~~~
pycal
If one of the factors underlying the OPs sentiment is that they don't feel
like their work is particularly useful or meaningful (which I DO struggle
with), these points address that head-on.

Sometimes political or budgetary constraints can prevent projects like these
from finding legs, but good points.

------
pawn
After working for a large IT shop for over 9 years (not there anymore :-D), I
completely "get" this post. However, I have to say, we're spoiled. There are a
lot of ways you can do worse.

Growing up, I often worked summer jobs that were either construction or
factory work, right beside men in their 30s and 40s. Some days the weather was
over 100 and we were expected to work in it for 9 or more hours. Some days we
were doing something near a chicken plant where I had to put up with an
unbearable odor the entire day. Often times, our only available toilet was of
the portable kind. I've been a ditch digger. I've been up on a metal roof in
that 100+ degree weather. I've spent 8 hours consecutively (with the exception
of lunch) doing the exact same thing every 30 seconds.

Programming isn't so bad, by comparison.

------
Wintamute
There are an incredible amount of hard problems and interesting challenges in
frontend web dev. The field is changing at a fantastic pace, and there are all
sorts of exciting projects to get involved with. Its wide open. If you think
its all just JS hacks you're doing it wrong.

~~~
loup-vaillant
> _There are an incredible amount of hard problems and interesting challenges
> in frontend web dev._

Name three that your boss will allow you to work on.

> _there are all sorts of exciting projects to get involved with_

Name three that your boss will allow you to work on.

> _If you think its all just JS hacks you 're doing it wrong._

Or maybe that's his _boss_ doing it wrong: like, "This form is ugly on our HR
people's computer. Please fix it by next week." Of course, the stuff is badly
written, badly documented, and have to work with 5 different browsers,
including IE6. The fastest way to please your boss is the JS hack. The fastest
way to _displease_ your boss is to suggest that, maybe, IE6 is a teeny bit
outdated.

~~~
avenger123
I think that's giving too much power to your job.

Your boss may not let you work on it but there's no reason to not work on it
outside the job for 5-10 hours a week, just for kicks. Those kicks might be
enough to keep the day job more bearable.

If at the end of the day, putting in 5-10 hours a week extra out of your own
time for it is considered too much, then accept that you also see your work as
just a job.

~~~
loup-vaillant
The OP himself reckons the hobby is fine. It's the _job_ that sucks. Sure, you
can take some quality programming time outside your job, _and the OP does
exactly that_ , but your day job is still taking a huge chunk off your life.

When a job sucks, the solution hardly lies in what you do in your spare time.
First, I would try to improve the job, or enjoy it, or quit it, or annihilate
it (we're programmers, annihilating jobs is what we do). And if all that fails
or otherwise isn't worth my efforts, _then_ I will give up and learn to love
my spare time.

When someone is complaining their job sucks, my first reflex isn't to tell
them to man up, cheer up, or give up. It's not helping. instead, I ask myself
what could be done about it.

~~~
haihaibye
Work normal hours for your job then anything extra pushing your skills in
areas you find interesting. This can be on tangentially related work tasks or
research or skills.

If you find your interests lead away from your job, then that is a path to
skilling up for a more appropriate job.

If you think it sucks you have to work so long and hard to find and/or get
those interesting jobs it does .

But it's because other people are willing to do this and will get the
interesting jobs leaving the boring ones to those that don't.

------
sneak
> Ariel T. Glenn (née Laura A. Nickel) with Landon Curt Noll discovered on
> October 30, 1978 that 221701 − 1 was the 25th Mersenne prime. This made
> international news because Noll and Nickel were still high school students.
> For the verification of this number alone, the pair used almost eight hours
> of time on a CDC Cyber 174 at California State University [1]. They consumed
> over 4000 hours of computer time in their search double testing M21001
> through M24481, along with a test of M65537 using a custom implementation of
> the Lucas-Lehmer test.

I don't know who wrote the linked article. But I do know that the above text
was the wikipedia page for Ariel T. Glenn before it was deleted. She currently
works for the Wikimedia Foundation.

~~~
sneak
Turns out it's not her - I asked.

------
rarw
Turning one's passion into a job almost always has this result. Work is never
as exciting as doing something for the sake of doing it because work always
has a finite list of things that must be done even if you don't want to. It
doesn't matter if you're a programmer or a rock star. The routine of having to
do something you don't want to do, whether that be write tests or perform the
same hit song every day for 20 years, sucks. The trick is to try and find a
balance. Do the boring stuff to pay the bills but find/make time to work on
something that you actually enjoy. Sure it's not exactly easy to do but once
you get out of school/your parents house - that's life.

------
harel
You really should man up and either find a programming job you like, or go do
something else that makes you happy. Sounds like you're in the wrong
profession. I enjoy programming as a hobby and I enjoy write code for
employers. Both present different challenges but in essence in both cases I'm
programming and solving problems. The benefit of doing it for employers is
that they give you problems you wouldn't necessarily have in a hobby project.
This is life. And life landed you a crappy job. That's not the point though -
the point is how you handle this and so far it looks like you're not handling
this very well.

------
tsenkov
My modest experience shows that people complaining about doing mundane work,
do complain when they work on the "dream job", too.

After all, motivation is something that you build, not something you have
passed-on by DNA.

------
joelthelion
Don't be a programmer. Be an "X" who programs.

Instead of spending 99% of your time bullet-proofing your software for idiot
users who can't use a computer, write software as a tool to automate your own
job.

------
greenyoda
_" Imagine coming to work to spend hours googling, wiring together
unbelievably shitty, amazingly poor documented frameworks and battling
Javscript and CSS."_

Not all programming is writing web apps or gluing together frameworks. Some
developers work on lower-level software, which involves writing more code from
scratch and doing more algorithmic thinking. It depends a lot on the job.
There are very few problems in the code I work on that can be solved using
Google or StackOverflow.

~~~
progn
See, that's what I love about this profession: it's never boring. If something
_is_ boring, then almost by definition, it can be automated. The automation
itself is usually interesting, and once you've automated your boring task, you
can go on to do other interesting things.

------
droidist2
"Sometimes I also think if it would be different if I was born several decades
earlier. Back then, software engineering was in its infancy."

I think a lot of people can relate to this. I've often wished I could have
finished college right before the .com boom, because it would have been so
obvious to me that the internet was going to be big. Or would it have been?
Hindsight is 20/20\. If you had been born decades earlier you likely wouldn't
even be into programming.

~~~
mediumdave
I don't think it was obvious at the time.

I can distinctly recall seeing Mosaic for the first time in 1993 when a fellow
undergrad showed me his home page. My thoughts were essentially, "that's
really stupid: it's just a bunch of boring information about you". Email and
usenet seemed (to me) far more interesting and important.

------
realrocker
That's not the question I asked myself. Born in a society with limited career
options, it was, Would I rather do boring shit I hate? or Would I do boring
shit I love and can closely relate to. The answer was obvious to me. It was
either that or a Government job with lot's of job security and dangers of
certain intellectual death by corruption and general numbness. It was always a
choice between lesser of two evils.

------
webjprgm
All through high school and most of college I knew I wanted to be a programmer
when I grew up. But when I was about to graduate I suddenly had to decide what
kind of thing I wanted to program. I have many interests; too many to study
them all. So I know a little about a lot of things but I have been unable to
get jobs in those areas. (Graphics, compilers, AND operating system internals
to name a few that the OP mentioned.) So basically since I couldn't decide I'm
stuck with the "general" stuff. My experience is similar to OPs, basically,
but I haven't figured out the solution. I have a vague plan of becoming either
important enough at work to pick my projects and help with product strategy or
else to become an independent developer.

Complicating this plan, though, is the fact that I put more emphasis on family
than on work satisfaction. If I have to put up with a boring job but get to
live in a nice house in a nice community and spend time with family, that
might be worth it. I'm just not totally satisfied that it is yet. But I can't
go risk everything in a San Fransisco start-up attempt.

------
ffrryuu
Totally agree, at most companies, it's a dead end job, then your skills became
obsolete and you drop out of the job market. Most people are out by 35.

------
justin_vanw
Quick response to whoever put this on pastebin:

If you don't like what you are working on, isn't it naive to assume that the
entire field is like what you are doing?

Get some passion. If you show up to work, close tickets, do enough to get by,
then not think about programming until the next morning when you show up to
work you are not going to learn, you are not going to level up, and you are
not going to impress anyone. Maybe you can gladhand your way into management,
but you won't be any good at it and you've risen to the level of your own
incompetence. I can't imagine that is very pleasant either.

Meanwhile people all over the place are working on hard problems of their own
choosing and love every minute of it. I think they earned that. They earned it
by taking the risk of success or failure on themselves, or by working hard and
learning and working hard and learning until they had the freedom to choose
what they would work on, because the decision makers trusted them to deliver
if it was possible to deliver.

You can't shit shovel your way out of being a shit shoveler.

------
naunga
This really should be titled: "Programming is not computer science."

~~~
Systemic33
Maybe the problem is that people get educated as computer scientists, and get
hired as software programmers. While the area of expertise has a large
overlap, they value very different qualities in the way you work.

~~~
naunga
Unfortunately there isn't a standard computer science curriculum out there. So
one school may focus on pure computer science (i.e. that actual science of
computation) and another may be teaching students how to write C# programs.

Software plays such a critical role in today's society that I almost (almost)
think computer scientists and software developers need to be licensed like
civil engineers, which would then create some standards. Of course there are a
lot of reason why this would be a bad idea, but bottom line issue is the lack
of consistency between schools.

------
dclowd9901
Oof, this guys has it bad.

The thing he doesn't consider is people like me, so let me flesh out that
penultimate paragraph:

"If you like to build products that help solve problems in the real world,
become a full stack web developer. If you like the delight that comes from
encountering a user experience that has considered corner and edge cases and
approached them in a unique or profound way, learn how to do the hacky shit
that seems super boring or mundane to other people."

Programming is only terrible if you work on something you don't care about.
I'm assuming that's his real point but it gets hung up on the day-to-day
frustrations of web development in particular. It's pretty clear to me that
web dev isn't his favorite coding discipline, but just because it's not his
cup o tea doesn't mean others don't enjoy the shit out of it. I don't get how
people can love being QA engineers but far be it for me to say its terrible.

------
jhuni
Does this person think that programming will suddenly be a breeze if it is
done as a hobby rather then as a job? Even if you are programming in your own
free time you will still have to deal with the perversions of internet
exploder and other fatally flawed programming platforms. At least if you are
doing it as a job you are getting paid for it!

~~~
michaelochurch
I think what happened to OP is that he's getting tossed the shit work and
nothing interesting, so he's doing someone else's IE support.

If you're building your own web app, you decide if, and when, to support IE.
If it's bringing in $10k/month and you can double that, it's worth the hours
of unpleasantness to get the additional money. If it's something you're doing
for fun that isn't going to make money, you don't do the IE hacks. But there's
no point in doing someone else's IE support, unless you can get a promotion or
a bonus out of it.

The problem is that while he sucks at politics (that's why he's doing someone
else's shit work) he doesn't know he sucks-- the first of four stages,
unknowing incompetence-- so he thinks that the industry is just chock-full of
shit work, because that's all he's able to get (and he hasn't figured out that
you don't really "get assigned" the best work; you just do it). He needs to
learn how to fight for himself; that's his real problem. Otherwise, he'll end
up pulling a Walter White over-correction when it's decades too late.

------
Tyrannosaurs
Those jobs suck bad _for him_.

We don't all like the same things or find the same things interesting or dull.
Some of us like the variety, just working on whatever a day throws up,
tinkering with whatever to solves a problem a person or an organisation might
have and make things a little bit better. Code which is never going to amaze
or astound anyone, code that may have been written under horribly compromised
circumstances, can still make a big difference to people, and for some people
that in itself is satisfying.

Programming is many things, at one end an end in itself at the other a tool
for doing _stuff_. Programmers find different elements of what programming can
be interesting and / or fulfilling.

Yes, there are a whole bunch of programming jobs which are wiring up CRUD
apps, or writing jobs to parse data. They're not satisfying for some people
but that makes them a bad match for those people, it doesn't make programming
terrible.

------
studentrob
Just curious - why is this posted to pastebin? Is this to make it completely
anonymous? Is this a thing now? I like it.

------
divoxx
"Imagine coming to work to spend hours googling, wiring together unbelievably
shitty, amazingly poor documented frameworks and battling Javscript and CSS."

That's definitely not a software engineer routine. Engineers craft/architect
solutions instead of "wiring shit together". Of course, being able to re-use
existing stuff is part of the job but if your job _is_ wiring things together,
specially if you do not know how those things work, you're not a software
engineer.

That said, there are different software engineering gigs with different level
of difficulties and solving different kind of problems. I like the advice of
specializing, getting into more computer science, but that's still software
engineering.

Don't get fooled just because the market is full of shitty _web development_
gigs, that's a small portion of "software engineering".

------
BWStearns
I may be in the minority, being that I came to programming from a desire to
kill the boring shit that constituted most of my old job, but I really enjoy
killing boring shit. It might be a psychological tic, but even if I have under
10 users for a given script I love seeing them ask "Wait that's all I have to
do?" when you show them that their computers are now doing their mindless
bullshit almost instantly. Sure the given business logic might be trivial, but
I've always gotten a relatively bigger kick out of user satisfaction than a
fascinating problem with little user impact. (not to say that fascinating
problems are either useless or uninteresting, I rather enjoy playing around
with hard problems, it's just preferences of rewards).

~~~
chii
interestingly, in some corporate places, the inefficiency is so built into the
politics that if you tried to automate someone's job away, they might be
scared of you! I had a friend who worked at a bank, and in one week, automated
the manual process that used to take the "team" months to do (mostly excel
manual data entry and cleanup). I was told they were scared of being made
redundant...

------
Mikeb85
Every job comes with pros and cons. I used to be a Chef - I loved cooking, but
there's so much tedious work associated with it - prep work, inventory
management, hiring/firing, etc...

Now I'm transitioning into the business world, and finance. I absolutely love
trading stocks, and the thrill that comes with it (especially when you're on
the winning end of a trade), but of course there's plenty of downsides too
(reports, spreadsheets).

And of course, I write code for fun and to automate certain tasks, but even
that can be tedious.

There really is no perfect job, but there are good ones. I think it's more
important to maintain work-life balance than to be overly concerned about how
much fun your job is...

------
lshemesh
I can totally sympathize with the way the author feels but at the same time
I'm very aware of how much of à luxury it is to be a software engineer.
especially nowadays with so many emerging technologies. if you're current job
has become stagnant and your not afforded the flexibility or the ability to
influence change then it's time to move on. if you're afraid of losing a
opportunity coming from equity or share s then that does factor in. best you
can do is try to apply all the amazing things you learn from sources like
hacker news and wait until you're next move becomes clearer. wrote this from
my nexus 7 . really like this hackers news app.

------
shill
I can usually make tedious programming tasks rewarding by focusing on software
craftsmanship.

If I have to write a TPS report generator, I will try to make it the most
concise, reusable, tested and well documented TPS report generator that the
world has ever seen.

~~~
adambard
Ditto for me, although I'd also probably write it in OCaml or some other new-
to-me language just for fun.

------
redshirtrob
Wow. This us uncanny. Replace 'Mensenne primes' with 'Perfect numbers', 'math
encyclopedias for kids' with 'Geometry teacher', 'history teacher' with
'spanish teacher', and 'struggling country' with 'midwestern US state in the
early 90s' and you've pretty much described my introduction to programming--
right down to working on it with another nerdy friend.

I don't think that means much of anything, and I don't identify with the rest
of the post, but I find it interesting that someone from another time and
place has a nearly identical programming origin story.

------
mehuldesai
Programming is like being able to build a house. the house is the product.
some builders are completely driven and passionate and build the worlds most
beautiful structures. Others build the ones we dont like.

programming is a toolset, its in the eye of the programmer where the passion
for creativity, design and ultimately product lies. programming when combined
with architectural skill creates the beautiful products we call iphones,
devices, web stuff...

if someone is stuck thinking programming is just a tool they will naturally
see it as boring or mundane. If someone takes that tool and changes the world
with it, then Im sure they will not see it as such.

------
kalleboo
> Sometimes I also think if it would be different if I was born several
> decades earlier

Or you'd be complaining about writing yet another missile ballistics program,
or converting another basic mathematical or statistical algorithm into MUMPS.

~~~
varjag
Or yet more likely, writing another payroll system in COBOL.

------
ricardobeat
That's a very pessimistic view of software development. The thrilling part of
the work is _building things_ and seeing people use them. That's what it's all
about.

There is always grunt work, but instead of "battling" javascript and CSS you
could use the opportunity to learn more about browsers, interface design, etc.
Channel the frustration into building new, better frameworks, or helping
improve the existing ones. There are plenty of opportunities to exercise your
CS education in fast-growing or large-scale businesses. And for all I know,
solving problems in the kernel or coding OpenGL could be even worse.

~~~
weland
> And for all I know, solving problems in the kernel or coding OpenGL could be
> even worse.

For me, solving problems in the kernel is immensely more interesting and
rewarding than fixing the n-plus-oneth CSS aligning bug. It also comes with
the added advantage of using real development tools instead of nuts and bolts
that barely help you.

~~~
ricardobeat
Apples to oranges. My point is, writing OpenGL code or fixing driver
compatibility issues can be just as boring. CSS is not exactly programming
anyway.

On tooling, take a look at current webkit/FF/Opera inspectors, TraceGL,
TernJS, the upcoming IE11 developer tools and TypeScript. You'll be surprised.

------
MrBuddyCasino
I think most of the disappointment comes from not being able to work as you'd
like to, and with colleagues that just don't care. The solution to that is
freelancing or changing jobs.

Or, as jwz has done, open a bar and sell beer instead.

------
molbioguy
For me, control over what I work on or how I solve a problem is the key to
satisfaction. The more rigid the constraints, the less creativity allowed, the
more boring the job. It's hard to find jobs that consistently allow enough
creative latitude to keep the tasks fun and interesting. The OP's point about
not being a general software engineer (implying specialization) might make
sense. I imagine that more specialized you are, the fewer the people that are
around that know more about your area than you. So you might get more creative
leeway because you're the expert.

------
durgon
I have to agree with the notion that at the end of the day, your job is simply
your source of income. Some people are fortunate enough to be in a position
where their job is fun for them. Good for them. But I doubt even they have
sunshine and rainbow filled days one after the other in the office. There's
always the shitty task that comes up that WILL land on you. That's why your
job isn't your free time (well, maybe it is for some people). Don't get me
wrong, I REALLY enjoy programming. But that's why I have numerous side
projects that I'm working on.

------
michaelwww
"You've got to serve somebody" \-- Bob Dylan. The author doesn't say what is
preventing him/her from finding a programming task that he/she is passionate
about and pays enough to live on. I've been around awhile and let me tell you,
there are so many more interesting programming challenges now because hardware
has made incredible advances. There's only so much you can do in what used to
be called 3M (one megabyte of random access memory, a megapixel display and
megaflop performance.) Oh, and no internet to speak of.

------
icebraining
Well, IE is a world in and of itself, but I rather enjoy battling shitty APIs
and badly document web services. It's a great feeling when you can get a
reasonably elegant fix to a braindead decision implemented in the system
you're interfacing with.

Even as a hobby, I've always preferred writing a script that parses badly
broken websites and sends commands over SSH to an ncurses program that does
something fun and useful, than calculating some number that has been known
since the 30s.

Brokenness is fun, a challenge. It's straightforward CRUD that I dread.

------
leoc
> Sometimes I also think if it would be different if I was born several
> decades earlier.

Check out section 7.6 of Phil Greenspun's SITE CONTROLLER thesis
[http://philip.greenspun.com/research/tr1408/complete.pdf](http://philip.greenspun.com/research/tr1408/complete.pdf)
. It seems there has long been plenty of undesirable programming work (anyone
for in-house COBOL?) but a BS in CS may have been a more reliable route to
interesting work before the PC software industry.

~~~
tjr
I see no section 7.6. [EDIT: Section 6.6 looks potentially relevant to the
conversation.]

~~~
leoc
Sorry, that should read 7.4.

~~~
tjr
Thanks!

------
ngz
This is my 2nd year as a web developer, and I'm honestly very grateful. I feel
fortunate to have this opportunity as my peers are working in much harsher
environments for less compensation.

I've been working all day from a bar in downtown Austin, TX. My CEO is a
developer and is very understanding. Deadlines have to be met, but how or when
you work is at your discretion.

I previously worked in a very harsh environment with a hostile CEO, and I can
understand that it can be oppressive. However, I think that the status quo is
changing.

/2c

------
mmagin
I think this sounds a lot like burnout and the sooner you admit it to
yourself, the sooner you can think rationally about it and address your
psychological needs and start feeling somewhat better. You probably need a
total break from it for a while.

I think that almost any particular sort of work can be either wonderful or
terrible depending on a lot of other factors:

\- autonomy

\- relationship with coworkers/management/clients

\- work/life balance (cliche, but there's really something there)

\- possibilities for learning new things in the course of the work, etc.

------
robomartin
Well, this is also a terrible perspective. Programming can be like being a
professional chef. There are some that become Gordon Ramsay's and others that
get stuck in a greasy diner at a forgotten highway off-ramp.

Cooking professionally can be ugly, filthy, horrible hard work. There's the
television version of the rich and famous cook and the reality of the actual
work being really hard. And, yes, you have to do a lot of stuff you don't
really enjoy doing. And, yes, it isn't all creative and wonderful.

Why am I making an analogy to cooking? Because over the last few years I've
ended-up doing a lot of cooking for my family. I've studied some and really
enjoy the creative process. However, I've also found myself completely and
utterly fed-up with it at times. I used to be the designated cook when we went
camping. The last time we went camping I drove out as far as necessary to go
get take-out.

So,yes, programming, depending on the choices you make, can be like sausage
making.

If you are the creative type you need to make an effort to find the right job
for you or start your own business. Still, as someone else pointed out, you
are going to have to stomach the idea that you are still going to have to do
things that you will not enjoy. This is true of any job.

I always told my employees that I'd never ask them to do anything I was not
willing to do myself (or hadn't done before myself). Examples of that were
things like washing the pile of filthy coffee mugs in the kitchen area ('cause
it seems that adults are pretty bad about cleaning after themselves sometimes)
or getting in our Haas CNC machine to clean it. The point wasn't that I
expected them to actively do these things but to realize that all of us ought
to understand that there are things you don't enjoy doing that simply need to
be done.

As a programmer you need to seek out work that really turns you on. How do you
know? Because you can't stop thinking about it and you can't stop working on
it. You want to talk about it all the time and you want to learn how to do it
better. In other words, you are passionate about it.

In general terms there's a lot of mobility in the CS world. You need to take
advantage of this and actively hunt for work that is really engages you while
fully understanding that utopia does not exist.

------
siliconc0w
I think there is a joel's on this but 90% of business software that isn't
customer facing is boring CRUD bullshit that is shipped when it reaches
'barley works' stage so you can move on to the next project. This sucks. I
think the answer is to go work for a company with more interesting problems to
solve where software is a core competency rather than just a budget line item.

------
room271
It sounds like the poster has a bit of a rubbishy job/one not suited to them.

Yes, all jobs have some boring bits, but if it's always boring then you should
change!

There are really enjoyable programming jobs out there. It depends on:

\- the tech-culture and environment at your work \- your manager(s) and
colleagues (kind of related to the previous point) \- your problem space

Identify why your current work sucks and then either move or change it!

------
Elizer0x0309
Make it fun! Music, news etc. Be proactive about your inspiration!

Programming is one of the only engineering fields that has a quick feedback
loop between Hypothesis -> Results. And I love that! Also the open ended
difficulty bar inspires constant accomplishment. I love it by every character
typed! I have to stop myself cause I have some coding to do ;^p

------
san86
I am not a programmer any more but working in the industry (InfoSec).. I
remember a really smart guy who worked with us said he would be happy with
8-10 weeks of really exciting work each year. I agree with him.. if I have
8-12 weeks of really cool work that challenes me and the rest of the year is
average, mundane work.. I will take it.

------
4xy
I agree with the Author. He is quite right. My story is really close to his.
There are real things in the world, boxing for example, car driving... and so
on. I really hate this programming boring stuff like digging through RFCs and
implementing them, pushing and popping from the stack, handling memory, and a
bunch of other stuff.

------
film42
Sure, programming is a job, like working on cars is a job. You can be mechanic
in a small town, or work for an F1 team. It's your call.

Just take a step back and ask, "what is the company I work for trying to do?"
And if you don't like it, or don't think it's cool enough, move along. Again,
it's all your choice.

~~~
mildtrepidation
This is good advice if you have the experience to be hired for an F1 team. F1
pit crews aren't hanging out at career fairs.

------
mysterywhiteboy
Programming _can_ be like an art form and appreciated in isolation.

In most cases though programming is a means to and end. In that case you've
got to not only enjoy programming - but also believe in that end. When you do
you'll happily wade through all kinds of language, system, and framework
quirks and frustrations to get to that end.

------
ruttiger
I always just ignore the subject domain and focus on a technical challenge.
That's been enough for me for 15 years so far. I haven't ever been stuck on
O&M work though - that seems soul-crushing.

Get yourself some new development work, and try to pick the hardest challenges
and that'll often be enough to stimulate you.

------
mmariani
It's not doing the thing we like to do, but liking the thing we have to do,
that makes life blessed. —Goethe

------
aaron695
TL;DR; OP works in programming jobs that are not ideal for him/her, thinks all
programming jobs are like that.

With a little not realising if you actually take your hobbies seriously they
too will have drudgery in them at times. Not dreaming about but actually
finding Mersenne primes is a world of hell.

------
d43594
I am continually frustrated picking up other peoples shit. I abhor the "get it
working" attitude. This industry is full of sub-par engineers and lazy
attitudes. No excuse, do it properly and then we can stop this "pass the buck"
attitude which is common in this industry.

------
ivanhoe
Any job is boring if you are not motivated by something, whether it's money or
career or building something cool or learning new stuff or whatever works for
you... without that it doesn't really matter if you are a programmer or banker
or cab driver, you'll hate it...

------
seanhandley
Sounds to me like you're externalising the blame for your boredom. We all pass
through crappy jobs.

If you find yourself in those kinds of jobs: move on. There's plenty of
interesting projects and companies out there that will allow you to apply
yourself. Keep looking.

------
exit
_> 1) the demand won't last forever;_

this is one of my greatest fears. at the same time, it seems inconceivable - i
can't picture it.

could programming really go the way of being a lawyer?

how would that happen - less demand for software, or an oversupply of software
engineers?

------
p3drosola
> I don't think I ever caught myself writing code for my employer and thinking
> "hey, I really enjoy this"

If you've never really enjoyed your job I can't fathom how it's taken you so
long to realise this isn't for you.

------
EternalFury
I think the point is: Either you do it because you love it or you do it
because it pays well.

What must be noted is that there are other jobs that pay just as well, and do
not entail as much complexity and pain.

Just ask all the hustlers who make us build their pyramids.

------
aganders3
> Sometimes I also think if it would be different if I was born several
> decades earlier.

 _sigh_

I cringe whenever I hear this in any context. If you find yourself feeling
this way, you should strive to do the things the next generation will feel
this way about.

------
monkeynotes
What annoys me is the author has grown up surrounded by amazing tools and
support allowing him/her to get into programming and is complaining that
his/her particular choices have disappointed.

The world doesn't owe anyone satisfaction. It's up to the individual to find
what makes them happy. Maybe some jobs aren't all that satisfying, in that
case at least you now know this and can do something about it. Want to be a
NASA computer scientist? Guess what, you can!

Lamenting about the 'golden days' of software where it was all tucked away in
labs is short sighted. There are SO many more opportunities to do SO many more
exciting things. Software is in its infancy, the real world changing tools are
still to be discovered. Apply yourself.

------
Fauntleroy
Sounds like the poster has a job he doesn't enjoy. Might want to continue
looking for a company that provides opportunities more in line with what he
wants. Simple as that.

------
cfeduke
Two decades developing software and I wouldn't change a damn thing.

I recommend software engineering to any of my friends who I think would find
it as fascinating and enjoyable as I have.

------
gdulli
> I have graduated and have been in the industry for a few years

No one who can say this about themself is in a position to be making any
absolute statements about anything.

------
BigChiefSmokem
Programming got me and my family out of poverty.

------
kabouseng
It sucks because what the OP is describing isn't software engineering, its web
development...

------
frigg
Maybe the author should follow his own advice if he dislikes his daily job so
much (he or she).

------
derstang
Seems like a complaint anyone could make about any job given theoretical vs.
practical.

------
blar
I very much want to come up with a coherent and inspirational repudiation of
the OPs thesis. This is the second essay I've seen recently that seems to
completely miss the magic of our trade, and I feel like we need some strong
cheerleaders to counter this stuff.

How does a programmer NOT wake up every morning with a head full of inspired,
flaming joy at the thought of what we do for a living? I've been at this for 5
years now (putting me in the same generation as OP, and the other blogger I
came across) and I'm still ragingly in love with this craft. And I (_just_,
you might say) write web apps. Yes, there are tedious days (we are, as many
have stated WORKING, after all). And yes, sometimes the nature of constantly
shifting specs leads us into some ugly code - but that's the nature of writing
and designing to meet the needs of customers; sometimes customers really just
NEED something that isn't very pretty.

But the root of what we do is this: we conjure ideas from memory and
imagination, commit them into words and incantations in the terminal, and send
out our instructions to be carried out by the machine. Making our will
manifest through a medium that is almost completely malleable to our
intentions. If there's another trade out there that's more nakedly similar to
"wizard" I'd love to hear about it. What we do is barely-adulterated magic.
And there is so much room for improvisation, art, and beauty in the crafting
of our instructions, that even a simple CRUD interface can become a work of
glory.

I freely admit that, in my enthusiasm, I'm sounding a bit deranged. And I'm
painting this in a bit more glowing light than most day-to-day coding
deserves. But it pains me to see a programmer with such a negative outlook on
programming. And when that view gets touted as a warning against being a
coder, I feel those of us who really and truly enjoy our trade need to be
standing up and making the counter-argument - with all the ardor and
enthusiasm it deserves.

Addendum: and OK, so the OP may not be making the claim that "programming"
itself isn't what's bad, it's the JOB that's bad. It's writing the code that
our clients need, day-in, day-out, that's bad. My counter-claim to that:
writing bad code is a choice. You can look at every problem that comes to you
as "just more toilet cleaning", or you can look for the aspects of the problem
that separate it from all the code you've written before, and start writing
the correct, clean, elegant response to it. And if you're solving the same
problem a second time, well it ought to be that much easier than before,
right? If you solved the problem PROPERLY the first time, there should be very
little work in solving it a SECOND time. So now you find yourself getting paid
to do less work, while - hopefully - leaving yourself room to more fully
commoditize whatever process you've found yourself on, making it easier to
KEEP getting paid while doing less and less work each time. With your
remaining time, you solve OTHER problems, and continue filling the pipeline
with magic and money.

Seeing the job as tedious and boring starts as a choice you make yourself.
Getting back the magic you felt in your youth is just a matter of remembering
it; and choosing to see it in the next project that hits your inbox.

~~~
lelandbatey
I'm in total agreement. I find programming just so fascinating and beautiful
in a way that's like nothing I've ever seen or imagined. I find everything so
sublime, and I'd still say that at 2am at the end of an 8 hour solid
programming session.

I'm much newer to this (one year and still studying) but I really hope I can
feel this way for the rest of my life.

------
alien3d
that's open source exist.some part of the work doesn't give the flexibility
what you want to build.if you're happy with it share it and share your
happiness with others.

------
okonomiyaki3000
Yeah, it's the worst job there is. Except for all the others.

------
nickthemagicman
So the article is saying go be sys admin?

------
bitops
I understand OP's sentiment and I'm glad that he (assuming he's a guy) at
least admits that some of this is youthful idealism having a tough run-in with
reality.

That said, I don't think he has to stay stuck in this mentality. And, there
are many benefits to being "just a software engineer". Much of it depends on
your attitude towards life and what you're expecting and/or hoping to get out
of it.

First, it's important to recognize that as we get older, we'll eventually have
to confront the fact that not all of our dreams and ambitions will come true.
If you look at the number of thought leaders in the industry in ratio to the
total number of programmers, very few make it to the top 1%. I don't think
it's a zero-sum thing, it's more that at a certain point, people give up and
decide to do something else. OP may be one of those people who decides that
because reality didn't match his expectations, he's just going to give up. On
the other hand, he could decide to push himself and his understanding of what
it means to program to a new level. And then he might see new opportunities in
his current job that he hadn't noticed before. I know that this can sound
hopelessly fanciful and idealistic, but it really is true and quite possible;
I speak from my own experience here.

Second, one of the most awesome things about programming - regardless of the
type you're doing - is that it helps improve your mind. Since I've been in the
tech industry, I've found that my thinking tends to be cleaner, more rigorous,
and more realistic (though not always, of course). I have an easier time
understanding difficult topics than I used to and I also find the process of
learning easier than in the past. For that reason alone programming is a
worthwhile pursuit. Who doesn't like their mind to work better?

Finally, OP has some growing to do and should try to realize that his current
predicament has much to do with his attitude and little to do with his actual
job. As other posters have noted, this problem exists in every creative
industry. You were excited about the pure fun of it when you were younger, and
now you feel mugged by reality as it were. Part of this could relate to our
model of education which sometimes makes it seem as if academia is much
preferable to actual private industry work. Like they said in Ghostbusters -
"they expect results in the private sector!"

My advice to OP would be to try and balance his current work responsibilities
with something fun outside of work, something that gets his juices flowing.
Learning to bring a sense of play into your really helps, otherwise yes...the
sense of drudgery can kill you. So the trick is to learn to stay positive.
Sounds like a tall order but it's definitely doable.

------
sonabinu
try being a full time mom !!!

------
njharman
For you.

Not for me.

Mine is a Wonderful Life.

------
paulhauggis
I love programming, it makes me a good living, but I hate working for other
people.

My main issue is a manager or a boss that can't manage a project properly and
it crashes and burns (and I just have to watch and smile) or I am forced to
work weekends or extra hours because of it.

This has happened at nearly every development job I have ever had. So, I
started my own company and now work for myself.

------
seivan
We're a broken tribe. Why build something yourself, when you can have a code
monkey do it. I do feel like a code monkey.

No wonder we have so many product managers, project managers, UX designers, UI
designers, other forms of designers, but very few developers.

No wonder people rather be PMs of different sorts.

~~~
lgieron
I've been a PM, and also worked with software on a more abstract level
(enterprise architecture). Came back to coding, and am happy with it. I much
prefer poorly documented franeworks and half-baked tools to the day-to-day
nonsense of politics that is inherent to working in higher-level role in any
bigger organisation.

------
rfnslyr
It's an absolute luxury to be able to get paid exorbitant amounts and not
having to break a sweat. Oh wow I had to parse CSV files for four hours, poor
me. What if you had to break your back on a farm 10 hours a day with the
constant uncertainty of whether you'll make a dime or survive until next year?

Your job is what you make of it. Bring some awesome music, change your desktop
background, install a new theme, read some shit during lunch. It's what you
make of it, and you're in a better position than a lot of the people out
there!

~~~
BillyMaize
I really hate the attitude in the first few sentences. The "your life is
better than others so be grateful" idea never really applies, its like saying
"your neighbor gets beaten three times a day, so don't complain when you only
get beat once!". Just because someone else's life is worse than yours doesn't
mean your own is so great. Also, the person breaking their back on a farm
might be doing that because they made choices in life which lead them to have
a poor future.

As for your job being what you make it, I totally agree. There are lots of
ways I have made my work life better recently even when I hate my job (for
example I got a keurig) and until you do everything you can in that aspect you
can't be sure you won't be happy. When you do all of these and THEN still
aren't happy, find a new job.

~~~
rfnslyr
That's not the same at all. Comparing getting beaten vs getting beaten more is
not the same as working in an air conditioned office vs a farm.

To make any job "fun", I always have IRC and messages going so I can talk to
people a lot of the time. Keeps the day exciting.

~~~
iSnow
>I always have IRC and messages going so I can talk to people a lot of the
time

In a lot of software shops, you are not allowed to chat, use IM or even bring
headphones (like here)

~~~
avenger123
You know, I will give you that.

My experience and I would venture to say most of the comments are based on
people working in North America (or a similar place).

I would say that likely you work for a company that is either based in India
or another similar country. I can definitely see how they would treat software
developers like a sweat shop.

And its tough as "change your job" doesn't readily apply.

~~~
stephenhuey
I'm not sure iSnow is in another part of the world, because there are actually
plenty of companies in North America that do not allow programmers to bring
headphones or use IM at work.

~~~
avenger123
I could understand the IM part. The headphone one?

I don't dispute what you are saying but that seems to much for a software
company to be doing in North America.

~~~
stephenhuey
I agree, but the majority of programmers are not working at software
companies. As many old-timers pointed out to me when starting out, software
developers are generally treated better at software companies than other
companies that may see them more as a cost center than a profit center.

------
tzakrajs
Fixed your title: "Programming [JavaScript] is a Terrible Job [for me]"

------
michaelochurch
I came to this late and will probably get buried. Anyway, here goes.

1\. Programming punishes you brutally if you do it wrong. Bugs occur for what
seems like no reason, problems are unsolveable, and the job becomes an
unrelenting, unrewarding slog. (Conversely, it's a hell of a lot of fun if
you're doing it right.)

2\. Some companies and teams are managed by idiots who will force you to do
things wrong. If you're 22, you'll probably end up working for at least one or
two before you're 40. Leave them, because...

3\. Until you get used to doing things right, and learn how to things
properly, and get the credibility that comes with actually being good at this
job-- and that takes a while-- nothing will make sense and your career will be
for shit.

When you're bad at your job (and everyone is, when starting out) or when
things are bad, it's not obvious. Nothing is ostensibly bad, so much as
incoherent. You get trapped in a flood of grunt work that seems beyond
automation because either (a) you're not skilled enough, yet, to do it; or (b)
you're not in an environment of excellence that encourages automation. When
things seem unpleasantly stochastic, get out and move to a more coherent
place.

The issue with OP is that he hasn't figured out that solving the right
problems is far more important than solving the highest percentage of what's
put in front of you. IE hacks? If it's your web app, or if you're strongly
investigated in the success of the thing, make a cost-benefit analysis and
decide whether to do the IE hacks; at least if you end up doing them, you're
doing them for you. If it's someone else's ambition and you know that doing
good work won't be paid in kind, just do well enough on the grunt work to
avoid political adversity. Then pack away as much time as you can to learn the
skills you'll need, and make the contacts you'll want, for the next act.

Rule One, which should never be broken: if it's bad for your career, don't
work on it. I'm not saying never work on unpleasant stuff. Sometimes, the
unpleasant work is important. If you ever want to be a founder, you have to
get used to doing annoying or unpleasant work when there's no one else to do
it. However, if the work actually _hurts your career_ \-- and there is plenty
of work like that out there-- then it's virtually never worth doing.

In the short-term, if your boss considers it important, it is (by definition)
good for your career. However, if you're getting tossed the IE support while
the interesting work gets passed on to favorites or hogged, then it's time to
(a) just get up and do more interesting stuff-- it's better to ask for
forgiveness than permission-- or (b) find another team or company. So long as
people like OP don't realize that they need to take self-executive
responsibility for their own careers, they'll be doing the shit work no one
else wants to do.

Programming gets a lot better as you (a) get better at it, (b) gain
credibility, and (c) learn the warning signs that surround bad jobs and
failing teams. There _are_ a lot of people who get to work on better stuff
than someone else's IE support. It takes a while to get there, and it's done
one day at a time, but unless you're untalented, steady progress will lead
that way. Even if you don't care to play politics actively, you have to learn
the warning signs. That takes years. Until you develop those skills,
everything seems nonsensical and wrong, though; and the industry seems
uniformly terrible. It's not. It's mostly terrible; the good news is that it's
mostly terrible because of the MBA-style, anti-intellectual management that
used to be common everywhere, and that's slowly going extinct-- because what
it produces is of too low quality for it to survive.

------
par
noobs gonna noob.

