Hacker News new | comments | show | ask | jobs | submit login
Ask HN: I lost my will to program. How can I get it back?
15 points by Pym 1856 days ago | hide | past | web | favorite | 19 comments

I'm a 25 years old developer who has started to learn programming for fun 11 years ago (and at that time, I loved it). I was bored when I studied computing in university and it get worse when I started working professionally 2 years ago, to such an extent that I quit my job because I didn't found myself to be enough happy.

Even if I left it with my head full of projects, a month and a half later, I can't find enough motivation for starting these. I don't think that I can work alone and furthermore, I'm starting to ask myself if I'm really meant for programming.

How can I enjoy programming again?

I think you're suffering from burnout, something I suffer from at least twice a year. The last thing I want to do during this time is sit in front of a computer, even though - like you - my head is full of ideas and projects. It hurts for me to get out of bed, much like depression, I feel worthless like I'm unable to do my job anymore because it pains me too much.

What I do is start running more, once a night/morning, take the dog for a longer walk, go out to the cinema, meet some friends for a pizza or something. Basically taking my mind away from projects whilst getting fresh air, socialising and being active. During this time I tend to get headaches often, but I NEVER take medicines as they seem to make me feel down again. Spending time outside and getting myself fresh air is the best remedy, takes longer, but it's more natural and feels rewarding.

Talking about rewards, another thing that works for me is rewarding myself with mini-achievements. "I'm going to run 3 miles today. And if I do, we'll have a pizza." any reward except computers. After a week or two - depending on how burnt out I am - I feel the urge to get back on a computer and start working again.

I hope the above helps :) It takes a lot of time to find the right remedy for getting yourself through burnout, but time and time again I've read people saying "just get off the computer and out and about" it works, even thought it can be a pain to motivate yourself at first.

I wouldn't recommend using food as a reward. It sets food on a pedestal it does not deserve. Food is calories and nutrition that enables you to perform your best; glorifying it as a reward for accomplishment may set you up for failure down the road.

Like I said, works for me - I have a very high metabolism, so I don't get put on a lot of weight if I pig out with pizza once a week whilst I'm burnt out. You could try buying yourself that new watch you've always wanted. Anything which you feel is a reward.

My sister is an olympic level athlete, food as a reward becomes a problem for many of her competitors. Rewards help cement a habit though, personally I use music when I require extra motivation and don't when I don't need it. Maybe consider going to a req center and soak in a hot tub as a reward or a day off.

I hear this from developers around me quite a bit. Almost always, the issue is not that you've lost interest in programming, but rather that you're discovering that what you are passionate about isn't programming at all, and that programming was simply a means to or a part of whatever it is you are actually passionate about; whatever it is that will actually make you happy.

For me, it was product development and design. I started writing code in middle school, and I really loved it. I pursued computer science in college, and while I did graduate with my b.s. in c.s., it was during college that I hit a similar slump. Over time, I realized it wasn't writing code that I was passionate about. In high school, I had to write code to implement product designs and different ideas that I wanted to innovate on. Programming was a means to what I was actually interested in. Now, I work developing products (not code), and designing UI's, and I love it. It took me a while to figure out that this is actually what I love, but once I figured it out, I was always in love with what I do. (Not just in love with what I do when it happens to be plugged in to what my strength, unbeknownst to me, actually was.)

I urge you, and anyone else hitting the same slump every now and then with writing code to think about when writing code is actually fun. What sets those times apart? When is it most enjoyable? Is there a pattern? Is it when you are also doing the design? Coming up with new features? Leading a team? Designing a developer tool or API?

Your strength and passion may lie elsewhere, and going through this thought exercise may help you uncover it.

Of course, I could be totally wrong; your situation may be completely different. Feel free to get in touch if you want to bounce around a bit of conversation surrounding this. My email's in my profile.

I would say, try to work on something that you might actually find fun, for myself when I am tired of boring projects I make little games. It's something I really like and keeps the mind active. But sometimes it's also good to take a total pause. If you really feels that you can't work on anything try to stop thinking about it, look at other things to do, some other stimulating projects like a DIY. One last thing could be, don't stay alone, find a co-working place, or a bar, or something where you can stay in touch with people, this is often underestimated but important.

Stop thinking about projects and try to remember what made you happy back when you started programming. Chances are the path the university and the job you had made you take, isn't what you really wanted, and you didn't find anything exciting about it, hence the boredom and unhappiness.

Keep in mind that this is common, people get bored all the time, but they get over it and so will you. This is just a phase of introspection you are going through.

Don't start with the prospect of creating something that will make money or be starred by thousands, because that might put you off.

Find what would be fun for you to do, or something useful in your daily life and that you'll enjoy looking at it and using it and the motivation will come and things will start rolling again. Maybe also try doing that in a new fun language or framework you were meaning to try out but never had the chance to.

I don't know if my story is same as yours but I have gone through a similar phase in my life. I started programming in 2001 as a student, continued doing it for 2 years in my job at one of the largest IT company in India. Programming was fun. Back then I was able to code all day without getting bored. There was no time and motivation to do things like watching movies, dating, etc. which other people of my age found a fun thing to do. As a student I found it great to do technical things my peers(or even teachers) weren't able to do and I liked when they called me a "hacker". As an employee I found it very satisfying to find solutions to problems that no one else in my team was able to do. Then after 2-3 years at job, things changed. I lost my interest in coding. I was not happy anymore. I got depressed. Why?

After few months of soul searching I found the reason. My excellence at programming was due to external motivation - to be recognized and applauded by peers. When I got that I lost my motivations to do that. Given the quality of work done in big Indian IT companies it was really difficult to find people who were better than me. I was thinking about it in a wrong way. I needed to change myself, my goals and vision. I did that. I asked myself what I want from life? I learned all that I wanted was to do something meaningful with it. I don't need the recognition and applauds from others but I need to feel that I am making good use of my life to contribute something back to the world. I realized I never loved programming itself but I did it for other reasons - to get recognized by peers. I changed my reason to do it. I now do it to create value. I now do it to make things that people need. I now do it to make a small part of world better. I feel better when I know that my work is creating value for someone.

I don't love programming anymore. I don't need to but I can find it very satisfying to do things that are even more boring to do than programming if it helps me in achieving what I want - "Creating Value". It doesn't matter what others think about it. I need to feel that I made a contribution.

My suggestion - Start Contributing.

Put yourself in a situation where you couldn't program (other than to think about problems ) even if you wanted to.

Hiking, cross-country skiing, raft trips, etc. all work well for this.

The main thing is to get away from the computer for a time, and to not be able to reach for the keyboard whenever you have an idea.

Over all though, it sounds like you're going through a phase of burnout. And that's more difficult to deal with. Try some radically different types of problems; if you've been doing front-end web dev go deep on bit-twiddling for a while or pick a random topic that's way outside your comfort zone and see if you can bring it into your skill-set.

Also, taking a break from programming for a while is a perfectly legitimate thing to do.

I think this is the same as writers block or failure of a painter or an athlete. Focus is lost and regaining it is not simple. I've worked through this process a number of times. I found treeplanting during the summers of my CPSC degree really helped rejuvenate me. The isolation, physical fitness, financial freedom and socializing was invaluable. I am replicating these things in my daily routine now. I have been taking it seriously, a regimented day:

6:00 wake up, put on clean laundered sweatshirt for run(comfy way to trigger my habit) 6:10 eat greek yogurt, maple syrup and vegtable juice 6:20 go for run, 10 min 120bpm warm up, 40min 130-140bpm then 10min 120bpm cool down. very light does not leave me tired for the day ahead and builds appetite for a significant breakfast 7:25 shower 7:35 make breakfast; eggs, butter, milk, tomato, kale, onion, oatmeal, sugar, green tea. This provides post run energy and fats provide a slow burn for the day. 8:10 10-20min rest, let your mind and body relax 9:00 get to work, I try to stand but also lounge with my laptop. I take breaks to juggle, do handstands or swing my home-made bulgarian training bag. 12:00 lunch, either a stew or lentles 12:30 another moderate rest, 20mins. I rarely sleep, that would interfere with homoeostasis and I don't generally feel the need 1:00 back to work until I lose focus. Make sure your space is compfy, live in a place with quality air(I live in Vancouver) use houseplants to clean air, a fan to circulate fresh air from outside, use curtains and plants and earmuffs to block out noise and light when desired. Be Compfortable! Eliminate odours, and I don't mean febreeze, I mean go to the source. 5-6:00 ish I'll go out with friends, some activity maybe do chores. 8:00 cleanup, dishes, wash floor busy none mental tasks. 9:00 personal email, facebook 9:20 bath w/ ebook, epsom salts seem nice 9:40 more reading 10:00 open window it's bedtime and a drop in body temp helps induce sleep which you must take seriously.

When we are young we can ignore discomforts, but stress accumulates and I believe the impact becomes greater with time. I have no idea what exactly is impacting you but I bet it's part of your lifestyle. I think buddists and pig farmers have shown us you can love what you do if you want.

Programming is a tool for expressing, realizing, or creating. With it, you express ideas and yourself in a unique way. The simple thought that, with programming, I can bring into existence something big keeps me grinning already. When working, I think of it as me bringing to existence ideas in behalf of my company. A pretty cool ability. How I usually see programming is that it can change the world.

As for you, take a break from programming and see if you miss it and what you miss about it. They do say you don't know what you got till its gone.

We all had that problem - you have to find your place and go hard.

Many programmers working as lone developers experience that same issue when they're programming for mandated lost causes.

Go back to where you fell in love with it and connect with other developers. Pay attention to how far you came and find or create a project to leave your mark. Programming is love, sometime it takes something to rekindle the flame - don't worry :)

I remember doing my first website for $25 lol.

It might be that your programming the wrong kind of projects or a language that you don't enjoy.

When I started out I was working on Java in very nasty codebases - it turned out that wasn't enjoyable for me - once I changed platforms I remembered why that it could be enjoyable.

For me it was about doing projects with nice quick feedback (e.g. just playing with pygame, or building things for the mobile platform of the day).

Do you enjoy programming, or do you enjoy projects? They're not necessarily the same thing - remember that you don't have to do all the programming on a project yourself, you can outsource to other developers, either in part or completely. Maybe you like imagining & creating products more than the nitty-gritty of actually writing classes & choosing algorithms?

Go to a meetup, talk to people who have different experiences. Make it your goal to build some relationships and learn some new perspectives. After a while your motivation will come back. Don't force it.

If you want, you might get in touch with me. Projects are always better when they're being done for/with someone else, and maybe we have overlapping interests. Reply to me if that's your will.

I want to share one comment about distraction where I like the way novelist/nerdfighter John Green put it: "This is a common problem because the easiest thing for us to do is whatever we are currently doing -- which is usually nothing."

If you understand will, resolve, transformation, interaction, and love, then you can choose what you find fun. But when you don't have that understanding, then you reach a point where your ambitions are loftier than your one-shot ability is, so your target projects are bigger than one-weekend coding binges. This makes it very hard to focus on those projects, which I think feels like boredom even though it's not.

To answer your own question, I enjoy programming on several different levels. For example, there is the affective level. I now have a remote server running FreeBSD, and whenever there is a software update, you have to recompile whatever's in the ports. It always makes me giddy (which is an emotion, an affect) to type some small "make install" command and then text flies by on my screen. It's very hard to explain what this emotion comes from. It's halfway "it's working!" and halfway a sort of pride that I am making some computer somewhere do something big and complicated for me. In any case it feels power-mad and exciting, like I have minions who serve my every whim.

On another level there is the abstract appreciation. I really like sort of the mathematics of programming, by which I mean distilling some complicated idea to a really pure and simple form. How does the server work? Well, everything that I want to be able to do is a service -- the very simplest unit, with a uniform syntax for simple-syntax requests and responses, you just start off by writing "here are the things that I expect to be able to do" and fill in the code stubs. I love the moments where I get to do that. I've written the Fibonacci numbers as a matrix exponentiation just to figure out what the actual time bound is in the "O(1) algorithm" (It turns out that it's also O(N^2) just like the naive summation algorithm, which for large numbers will add up N N-bit numbers, it just has a slightly smaller constant.)

The abstract appreciation is also why I really like refactors; the cleaner the code gets the happier I am.

Finally, I think there is a creative appreciation. I appreciated programming my base-10 clock (shameless plug: http://drostie.org/time/ ) not because it was a technically difficult task but because I got to build a machine which just had not existed. It was the same thing with switching to Linux, where I have a more personal relationship with my laptop because I've taken the time and effort to care for it.

I really believe that there is a simple formula -- that patience plus symbolism together create real meaning, because they both emerge from a sort of harmony. Of course there is a longstanding philosophical problem that this meaning, while real, is incomplete -- but I view that as a fundamental issue in life. Anyway, take care, work on a project with raw symbolic potential, and just be patient with it -- then you'll find the results meaningful and enjoy the task. Just walk into your office one day saying "I am just spending the next hour on this project." It can be quite liberating.

Maybe we can talk more, if you're interested.

> It was the same thing with switching to Linux, where I have a more personal relationship with my laptop because I've taken the time and effort to care for it.

Don't suggest this to a sysadmin. OS religious arguments aside, sysadmins don't want to take time to "care" for machines any more than they have to :)

To the OP: What if you tried to get into DevOps or System administration? Futzing around with hardware and OS level stuff may be something just different enough for you to get back into it. There's also a lack of sysadmins who can actually program full applications, so that's a huge plus since you presumably know how. Admins script, but the ones who didn't have any formal computer science training don't really know how to write complex applications, use databases, etc.

If he/she is tired of programming... I highly doubt they're going to read this entire comment lol.

What language are you programming in? Try a language like Haskell or ML. It might just be that you have taste.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact