

Ask HN: I lost my will to program. How can I get it back? - Pym

Hi,<p>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.<p>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.<p>How can I enjoy programming again?
======
drostie
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.

~~~
caw
> 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.

------
alexobenauer
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.

------
jbrooksuk
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.

~~~
maglos
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.

~~~
jbrooksuk
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.

~~~
maglos
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.

------
anujkk
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.

------
duiker101
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.

------
stagas
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.

------
maglos
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.

------
olefoo
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.

------
czarpino
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.

------
bbissoon
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.

------
stuaxo
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).

------
SyneRyder
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?

------
slajax
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.

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

