13 ms·
Does Anyone Find Joy in Programming
I've been programming for twenty years, and looking back on it all, I can't think of anytime when programming was fun.
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?
Programming seems like arguing with a petty opponent that won'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.
Also, I think it'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.
And in the open source world it's hardly better. There was the Openssl fiasco we had a few years ago, and now that we know about Spectre and Meltdown we're not even safe on the hardware level!
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?
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't even remember the day after.
When I walk past a roomful of programmers, I don't see too many smiles. Instead what I mostly see are expressions that are at best blank, but more often confused, frustrated or angry.
I envy musicians, fiction writers, at least their work gives people joy, and maybe gives them joy as well.
- grawprog 9y agoYes 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.
- Thetawaves 9y ago>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?
- danso 9y agoYes, 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.
- watmough 9y agoYes, 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 9y agoAdvent 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.
- BackwardSpy 9y agoI 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 9y agoHave 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 9y agoThankfully 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.
- shahbaby 9y agoValuable 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.
- somethingsimple 9y agoFor 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 9y agoyou may be interested in https://nixos.org/nix/ https://nixos.org/nix/ https://nixos.org/ https://nixos.org/
- lovelearning 9y agoWhen 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.
- yongjik 9y agoYou 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 9y agoI'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.
- deleted 9y ago[deleted]
- simonblack 9y agoYes. 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.
- itronitron 9y agoI 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.
- yesenadam 9y ago>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 9y agoI meant all the programs we collectively have done, to me its all a bunch of vexations.
- yesenadam 9y agoAh 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.
- daly 9y agoI'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 9y agoBeautifully said.
- mattbgates 9y agoI love the designing most, and the programming second; brainstorming is also fun. Debugging is okay. I'd say I dread marketing... but its necessary.
- megaman22 9y agoYes, 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.
- superasn 9y agoOh 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.
- j-pb 9y agoI 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.
- zapperdapper 9y agoOh 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.
- xchip 9y agoI 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 :)
- rayascott 9y agoIt’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.
- zrb05292 9y agoI 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.
- matfil 9y agoI 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.
- apohn 9y ago>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 9y agoAny idea why the expectation of autonomy for professional programmers seems to be so much lower than for professional novelists?
- anotheryou 9y agoI 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...
- kleer001 9y agoThe 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."
- psyc 9y agoIt'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.
- mbrock 9y agoWhen 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.
- johnstorey 9y agoI 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.