Ask HN: Is it normal to fall out of love with coding?

179 points by ganadiniakshay ↗ HN
I started coding when I was 11 years old and I am 26 now so thats about 15 years.

All through this I have always enjoyed coding which is why I chose to study CS at college and then have been working as a dev post college. But of recently it has started to feel more monotonous and boring.

Last year I started my own company and then got acqui-hired into a startup. I realised that talking to customers and solutioning is more fun than wiriting code. How many of you have felt or feel the same way and what are you doing about it?

123 comments

[ 0.23 ms ] story [ 203 ms ] thread
Definitely felt the same way at various stages in my working life. There’s a huge difference between doing something you enjoy as a hobby and doing it as a job. Working life beats the enthusiasm out of you, especially when you’re not always in control of the projects you work on and the software tools you get to use.
It's a sign of burning out. I've felt the same way many times during my career. I started making websites when I was 15 (I'm 33 now) and moved to a management role. When I wasn't coding for the last few months, I realized I missed building stuff. I just quit my job this month and now looking for contract/freelance work.

One thing I realized very late was I needed some kind of hobby outside writing code and spending time in front of a laptop. Go find a hobby: Travel solo, read books, learn to play some sort of musical instrument, learn to cook. Anything helps.

If you like talking to customers, find a developer evangelist job somewhere. You'll get to talk to customers and developers. Else, think about moving to a product management role. Start reading books about product management. You can also fast track your learning by taking some kind of formal education in product management.

Got any recommended books on product management?
Here's a list of books I have compiled as a fairly fresh PM (just getting started with the reading). The intention with this list is to built up a good mental tool box to succeed in product management (coming from SW+chip design).

PM:

  - Inspired: How To Create Products Customers Love

  - The Lean Product Playbook: How to Innovate with Minimum Viable Products and Rapid Customer Feedback

  - Escaping the Build Trap: How Effective Product Management Creates Real Value

  - What Customers Want: Using Outcome-Driven Innovation to Create Breakthrough Products and Service

  - Strategize: Product Strategy and Product Roadmap Practices for the Digital Age
Marketing:

  - Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers

  - Brand Identity Breakthrough: How to Craft Your Company's Unique Story to Make Your Products Irresistible
UX

  - Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability

  - The Design of Everyday Things: Revised and Expanded Edition
Organization / Business

  - Originals: How Non-conformists Change the World

  - Only the Paranoid Survive: How to Exploit the Crisis Points That Challenge Every Company

  - Lovability: How to Build a Business That People Love and Be Happy Doing It

  - The Thank You Economy
Personal

  - Presentation Zen: Simple Ideas on Presentation Design and Delivery

  - TED Talks: The Official TED Guide to Public Speaking

  - Deep Work: Rules for Focused Success in a Distracted World
  - How To Win Friends and Influence People

  - Never Split the Difference: Negotiating As If Your Life Depended On It

  - Thinking in Systems: A Primer

  - Thinking, Fast and Slow
Also, blogs:

  - Rich Mironov's Product Bytes
  - Aha! Blog
  - Inside Intercom
  - Mind the Product
  - PMHQ blog
  - Silicon Valley Product Group
  - The Accidental Product Manager
  - The Product Bistro
  - The Product Guy
  - The Secret Product Manager Handbook
Edit: Formatting
Writing Great Specifications by Gherkin
Hooked: How to Build Habit-Forming Products
This question and your answer are so relatable. I now realize I was close to burning out, without me knowing it at the time.

I've changed jobs recently and this made me so much happier; still programming full-time but working in a new domain, new language, new but positive people renewed my joy in building stuff.

This is a great reply. I really recommend the learning to cook suggestion - there are a bunch of parallels with programming (it's creative but in a process-driven sort of way; there are loads of different styles and techniques; great sense of accomplishment when you finish something complex; you can delight others with your creations; gentle learning curve; etc) in addition to (possibly modest) health benefits and a general sense of de-stressing.
It's also applied project management, as in hard to hide the fact that some component of the dish is not yet ready when everyone did show up at the table already.
Thanks for the reply. In fact I have been considering moving into product management as it feels like a more stronger fit. However, I am scared if this is the right choice or if I might regret leaving coding.

I could always code as a hobby I guess.

And if you do regret leaving coding, you could always go back to it
Cooking is a great suggestion. Especially if you live with someone else (family, spouse, housemates). Making something delicious for other people to eat brings a great sense of accomplishment. If you have kids and you can make food that they love (that is still healthy), then this feeling of accomplishment will put you in the clouds.

You will also be able to set yourself challenges in the kitchen that are not unlike some "itches scratched" by programming. i.e.

- How can I make this dish in a simpler way and still have it taste great?

- What delicious thing can I make using only the ingredients I happen to have laying around?

- What is the most delicious thing i can make with the fewest ingredients?

=)

i often try to explain programming to a layperson with a cooking analogy. Programming is like cooking with a recipe. You've got your ingredients at the top (input data, variables etc). Then you've got the processing (slicing, cooking, stirring etc). Eventually you pull all the ingredients together for some final output (a dish).

INGREDIENTS onion, whole tomato, whole jalapeno

GOAL: make salsa

    prepped_onion = chop(onion)
    prepped_tomato = roast(whole_tomato)
    prepped_jalapeno = roast(whole_jalapeno)
    
    salsa = blend(prepped_onion, prepped_tomato, prepped_jalapeno)
I was always curious how someone with a developer/freelancer background transitions to product management or developer evangelist roles? Wouldn't it be more reasonable to do this transition internally rather than as a new hire?
Disagree. I dislike coding at work, because it's boring infrastructure stuff I have to code. I am 26, I work 32 hours a week and work pressure is very low and there's just no way I'm burning out. A lot of coding is just boring, and if you have been programming for over a decade, you see through the fads that commercial companies hype.
I think it's normal, things lose their excitement at some point. That's human nature. You will probably start resenting clients in 10 years. Also - you yourself will change. You will grow older and might find more value in things outside career. Or not, who knows. But don't expect to be the same person 10 years from now. Switching stacks, jobs, challenging yourself with harder roles, taking more responsibility etc are all things that might help. But unfortunately I don't think anything can bring back the joy I used to feel when I succeeded in building my first web app. After doing it professionally for years it loses it's magic.
The thing that makes you happy when coding is purpose.

Even automating your house so that heating comes on before you arrive has a purpose. Or writing a script to clean up your photos. Or any number of little coding tasks. You do them and you find them enjoyable because they have purpose.

Sometimes with work, you lose that. Often it's because coding isn't seen as anything but a chore that needs to be done towards the business goal. A necessary annoyance, where the real purpose is something that doesn't require coding. And that really kills the enjoyment for a lot of devs.

I had a period where I felt like you. I was working in a dying business, other people weren't supporting it, and it just felt like a death spiral. The only thing to be done was to change track and do something else.

I couldn't have expressed it any better. This is it for me, it kills it for me when "coding isn't seen as anything but a chore that needs to be done towards the business goal. A necessary annoyance, where the real purpose is something that doesn't require coding. And that really kills the enjoyment for a lot of devs".

I began feeling that way at my previous job and left about 2 months ago. Now I am in my new job at a startup going through hypergrowth and I feel like development and solutioning is so intertwined and we go back to the drawing board so often and the dynamics of so fluid that I get to feel a more obvious sense of purpose.

Coding is still fun to me. But the bureaucracy that surrounds it has grown very thick. Finding a team where bs to coding ratio is reasonable is a problem.
Coding is transforming a set of problems into a particular level of abstraction. Higher levels of abstraction exist (team, business model, etc.) and it's perfectly fine to find them more fulfilling and interesting as one goes. I haven't coded in years as a result of being a founder and then CTO of a largish company. I don't miss it because my head is in a completely different place but equally absorbed in solving problems. And people are fascinating - hacking people, groups, teams, customers etc. is much more fuzzy and presents interesting problems as well.
Since moving out of large / enterprise style business and into startup culture I've definitely felt a big shift in my view of my job and role in this industry.

I've shifted my perception of myself from being an engineer/programmer to seeing myself as a product person that happens to use code to express my goals.

I still obviously expect and demand a high standard of code quality from myself, but I'd much rather do one thing every day to improve the life of a customer than wrap myself up in the more esoteric solutions to coding issues. I don't constantly chase new libraries and frameworks and build tools and I don't spend time discussing semantics while pair programming. I value pragmatism above all.

I feel like coding is now 40% ish of my overall skillset and am much better off for it, which seems to bear out in terms of opportunities that have opened up since I've made this change.

> wrap myself up in the more esoteric solutions to coding issues. I don't constantly chase new libraries and frameworks and build tools and I don't spend time discussing semantics while pair programming.

You've just described virtually all my colleagues at my last $ENTERPRISE_JOB. In enterprise jobs, hell is other people - at least it is if you just want to get the job done.

Thats exactly what Ive been feeling recently. But then I realized, we evolved, we grew, thats why our passion might change, and maybe you found a new passion that feel more exciting that coding.

I just written a piece of mind that might help you notice, whats going on with your passion. You can read it at https://link.medium.com/Td65gAxIkT

Good question, good replies. Thanks to OP and others!

IMHO your situation is actually quite positive because you notice the domain you enjoy more, which is communicating with people rather than interacting with computers. Why not just keep moving toward that direction?

I wonder if you have played any games that lack of tactics and don't require you to learn techniques to master, and you can just farm and farm and farm before your level or whatever is enough to conquer the final boss. Monotonous, boring, just like that. If the only reward you get from coding is salary and nothing else, then you should really consider leaving the comfort zone, which is actually what you are trying now, and that's good.

A programmer likes to learn new things all the time and sees the joy in writing the same code in a new language/framework for the n-th time. A problem solver sees that it is pointless. You are just doing the same things over and over again and the shiny new thing is not that special. You must rediscover the joy of learning new things. Try a new language or a hobby. Try some new food. Experience new things. Programming requires true grit because the real work is not that exciting. Coding is just a small part. So you have to accept that to make great things you have to do a lot of boring work. And that great ideas are not worth that much without the ability to implement them.
Just like you, I started programming quite young (about 12 when I started) and last year, when I was 26, I was burned out on it for the first time.

It started with me just getting my job done, but not really finding a lot of joy in it anymore and I'm sure the quality of what I did went down as well.

A bit later, I stopped doing side-projects and didn't want to read anything related to it anymore for some time. It was around that time that I realised it's not my job, but the problem was me burning out (I just ended a stressful period in my personal life as well due to a family member passing away).

My solution was to just 'allow' myself to _not_ do anything at home for some time and look for other things to keep myself busy. At first, if I wasn't doing something for side-projects I'd feel guilty, which was an unhealthy attitude.

I started reading fiction (instead of non-fiction all the time) and bought a console for gaming - something I hadn't owned for a decade. Just so I wouldn't be in front of my computer after work, I also took a holiday for a few weeks.

Eventually I started to miss my side-projects, though it actually took a few months before I'd really get into them again. Now I'm only really just getting out of it to be honest, but I'm did rediscover the fun of coding. I'm reading about it again, but alternate between fiction and non-fiction after each book, and I'm having fun programming both at home and at work [most days ;)]

So maybe, as other posters said, you are suffering from (the beginning of) a burn-out. It sucks, but it's not forever.

I don't know if this helps you deal with your situation but this is how I would respond if someone asked do I enjoy coding (delivering software is my profession, bread and butter and I code in my spare time as well now and then).

Personally I originally thought coding as something wonderfull akin to music or poetry. Ok, that got me hooked and started. Now as I've matured a bit I see coding (i.e. the typing part where you manually define the syntax tree with some specific language) mostly as ... typing. What nowadays gives me the kicks is the thing that I create by coding and the concepts I can study.

I get no joy in coding, unless I am building something that delivers value. The value can be end user value, personal learning or just a glint of beauty.

But, no, I would say I enjoy just "coding" anymore. To me it feels like asking from a literary author do they enjoy typing. It's a part of process of creating value, but only a part of the process.

When I code in my spare time I don't think I spent the time coding. I think I spent it investigating an algorithm, or delivering a fun software, or solving a math puzzle.

I worked for about a year coding and then switched to hardware/firmware. Because frankly I wasn't really happy just turning out code day after day. Code now is just a means to an end.

I have a couple of friends that found they basically hated coding and switched, one to technical marketing and the other fixes machine tools.

It hasn't happened to me. I started coding in 1982; I'm still doing it. In the meantime I've started four startups (none of which succeeded - I'm a much better geek than I am a businessman - and done a couple of management jobs. But I find I still prefer writing code (and designing systems) to anything else, and I don't at all enjoy being responsible for seeing that there's enough money in the bank to pay other people's wages, so these days I'm just a contract programmer.
Just 5 years ago you were 21. Consider for a moment how your attitude and emotional intelligence was back then. Think back 10 years when you were 16.

It is likely the case that you've come so far and a lot has changed in your life in just a relatively short amount of time. Now, move forward 5 or 10 years and imagine the same amount of change.

What I'm trying to say is... it is perfectly normal to change your interests.

This whole article is great, but the first 2 paragraphs really resonated with me: http://www.loper-os.org/#selection-29.0-44.0

Here's an excerpt:

Sadly, the above scenario is more truth than fiction – for computer enthusiasts. There is a particularly cruel discrepancy between what a creative child imagines the trade of a programmer to be like and what it actually is. When you are a teenager, alone with a (programmable) computer, the universe is alive with infinite possibilities. You are a god. Master of all you survey. Then you go to school, major in “Computer Science,” graduate – and off to the salt mines with you, where you will stitch silk purses out of sow’s ears in some braindead language, building on the braindead systems created by your predecessors, for the rest of your working life. There will be little room for serious, deep creativity. You will be constrained by the will of your master (whether the proverbial “pointy-haired boss,” or lemming-hordes of fickle startup customers) and by the limitations of the many poorly-designed systems you will use once you no longer have an unconstrained choice of task and medium. To my knowledge, no child grows up “playing doctor” and still believes as a teenager (or even as a college student) that an actual medical practice resembles that activity. Likewise, no one has a fully functional toy legal system to play with as a child, and as a result goes into law. On the other hand, “adult” programming, seen from afar, is enough like child-programming to set the computer-enthusiast child up for just this kind of exceptionally cruel bait-and-switch.

When I click there the link it doesn't go to the post that the excerpt is from. What's the title / date?
Doing same thing over and over is boring whether it's coding or not. I develop and design apps and websites. When I'm fed up with coding, I start designing, working in colors and pixels. I suggest you to improve a side skill so you can switch when you get bored/burned out.
First of all, I would say it is absolutely normal to fall out of love with coding, and I wouldn't worry about it! If you're enjoying what you are doing, that's a good thing.

Unlike the top comment, I don't think this has to be a sign of burning out (although it can be) - humans are complex beings. The world changes, and we change as well. What was enjoyable to you 15 years ago may not be as enjoyable now, and what you enjoy now might not be what you will do for the rest of your life. At the same time, if you find that you miss coding, you can always return to it later.

If life pulls you towards a more customer-facing role and you discover that you like it, that's a best case scenario to me! Go for it.

I've been coding since childhood and I'm 38 now - and I have had periods where I did other things and enjoyed that as much if not more than coding. Rediscovering a passion is a great experience in itself, worth having at least once.

How easy would you say it is to move back into a developer role if I say switch into product management role?

I am scared I will be asked a lot about why I am switching back into coding and why I left it in the first place? I am scared of coming across as indecisive

If you switch and then quickly switch back because you realised that it was a mistake - that's no big deal.

If you switch roles and after a couple of years switch back again - no problem!

If you start to have a history of every six months to a year switching roles or moving companies, that can start to look bad, yes. But even that isn't a disaster that can't be overcome.

I wouldn't worry about it.

Developers trying a management role and then returning to development is relatively common. You shouldn't worry if you wish to try it out for a year or two.
Yes, when hiring developers I see that as a positive: often people with this kind of background can tackle larger projects well due to good self-organization.

As a bonus, they tend to have more empathy for what i have to deal with, so when they ask for support or process changes their ideas tend to be practical and reasonable.

If you are asked that question this is the sort of answer you give:

"I was given an opportunity to lead a product I was very excited about, and I took it. It was a great experience, and I learned a lot, but ultimately now I'm glad to be moving back into a developer role."

If you can truthfully say that, you're conveying not indecision, but rather showing the flow of your career path. That is something that is expected to take a few twists like this, and that's even a sign that you're someone with flexibility and a variety of skills, as opposed to being inflexible and unwilling to do things that are "outside the box".

And if you have leadership experience, you could always step back into that role if the needs of the company change (e.g. project lead leaves the company and they need someone to fill in until they get a replacement).

My previous company saw project management as a step up, whereas I see it as just another role. Many engineers make poor project leads, and many project leads make poor engineers. Unfortunately, our society values "people" jobs like leadership positions more than technical jobs, so people will see it as a downgrade (especially those in management).

Ignore that noise and do the thing you like that helps you meet your other goals (financial, lifestyle, etc).

If it were me hiring I would probably see this as a positive thing - not only are you an experienced developer but now you also have some experience of doing product management as well. That gives you a different perspective to most developers, and means that you'll likely be better at working with the product team to define what you can/should be doing.
I've been on both sides, and I interview a lot of engineers now as a product person. If I heard this from an interviewee, especially given your context in this thread, I would not view it as indecisive. To the contrary, I would credit the interviewee as ambitious and a lifelong learner.
> The world changes, and we change as well

This is a point far more general than coding. As we grow, some of our tastes change, and that's fine. "I will always feel this way about X" deserves to be labelled as some sort of common logical fallacy if it isn't already.

12 years ago I moved away from a pure coding job because it lacked other things I was seeking. Nowadays (as a 38yo academic researcher) I don't get enough of it so I code a bit outside of work to keep me motivated, but I'm seriously considering moving back to a coding job despite many other upsides to what I currently do. Having done some networking in that job market I don't see that being a problem, should I choose to go that way.

Maybe if you stop altogether you'll end up missing it like I do, maybe you won't - doesn't matter - go with what you want to do. Like Spolsky says there are great rewards out there for developers who fully understand software but can work effectively with people who don't.

Is it coding in general, or what you've been coding? I've had projects that I thrived on and couldn't get enough of. I woke up actually excited and couldn't wait to get to work. It obsessed me. I wouldn't want to take breaks. I'd work late and time would just pass with me in a zone. What I was doing excited me. It had utility. It had purpose that I could see. It used new tech that challenged me. It was hard work, but very rewarding.

I've also had projects that I absolutely hated. I didn't believe in what the customer was doing, it was the same 'ol thing, etc. Bland. Cookie cutter. Boring. You get a few of those in a row and you question everything. Luckily, as I progressed in my career, I can pretty much pick and choose what I do and can turn down projects without even giving it a second thought, but I had to get to that point.

You're relatively young still. That's not to be demeaning. We go through stages of life. You don't just stop growing and keep the same interests. Maybe you just weren't exposed to a more social role before like you're in now, so you didn't even know you'd enjoy it. There's nothing wrong with changing direction, as long as it's a positive move for you. Only you can know that. It gets harder to change anything about yourself the older you get, so if you're gonna make a change, I wouldn't wait too long.

Be honest: would you have taken an answer like "no, it is not normal to fall out of love with coding" seriously? In what theater of life is "permanence" and "unchanging desire" the norm?
I have taken multi-year breaks from programming several times (network engineer, academic, etc). To me it feels great to have a change of pace and focus. Have been in biz dev role too. After a while that too became boring - same issues, different faces.

The biggest stumbling block in "solutioning" is when the programmers responsible for implementing your vision drop the ball and you have to face the customer and explain the delay, cost over-run, etc. For me that was too stressful over the long-run.

(comment deleted)
I don't love coding. I love building stuff and coding happens to be one way of building stuff. How much I love building stuff varies from project to project. Thankfully I'm often in a position to choose which projects to take on, although sometimes you don't really know until you start.
I am programming since my childhood and I am now 44 years old. For a long time I thought that I enjoy programming. Later I realized that what I enjoy cannot be categorized that way. I cannot even easily put it into words, but largely I enjoy solving hard problems, understanding or modeling things sucessfully. It happens sometimes during coding. But in a business scenario unfortunatelly it happens more during designing UX, finding out the business strategy, etc... and coding itself becomes just a boring means to an end. And I think this attitude is quite healthy when I work on a product alone. Because even with this attitude I sometimes geek out and care too much about tech perfection instead of releasing an MVP sooner. For example now I work on a VR 3D modeler side project. I have my own engine instead of using something like Unity, and I care too much about the performance and elegance of my half-edge mesh representation instead of releasing an MVP extremely early and iterating on UX as someone who is entirely not obsessed with coding would do...
So you changed, is that normal? Normal or not normal it does not matter, it's just that life is happening and do you want to explore it or just pass through? If you want to explore changes are inevitable. If you see changes it's a good sign, it means something is happening :)
Blacksmith. If it was possible to go back in time, I would be a blacksmith. This is my conclusion after working several years as consultant. The last project was horrible, hundreds of thousands of lines in C++ wrote by monkeys in ten years, layers of layers of crap. When I say layers I'm not speaking about architectural layers, but geological layers, like the sedimentation that trap the skeletons of dinosaurs. They introduced control version systems 3 years ago: before they preserved all the revision as comments, into the source files ! Every ten lines of source code, twenty lines of commented old code with the description of who, when and why the code was disabled. That was the time I really desired to die. Honestly, I enjoy myself only with my stuff, rarely at work.
I feel your pain. Only difference in my case was, those layers of crap (mostly Java) were written by a monkey I thought I knew very well (myself).

My experience taught me that we sometimes tend to be obsessed with code aesthetics, way beyond a healthy reverence that any code deserves. I have learnt to forgive myself of the past coding mistakes and now I try to journal them. I hope you get the strength to forgive those other developers.

why not do both? like Niels Provos: https://www.wired.com/2013/02/provos/
I'm also a maker, but this guy is just entered in my pantheon of hero. Swords ! With some kind of code can be a solution, also ! :-)
he's taking a different approach when it comes to cutting the cruft in the code he is working on. :-)