Ask HN: Ever lost your love for coding? How did you get it back?

84 points by rlawson ↗ HN
Have you ever lost the love for coding? I sure did after a grind as CTO of a startup and then director at a financial services company. Needing everything yesterday and dealing with the corporate politics - I found my work was no longer any fun. I took a sabbatical and leveled up on Python/Django and started having fun again. I even made and sold a micro-startup that was Django based. What I loved was it allowed me to be productive as an individual - I didn't need a team of 10 to produce something. Have you ever lost your love for coding and then gotten it back? If so how?

81 comments

[ 3.3 ms ] story [ 190 ms ] thread
I've never lost it but I for sure have my days where I wish I never became a SWE and became a baker or something instead. I don't know what sort of projects your coming from but I know big enterprise projects can really become a drag, couple that with politics and it's not a good mix.

For me I always did some coding at home on my own projects. For me one of the most stressful things in coding professionally is dealing with shit outside of your control. Being able to work on a project that is entirely conceived and written by you lets you have that control back, even if it's on a small toy project.

Hobby projects. Make something that you care about and want to have.
I was planning to go get my MBA, then I transferred teams and suddenly I like programming again. To be fair I don't think it was so much the coding that I didn't like, as everything that came with it (at least on my previous team) which in turn made me not want to code anymore.
This could be a symptom of burnout (or depression) which are slightly wider topics and so have more advice available if that seems to fit.

For regaining joy in programming specifically, I'd say the same as I say to people trying to learn in the first place. Try to find a project that has some real world impact that you actually care about (even if it's trivial or frivolous to others) and use that as a focus to get you through the boring bits.

Similar to woodworking or other crafts, a crappy product that you (or someone else) can actually use for something is a lot more satisfying than a perfectly made thing with no use to anyone.

It's notable how often, too, folk turn to craft analogies when talking about code.

So many people in tech (including me) try to turn to craft/art as a way of 'escaping' the grind. It's often not the coding that gets people down but all the 'organisational' activity (or management or however you want to phrase that) that goes alongside.

Hehe so true.. I also started building wooden longboards in my limited spare time instead of building yet another cool Github project.

Another thing for me is that I actually can finish these projects opposed to many of my private software projects where I just lack the time (and maybe energy) to finish them.

I realized a few weeks ago that I am happier since exchanged coding in my spare time with wood crafting in my spare time.

1. Learn to build things

2. Learn to hack them

3. Build tools to hack things (or learn existing ones, e.g. https://github.com/GhostPack and https://github.com/cobbr/Covenant for you .NET folks)

Going from business apps to tools offers a nice change of pace.

4. Give yourself permission to write quick, sloppy, slapdash, throwaway code. Note that you won't necessarily DO so but the permission itself lets you stop worrying about engineering the entire product ecosystem and just enjoy bashing out something fun that does something.

You can always fix it later... or not!

My love of coding is conditional. I still hate work related coding. I love working on my individual projects. I just dont have much drive to do the personal projects after working all day (and child care responsibilities).
Stop coding and let the reservoir of desire build back up again.
> What I loved was it allowed me to be productive as an individual - I didn't need a team of 10 to produce something.

For me it was the opposite. Being able to give people an environment in which they can express their creativity and thrive has been wildly satisfying. I love building the boring parts of a codebase (setting up scaffolding, CI/CD, etc) because I love seeing people be able to build off of it.

I was thinking the same scrolling HN, then saw your post.

After 15 years I'm no longer interested. I don't care about the web, css, javascript, react, testing....it's just an increasingly tedious and difficult headache to me.

I have a creative urge, and a problem solving urge, but i feel maybe it can be better expressed through another medium. I just wish I had some way to unchain myself from this 9-6 5 days a week soul-less grind.

Even when I did enjoy my job before, the increasingly complexity, the amount of tedious plumbing, spending hours fixing obscure npm bugs on a tool I built only 3 months ago (and worked perfectly). I just hate it all.

To answer your question, i haven't gotten it back and don't think i ever will.

I can sympathize with that npm point. I think there's a real distinction between coding-as-problem-solving and coding-as-plumbing, and I feel like a lot of the wear and tear of the motivation to code comes from the latter. This reminds me of the essay the MIT guys published on why they stopped using the classic SICP curriculum and instead moved to Python, the gist of it being that the kind of development they used to teach, with a blank piece of paper in front of you, working through first-principles, etc., was increasingly rare; that the most important skill to teach now was how to take separate pieces of someone else's code and effectively cobble it together onto something new. Which, fair, but I don't think it is doing stuff like that that first ignited the passion for it in a lot of us.
This is good advice. Thanks for sharing.

To OP: What has re-motivated me to code is not the coding work itself; but the application of my skills to solve problems that I care about.

Add to that - one is still writing CRUD apps that seem to run slower than ever even though the computers have become faster. That's why I feel more drawn to my guitar now than computer but then guitar will never make me any money so need to keep churning out CRUD apps.
yeah, i was just thinking today how slow and bloated the web feels. i know things have always been slow, maybe rose-tinted lenses and that but there shouldn't be lag on an input box when using a 2020 mbp with 64GB of ram.

and the frustration of trying to stream a video on reddit whilst the ad seems to have no trouble loading and playing.

I was complaining about this just yesterday[0], while waiting for my media PC, a dual core AMD APU with 8Gb of ram, to scroll the Twitch categories page. I pointed out to a friend a few minutes later how we were watching a game from 1999, which rendered full 3D environments in real time at 60+fps on a 200Mhz pentium with 32MB of ram. Here we are in 2021 with a computer several orders of magnitude more powerful and it is struggling to scroll a fucking document.

[0] to be fair, I complain about this at least 3 times a day, sometimes to an empty room.

OP here - what I found fun about my Django projects was that I used very little javascript. Mainly bootstrap and a dash of htmx. Modern browsers are freaking fast at rendering html and with a light payload and proper CDN setup, it feels like a SPA with 1/10th the work.
Pretty much going to have to echo this. The increasing needless complexity in everything has driven me to no longer be interested in technology in general, and it seems that our industry is only interested in making it even worse as time goes on.

I have tried to get myself motivated to do programming projects again and it just isn't taking.

The industry would see the complexity increase not as a bug but a feature. Every complexity is some improvement, some advantage, being marketed or sold, with promises of performance and outcomes but with realities of headaches and bugs. It doesn't help most complexities are someone's company that they want to sell for a huge M&A profit.
I'm on the infrastructure side, so I'm not sure if what I'm saying is true, but you could try taking a look further towards the backend. I'm under the impression that front end work can be a little messy, but again it's not from first hand experience. Beautiful and elegant solutions that solve problems well are a lot not fun to work on for me. Troubleshooting and fixing someone else's mess tends to burn me out a lot more quickly.
Ever think about trying embedded development?

It doesn't pay as well as web development. But it moves more slowly, it's not going anywhere, and it can be a stepping stone towards getting to work with your hands in a technical role.

As a more general response to OP's question, you can always switch industries. We're lucky to work with code, because everything runs on it. Finance, agriculture, medicine, vehicles...moving to a different area of the economy can feel refreshing, and it gives you a chance to learn about things that are unrelated to coding. Soulless web dev is where the big money is, but you won't starve working in other areas.

> agriculture

This I did not know.

> vehicles

This I hoped would never happen (security and privacy) - but anyway. (It has been a problem for well over a full decade, I know.) Anyway, as said, there is some light side: providing features while defending as much as possible security and privacy is a stimulating goal. One would feel more comfortable, though, if that were an established, common, given, granted goal.

(comment deleted)
It seems a little easier to go from embedded to app dev than vice versa, harder still to think up a personal project involving embedded to get you excited enough to invest the time into learning by hands-on trial and error.

I’d be interested in some started points, books, etc. to embedded, even beginner ELI5 fun projects. I am familiar to RPis, ESPs and similar microcontrollers for fun, but curious about what career and industry practices are common and different compared to app dev.

As an embedded systems guy(Hardware guy who works "on"embedded firmware), i can attest to the fact that its not going anywhere, but caveat emptor, Its glacial growth when you consider career growth and salaries. Also, the tech stack is tied to a couple of big name tooling chain vendors and chip vendors. And after writing the same old I2C/SPI driver for the nth time, you start feeling like the OP. So grass is always greener on the other side.
Isn't a majority of the industry Electrical Engineers who know how to code? You also have a lot more physical hardware constraints to work around unlike standard computers where the lowest baseline is still quite a bit for standard app dev.
Nope! Maybe the trend is that a lot of kids these days double major( in the us) and end up with some passable programming skills. It’s still not the primary focus. Like you mentioned the focus is working with physical constraints in a cross functional environment
The company I interned at did timer and wall din switches which were pretty interesting. They were timid letting me do much programming because it was freshman -> sophomore summer so I basically tackled a counter on one of their wall outlet timers that adjusted with a knob on the front and realized the embedded world was not for me haha. It is REALLY cool to hold your code in your hands, though.
thanks for the suggestion, will look into it.
What medium are you expressing your creative and problem-solving urges through now?
I guess I meant it in a kind of half poetic sense. I would like to write, or maybe do some kind of digital or video art.

I got into web dev around 98-99 and i've been doing it ever since.

I think what appealed to me about it about the time was the immediacy of it, being able to write these little js widgets and see them in action instantly. Trying to build these intricate table layouts to replicate the offline versions of various websites that came on a disc with internet magazines.

But the field has changed a lot over the years, first it was the iPhone and mobile-web, CSS animations, SVG, Canvas, Node JS, with JS on a server, React, Redux, State management, and now CI and DevOps, Unit tests, TS, - and the endless deprecations and changes that seem to occur faster than I can keep up with.

The things I used to enjoy are only a fraction of my job, and even those parts have become kind of complex - at least for me. I feel like, as others have said, front end is quite messy and the result of that is that I never feel satisfied that I can complete something and just "Get it right". Seems like the edge-cases are infinite, devices, displays, and other weird quirks...

- sorry for the rant.

Same here, what I loved about the web was the immediacy. You edited 2-3 files and you were done!

Today I had to work with Angular, this thing is insane. So many files, so many layers, so slow... This thing makes me hate what I do.

I wish web dev took a different direction towards more simplicity.

I asked because I'm partly in the same situation. I don't write code for work, but have (and had) too many side projects running. The fun is always at the start: thinking of something, sometimes discussing with potential users and being able to see things realized pretty quickly. But then the complexity kicks in indeed, and the fun turns into a drag.

(I've never been able to monetize anything for more than a few bucks a month, simply because I like to spend more time on creating something new than growing what I have)

Your initial comment made me realize I'm perhaps more interested in creating things that do not solve a problem (like my side projects do), but that express an idea instead.

I'll try and consider my knowledge of coding (Python and web front end) as an extra tool for expressing ideas, next to writing and talking.

Thanks for inciting this train of thought within me :)

Do something different. I program web backends mostly, but something about fiddling with an Arduino is a totally different thing and I can enjoy it as a completely separate activity.
Not at all a coder, but a painter. Ever now and then I loose the allure of my profusion. What usually brings it back is a change of medium (e.g. from oil painting to digital painting, or from large paintings to small ones). I guess that translates to a change in coding language in your game.
Not a change in language, but in problem space (which tends to lead to a change in language).

If you're a .NET enterprise CRUD guy, try web. If you're web, try C++ application work. Try kernel stuff, try embedded. Branch out.

You can try a lot of thing with .NET these days.
> Problem space

I like the sound of that. Thought you had made it up till I searched for it. yes... exactly a difference in problem space.

I had for a while after coding every day for 20 years: turned out to be a burn out. It came back after moving to management aka not coding for a while. It's been back for almost a decade now.
You build tools because they enhance your quality of life. You code to build tools to enjoy the service they render you. You will not lose your love for coding (in general, outside specific contexts, you have no reasons to lose it), since you have use for tools and by now surely you will have found processes and systems (or, in general, processes and systems are fortunately available) to implement your tools with a good degree of comfort and pleasure.

If you happen to "lose appetite", you are suffering the consequences of unhealty situations. You must fix them.

Many people who must suffer unhealthy situations, bound to conditions difficult to overcome, actually find a shelter in those hours, carved in the day, in which they can fulfil their creativity and productivity, do something useful with their time. You should use your talents to compensate with the ugly sides of "being alive here today" (which should of course be accompanied by the underlying conscience that "there and yore was much worse, though"), to break with the permeating effect of the ugly, which could enter too much into you - but mind you, you should spend time in creativity and productivity and yet work on planning "how to exit the bad situation". Find time for the healthy things to enjoy - coding is one -, and at the same time work/plan to leave, make past and gone, those things that drag you into a loss for appetite.

After 40 years (just retired) as a programmer, I still write code every day (but now what I want, mostly art related), I never got tired of writing code or learning new things, and the joy of shipping things that worked. What I did get tired of was high stress work, long hours, idiotic executive decisions and politics, businesses going out of business, interviewing (even when successful) and dealing with terrible work environments.

One thing I always did was learn new things, usually before they became popular, and find a way to work in that; new things can often reinvigorate your love of the coding part. Sadly the other parts have actually gotten worse over the decades; however the opportunities have also expanded, if you can find a way to get in.

Would you mind sharing some of the art-related projects you have been working on?
Twitter handle is @digconart
Yes, and I never gained it back. I realized I could have a lot more impact on the things that frustrated me higher up in the org as either an architect or product manager. Those were the parts of the job I liked anyway; not the part where I had to spend a day debugging a JSON parser.
I lost my love for coding after the Snowden revelations. The story of programming stopped being, "to make the world a better place," and became a means to a much more nefarious end. I don't have anything to do with the NSA or that type of work, but that made me realize that the programming trade was mainly used for less than altruistic purposes by most people employing them. This includes selling ads and all that garbage.

I still work as a programmer because that's my trade and my work ethic allows me to do it well; and lets face it, I have to pay bills, but my passion for it is gone.

The world contains a substantial amount of perversion. Just make sure that what you code for a public will hardly be possibly used for ugly purposes (you could probably club a seal with a teddy bear, but it would be difficult: try building teddy bears instead of clubs). But when you code your own projects, the right value of coding should be evident.
I never stopped loving to code...but for many years i only kept it as very mild dabbling on the side...Back in the early 2000s, i was a lowly web developer (mostly simple html, javascript, classic ASP/vbscript, sql server stuff) for a large multinational enterprise...in fact for most of my career i've only worked for medium or large multi-nationals (except for 1 year in a non-profit). What brought me back was 2 things:

1. learning python...which made me so productive without needing to learn some verbose language like java, etc.

2. open source software that let me build stuff without needing to pay large license fees.

Work on something you're not getting paid for and that nobody's making you do.

I find it 1000x harder to get excited about code I need to write vs. code for the current bee in my bonnet.

I haven't lost my love for coding. Coding lost its love for me.

Oh, coding. We used to be so similar. We'd gaze into each other's eyes and get lost for hours, days at a time, teasing the vast boundaries cast by simple questions. But coding changed. You changed, coding, you changed and you left me behind.

All you care about now, coding, is looking in the mirror. Measuring yourself. Analytics. Velocities, sprint points, backlogs; you say you want me, coding, but you really just want me to be there and watch while you go do what we used to do, as the younger developers frolic with the old questions anew. I think, coding, that you're just using me because I accidentally showed you I could do the other things.

You say that we're still coding, coding, but this relationship died a while ago and I'm still around because I'm in love with a ghost.

Is this a play on something else? Well written and the sentiment is unfortunately true in a lot of cases.
thanks! i was just rambling and having fun. appreciate the kind words
Yes and no. I've learned to accept the tedium of doing software development at work. But I've grown impatient with the act of coding itself - it just takes too fucking long to do anything. Too much accidental complexity one has to wade through, to express even simplest ideas. My coding cannot keep up with my thoughts, and I find it tiring.

I've ranted on this here: https://news.ycombinator.com/item?id=28568053.

I have some ideas for improvements, but alas, between being a parent and working as a software dev, I hardly have the energy to explore them.

Starting again after a break is a big help. Likewise trying to do something else for a while and realizing that the grass is always greener helps to get things in perspective.

I also think if you love coding then moving up the ladder is neither necessary or helpful because once you get into having to be responsible for other folk than yourself, fun tends to drop off. Coding is potentially a creative activity if you allow it to be.

It's not that I lost my love, but I have experienced massive burnout from coding.
Switched to a functional language (Elixir) from an OO one (Ruby). Now it's only JS that annoys me, since CSS is declarative and therefore less of a headache.
this x1000. My main frustration with imperative programming has become the devops plumbing and defensive nature in code that was needed to get something done.

Switching to Elixir - learning what OTP brings to the table, e.g. observers, genservers - distillery compiled binaries per OS, negating the need for a lot of the devops complexity, e.g. docker, node, - the switch to esbuild and liveview for less JS cruft - FP transforming of immutable data to more immutable data vs managing state

TBH all of it has been a breath of fresh air.

I've been soft-evangelizing it for a while now (difficult because I'm also kind of anti-religion/dogma) but what we need more of is data supporting our lived experiences/intuitions... I haven't found much out there (there is some, but it's definitively insufficient)