
Does Anyone Find Joy in Programming - davey_the_dog
I&#x27;ve been programming for twenty years, and looking back on it all, I can&#x27;t think of anytime when programming was fun.<p>Really I gotta ask, and this is an honest question: does anyone find programming fun?  Can anyone find joy in an activity so full of frustration?<p>Programming seems like arguing with a petty opponent that won&#x27;t give you even an inch.  Every damn little thing from a semicolon to a typo results in a big bzzzt!  Hundreds of times a day I get told I am wrong in the most petty, pedantic way by a dead lifeless piece of metal.<p>Also, I think it&#x27;s not hard to argue that a lot of code out there is crap.  Over the years I must have seen gigabytes of horrible corporate code.<p>And in the open source world it&#x27;s hardly better. There was the Openssl fiasco we had a few years ago, and now that we know about  Spectre and Meltdown we&#x27;re not even safe on the hardware level!<p>Doesn&#x27;t it make you wonder: what the heck have we built?  Does any of this have any value?  Aren&#x27;t we just producing codified frustration and pain =for another programmer to slog though after us?<p>On the physical side, programming is a sedentary activity that over time moulds your body into the shape of a chair.  Twenty years spent squirming on a rack and worried about nonsense that I can&#x27;t even remember the day after.<p>When I walk past a roomful of programmers, I don&#x27;t see too many smiles.  Instead what I mostly see are expressions that are at best blank, but more often confused, frustrated or angry.<p>I envy musicians, fiction writers, at least their work gives people joy, and maybe gives them joy as well.
======
daly
I've been programming for 47 years and I love it. There have been bad times,
like the 3 times I fought compiler errors, or the 2 times the hardware bugs
made life difficult. But it's been a constant learning experience. I've done
everything from building a computer and operating system from scratch to
creating expert systems to programming FPGAs and creating really complex
software.

I tell everyone who has ever asked "Should I learn to program?" that they need
to know if they can handle being constantly frustrated, puzzled, and confused.
Do they know that they'll spend a week on a bug, fix it with a rush of
success, only to be on to the next problem minutes later? Can they handle
losing a weeks worth of work because the hard drive crashed?

It really isn't about programming, It's about facing yourself in the mirror
that programming represents. Are you happy being alone with your own thoughts
and facing your own limitations and flaws? Writers face the same problem,
alone in a room with blank paper.

Mirrors are terrible things. The joy is in the struggle.

~~~
willbw
Beautifully said.

------
superasn
Oh god I love programming. I love it to death. I can't think of anything else
that has given me more joy than programming.

Instead of thinking like "arguing with a petty opponent" I would say to me
it's more like physics where there are rules that can bend but not break and
you have to figure out how to do it within those constrains and when you do,
it's pure just bliss.

Fortunately I've never had to do it in a job. Started my own thing after
college and only worked in languages I liked. Turned down a huge project once
just because it was Java and I hated Java at that time.

I guess the only time I didn't like it is when I was freelancing at the start
of my career. Working on other people's idea is certainly not fun.

------
kleer001
The grass is always greener, hoss. It's not just you. It's not just
programming.

As a professional artist (18+ years and trained since childhood) and dabbler
in every discipline (and friends in most) I can tell you, without a doubt,
that every session musician, visual effects artist, writer (of every stripe)
that does it for a living has to deal with endless streams of tedious
bullshit. Creativity isn't a panacea for the existential blues.

If it's not a compiler it's a producer, art director, editor or studio being
the petty opponent.

So, like every master since antiquity I'm going to ring that familiar bell...
"It's all in your head, dude. It's all perspective. It's all in how you look
at it. Chop wood, carry water."

------
simonblack
Yes. But there's a big difference between 'have to' programming, and 'fun'
programming.

Just like a man who earns his living being an airline pilot might relax by
being a train driver with a community's tourist railway at the weekends.

You'd probably be able to find lots of musicians who don't particularly enjoy
playing their instruments every night.

------
matfil
I find joy in solving problems with computers. Sometimes a lot. The
frustration around dealing with core tools (like your semicolon example) has
never particularly bothered me. After all, the rules are learnable, and are
usually there for a reason. I like working on my own problems, but doing stuff
for someone else is good too. Even if I'm being asked to solve not-quite-the-
right problem (I'll speak up about this, but at the end of the day: paid to
hide in a corner and program? Hell yeah.)

That said, if you see me in the office, "confused, frustrated, or angry" is a
real possibility, and I do something find myself seriously wondering whether
it's a career where I have much of a future. Thing is, it's never the
_programming_ that's the issue. Rather, it's management approaches which
downplay the one-on-one person-versus-computer aspect, and instead maintain
that software should be the result of a team following a somewhat-defined
process. Collective ownership, pairing, and big piles of standards to follow
completely destroy the individual, almost-artisanal side of programming.
That's when it starts to look like a slog.

------
j-pb
I completely agree with the sentiment. To me we are destroying society for ads
and likes. We value moving homescreen backdrops more than long lasting
batteries, useless web games more than reliable medical applications, mining
crypto currencies more than curing cancer with scientific computing. Our tools
are boring and lack imagination, our hardware architectures and the way we
program them are the same dead horse beaten to death.

We branched off somewhere in the 80s and forgot that there is a timeline where
things just work, where they serve a purpose for the greater good and where
form follows function.

Programming right now is 90% wasting everybodies time by creating stuff that
nobody really needs in a way that nobody really deserves.

But it's a hole we dug ourselves.

Afterthought-

I find it telling that everybody in this thread exclaims that they love "the
puzzle" or "facing themselves in times of hardship", but nobody talks about
creating stuff. Programming shouldn't be a crossword puzzle that you do for
it's own sake, it should be a means to reach a goal, and produce something
meaningfull. And as with every means the less you have to do of it, the
better.

The best line of code is the one never written.

------
somethingsimple
For me the joy has been fading over the years. I was super excited about it as
a kid learning BASIC, and C later in high school. College was exciting but the
frustration started there.

I’m frustrated most of the time working in the industry. I find a certain
amount of joy when I have ownership of a piece of a system and can mold it
according to my wishes. The joy instantly fades away when I have to
collaborate with people that I know don’t give a damn, just want to get a
ticket completed, and will totally crap on the code to get there.

I used to find joy in my personal projects. But that has faded away too since
I started switching to more modern stuff so I stay up to date. Everything
these days seem to require a humongous amount of environment set up.

~~~
zzzzzzzza
you may be interested in [https://nixos.org/nix/](https://nixos.org/nix/)
[https://nixos.org/](https://nixos.org/)

------
rayascott
It’s like anything: if you do the same thing over and over, you’re going to
get bored. If you’re a cookie cutter Java web developer then the way you’re
feeling is understandable.

I get my enjoyment out of learning and applying what I’ve learnt to create
something that others find useful. The true satisfaction comes from
architectural design that is creative and inspirational. The more I learn
about supporting technologies that I then apply to enhance the design of a
system or tool, the more I love working with code.

For me, the key is in making a difference.

------
zapperdapper
Oh I know EXACTLY how you feel. I also happen to agree a lot with what you
say.

I do also think things have got worse. There was a time when with a copy of
TurboBasic, a list of BIOS and DOS interrupts, you could do ANYTHING. I once
wrote a complete oil rig data acquisition system in TurboBasic with nothing
more than a copy of Peter Norton's guide to the IBM PC and the F1 key. And it
_was_ fun. But then software became a real thing and lots of money was at
stake and everything became so much more bloated and so much more complex, and
less fun too.

I remember the software company I worked for, some years ago now, had a
"charity in the community day" when we went out and chopped down invasive
trees and burned them, and in five years working there it was the best day I'd
had. I went home sunburnt and physically tired, but mentally fired up and
happy.

Once I gave an impromptu English class in a primary school in Thailand back in
2003 where a friend was a teacher, and it was one of the most unforgettable
experiences I've ever had. I envied my friend who'd escaped the stale grey
corporate world and was living under blue skies and surrounded by happy
children day after day. I once asked him if he'd ever go back to his old life.
He told me he'd only go back there in a box.

I still code, and sometimes it's fun, and sometimes it's not, but I try to
have long breaks between coding, and working, and just do other things.

------
apohn
>I envy musicians, fiction writers, at least their work gives people joy, and
maybe gives them joy as well.

Ask yourself this - what qualities do you see in this work that you admire?
Are they things like autonomy, creativity? Which of those are you missing from
your work? Do you work with/for people you like and respect?

Imagine this scenario.

You work as a writer for a huge company called International Book
Manufacturing. An exec has just decided the company wants to launch 9 book
series on romantic vampire-pandas and they have got funding. This is what
happens next.

1). A group of execs and strategy researchers sit down and decide the major
themes of these books 2). A group of senior managers narrow down which book
get which themes 3). A group of book managers are assigned to each book. They
write the major plot requirements for each book 4). A group of principal book
architects write out the major plot points 5). A group of book architects
define what goes into each chapter and do the outline for each chapter 6). A
group of principal book engineers further refine the outlines and define the
paragraphs 7). The writers finally get all of this and are assigned
paragraphs. You only get to interact with your team, which is people who are
writing the same chapter. You have a style guide for what you can and can't
do. 8). Halfway through the project, book scientists uncover vampire-pandas
are on the way out and ware-koala bears are the new hot things. Major parts of
the books are rescoped. 9). When your team is 80% done with your chapter, an
editor realizes an important portion of your chapter was not done properly but
the person who worked on that has left the company. They scramble to get a new
person, don't train them, and have them fix that portion in a completely half-
cooked way, which causes major problems when book 4 is started. 8). The
company realizes that a competitor is going to publish a 10 book series and
the first one is coming out 3 months before yours gets to market. The scope is
changed to get your book out the door sooner.

Would you enjoy being a writer in this situation? Do any of the qualities you
imagine a happy writer/musician has in their work exist in this scenario?
Sadly, I imagine there are people who churn out stuff like this (e.g. Mills
and Boon Romance Novels, Top 40 Songs) because they have to.

~~~
matfil
Any idea why the expectation of autonomy for professional programmers seems to
be so much lower than for professional novelists?

~~~
TheCoelacanth
Because novelists who don't already have a proven track record of producing
marketable work are producing the work on their own dime and only get paid
after they have already produced a financially successful novel.

Programmers have the same option, but most choose a guaranteed paycheck over
autonomy.

~~~
apohn
I also wonder if the autonomy novelists have changes when they get famous.
Suddenly the success of the book has a direct impact on sales of future books,
movies, toys, games, cartoons, the Disney Rides, etc. When there is more risk
there are going to be more people trying to mitigate that risk.

I think that's true of software as well. When V1.0 of your software has a
large install base, lots of things are going to be put into place to make sure
2.0 doesn't cause your customers to run. That decreases autonomy, especially
when some of the "management" is really just political nonsense and ladder
climbing.

------
anotheryou
I love programming for private causes. You build something from scratch, all
you see is what you build. And what you build can grow exponentially (object
oriented ftw!).

Within the realm of the digital I can build nearly everything I can imagine.
Most of my personal programing is about finding something out I couldn't
without building a tool for it.

\---

Programming for bread and butter: meh. I did a lot of front-end stuff, I now
hate browsers (love my FF still), clients (remained diplomatic though), bad
specifications (now writing them myself, hopefully doing a much better job)
etc. But I also never dug in arguably more interesting scientific and "back-
end" stuff. I transitioned to product/project manager and I'm quite happy with
that.

I'm now seeking for a path towards 20h/week to get some personal programming
done; advice welcome. This should be much easier in a non-manager position,
maybe that could work for you, too.

Oh and artists: Some few lucky ones can live from _their_ art, some fortunate
where able to bend themselves to make their art likeable (or where in the game
to be liked in the first place). All the others are doing contract work
(especially musicians) or don't earn anything...

------
BackwardSpy
I do. I seldom find frustration when I am programming. It's very rare that I
come across an error that isn't entirely my fault. A flaw in my understanding
is a learning experience. A mistake in my typing takes a simple correction,
and perhaps an improvement in my tools to highlight or even automatically
correct the mistake in future. I don't find this annoying.

Occasionally an issue presents itself that requires more than a simple tweak
to fix. Sometimes these issues require totally rethinking my view of the
problem. I find enjoyment in problem-solving.

On the rare occasion that a problem lies within a tool or library I'm using,
at the very least I can usually raise it as an issue somewhere. In some cases
I have been able to fix the problem myself and submit a pull request for it.

Sometimes frustration happens. I find it helps a lot to walk away from my desk
for a few minutes, and come back later with fresh eyes and a clear head.
Talking through a problem with someone else often highlights flaws in my
logic.

~~~
itronitron
Have you ever worked in an organization where you were strongly discouraged
from refactoring, or otherwise touching, the code without a change request?
And if the answer is yes how did you deal with that?

~~~
BackwardSpy
Thankfully I have not. I currently work in a small team (<10 developers). We
try not to change things just for the sake of changing them, but when there is
a good reason to do so then we can. Our code base is far from perfect but I am
content with our ability to fix issues that would make it painful to work
with.

I don't think I would be happy in a job where I didn't have this freedom.

------
watmough
Yes, but I've been super skeptical of the latest fad for most of my career.

Nowadays, I'm working on improving areas that I have neglected, and following
my instincts of trying to program with as little 'baggage' as possible.

My project of the last week or so has been a program to generate colorbars
according to the cubehelix technique, and I'm using this as a UI testbed for
doing all the latest hi-dpi hi-jinks to support nice screens in Windows 10.

I'm also programming in the Petzold-98 style, with nothing much more than the
Windows headers, using VS Code with MSYS2, g++, gdb and the stl.

It is certainly refreshing, and relatively joyful to be free of the various
layers of crap that are usually pasted into your programming life, obscuring
the relatively simple Windows API.

The Advent of Code also has been a total high spot of the year. I completed
it, and whilst not getting any actually leaderboard point, I did write code
for all the challenges, and managed to develop as programmer whilst doing it.

~~~
BackwardSpy
Advent of Code is great. I've not actually finished it yet, but I keep doing a
challenge here and there when I feel like it. I might go back and do some of
the earlier years when I'm done with 2017.

------
lovelearning
When I started off, I used to enjoy all programming regardless of whom I did
it for.

Now, 20 years later, I enjoy only the programming that I do for my own
ideas/projects/business, and don't enjoy the programming I sometimes have to
do for others.

Another aspect that impacts the enjoyment for me is the part of the
architecture I'm programming. I enjoy everything server-side or analytics
related, especially if it's in Python / Java / C++. But I don't enjoy front-
end activities like HTML/CSS web designs, javascript, or android front-end. I
find front-end coding frustrating because doing it well sucks up too much time
for little value and not much learning I can use in future, but cutting
corners is also not an option because it's glaringly obvious and off-putting
to users.

So it's a mixed bag. In my case, I'd say I enjoy 80 percent of all the
programming I do.

------
danso
Yes, though not as a professional programmer, but as someone who's used
programming to help with tasks in my actual jobs (such as journalism). Or for
personal interests, like writing a simple scraper to gather and organize
Craigslist apartment listings when looking for places to live.

As I've gotten more experienced in programming I've learned to accept that
lack of permanence is the tradeoff for the dynamic and adaptable power of
programming. I do take joy in increasing and perfecting my software
engineering capabilities -- it's good intellectual work, and it further
improves my abilities in hacking for personal purposes.

But when I've had to build and maintain apps and software for public use, I've
been much less happy, for the reasons you've mentioned, and particularly
because of the constant breakage and maintenance work.

------
megaman22
Yes, oh yes. When I actually get to work with code, it's sublime. I had a
quiet day today, and I got to fix a buggy module, refactoring out into cleaner
pieces, building out a test suite to verify its correctness, shaping and
molding a hairy, slapped-together piece of trash into something I may never
have to touch again. On the best days, it's like code is clay in my hands, and
I just sculpt it.

It makes all the rest of the time I spend frigging around with customers,
tracking down environmental weirdness, ttading emails, herding cats,
frustrating ops work, and fighting to be allowed to actually _do_ anything
worth it. Sometimes all that overhead overwhelms me, but the fleeting moments
of solitude in the IDE, bringing form out of the elemental chaos, restores me.

------
johnstorey
I am having trouble relating. As an engineering manager, not jumping in and
doing what the team should do is a major challenge for me. It turns out that
as a manager I've greatly increased team productivity, been able to stop them
working every other weekend as a result, and the team skills and happiness are
visibly improving. But I just have a constant temptation to code instead of
work on all that because I love it to the point where it is almost compulsive.

To satisfy that I get up early 3 days a week to work on side projects to
satisfy that desire.

------
zrb05292
I enjoy programming. I do not work on huge, complex systems though. Not
directly, anyway. I mainly work to automate things and on integrations. But
just yesterday for instance I wrote a small script that downloaded and
organized several hundred files for our analysts and they were so happy. I
guess I just like helping people even if it’s in small, seemingly trivial
ways. And the little programs and scripts I write are my way of doing that.

------
psyc
It's honestly _the_ thing in life I get the most joy from, and it has been
that way for almost 30 years. That's why I do it so much. Now, I despise
having to write code for a company, because they compel me to write code that
I wouldn't choose to write. Like a patron handing a fine artist a paint-by-
numbers. Sometimes I have to eat that shit for the money. But at home, I code
for pleasure, and it is pleasure.

------
xchip
I love it, it is like playing with Lego but with infinite blocks and for free.
And you have cool modules already built on GitHUB for free again.

It's the neverending joy :)

------
yongjik
You might be suffering from burnout or depression. If you think you started to
have such feeling a lot recently, you might want to talk to a doctor, or at
least reduce the amount of work you do and just walk outside more (or find
some other stuff to relax your mind). Regular exercise would definitely help.

Feel free to disregard this if I was widely off the mark.

------
Owlpoko
I'm in the "love it" camp. Most of the time, anyway. I guess everyone has a
bad day every now and then. To me, it seems like getting paid to solve
puzzles.

Writing new code is way more fun that maintaining old code. Creating a new
application is almost like a form of art.

------
Thetawaves
>Doesn't it make you wonder: what the heck have we built? Does any of this
have any value? Aren't we just producing codified frustration and pain =for
another programmer to slog though after us?

This is rather insightful. Does it ever end?

------
yesenadam
>Does any of this have any value?

What's 'this'? The programming you've done?

Q. What programming have you done? What have you spent 20 years doing?

or you mean, all the programming all programmers have done?

~~~
davey_the_dog
I meant all the programs we collectively have done, to me its all a bunch of
vexations.

~~~
yesenadam
Ah ok. In your comments on this page, you are mostly talking about your own
lack of satisfaction in programming as a career. Maybe that's infecting your
feeling about the whole computery enterprise.

Personally, I've been an amateur programmer for 35+ years, I've always loved
it. I read about stuff, then write a program to do it, and experiment with my
own ideas, from fractals to neural nets, anything.

I started a computer science degree once, so I could get programming work I
guess. But I went to a programmer friend's place of work - he was working on
the accounts software for some company - and it was all so awfully depressing
I quit my course. Maybe most programmers' work is like that, I don't know.

------
shahbaby
Valuable work is often not easy. If it were so easy that you could do it with
a genuine smile then a lot more people would be doing it and then those smiles
would be fake.

------
itronitron
I do, primarily in the things I am able to do with the programs that I have
written. Also occasionally by refactoring old code or by finding and fixing
bugs.

------
mattbgates
I love the designing most, and the programming second; brainstorming is also
fun. Debugging is okay. I'd say I dread marketing... but its necessary.

------
mbrock
When I'm programming, a lot of the time it's in order to make easier something
that's definitely more boring than programming.

Most programming might not directly give _joy_ to people, but most people who
work in accounting are probably happy they can use spreadsheet software
instead of spending hours per day doing their own arithmetic.

Musicians might be enviable—well, at least those that are sufficiently
successful to work on their own terms and have a good income, which isn't easy
to attain. Touring probably isn't for everyone. And fiction writers... I'm not
sure they're so cheery and satisfied in general.

Here's David Foster Wallace about writing Infinite Jest:

 _The best metaphor I know of for being a fiction-writer in the middle of
writing a long book is Don DeLillo 's "Mao II," where he describes the book-
in-progress as a kind of hideously damaged infant that follows the writer
around, forever crawling after the writer (i.e. dragging itself across the
floor of restaurants where the writer's trying to eat, appearing at the foot
of the bed first thing in the morning, etc.), hideously defective,
hydrocephalic and noseless and flipper-armed and incontinent and retarded and
dribbling cerebro-spinal fluid out of its mouth as it mewls and blurbles and
cries out to the writer, wanting love, wanting the very thing its hideousness
guarantees it'll get: the writer's complete attention._

 _The damaged-infant trope is perfect because it captures the mix of repulsion
and love the fiction-writer feels for something he 's working on. The fiction
always comes out so horrifically defective, so hideous a betrayal of all your
hopes for it—a cruel and repellent caricature of the perfection of its
conception—yes, understand: grotesque because imperfect. And yet it's yours,
the infant is, it's you, and you love it and dandle it and wipe the cerebro-
spinal fluid off its slack chin with the cuff of the only clean shirt you have
left (you have only one clean shirt left because you haven't done laundry in
like three weeks because finally this one chapter or character seems like it's
finally trembling on the edge of coming together and working and you're
terrified to spend any time on anything other than working on it because if
you look away for a second you'll lose it, dooming the whole infant to
continued hideousness). And but so you love the damaged infant and pity it and
care for it; but also you hate it—hate it—because it's deformed, repellent,
because something grotesque has happened to it in the parturition from head to
page; hate it because its deformity is your deformity (since if you were a
better fiction-writer your infant would of course look like one of those
babies in catalogue-ads for infantwear, perfect and pink and cerebro-spinally
continent) and its every hideous incontinent breath is a devastating
indictment of you,on all levels . . . and so you want it dead, even as you
dote and wipe it and dandle it and sometimes even apply CPR when it seems like
its own grotesqueness has blocked its breath and it might die altogether._

 _The whole thing 's all very messed up and sad, but simultaneously it's also
tender and moving and noble and cool—it's a genuine relationship, of a
sort—and even at the height of its hideousness the damaged infant somehow
touches and awakens what you suspect are some of the very best parts of you:
maternal parts, dark ones. You love your infant very much. And you want others
to love it, too, when the time finally comes for the damaged infant to go out
and face the world._

 _But wanting other people to love it, now, means hoping that others somehow
won 't see the hideous infant as you see it—as a grotesque, malformed betrayal
of the very possibilities that spawned it. You hope very much they'll look at
it and pick it up and dandle and coo and fall in love with something they see
as pink and whole, as the sort of transcendent miracle that only whole babies
and unwritten books are._

 _So you 're in a bit of a dicey position: you love the infant and you want
others to love it, but that means that you hope others don't see it correctly.
You want to sort of fool people: you want them to see as perfect what you in
your heart know is a betrayal of all perfection._

------
grawprog
Yes I do. I enjoy the frustration and the feeling of overcoming it. That
strange sense of disbelief when your program finally actually works. It's the
same reason I like old video games. I find programming to be very similar to
playing music. Putting a program together from functions or objects built from
primitives is very similar to building chords and bars out of notes.

