
Ask HN: Underperforming, feeling stuck - throwaway_stuck
What do you do if you feel you have all the advantages when it comes to programming -- intelligence, experience, passion, knowledge -- and yet they seem to desert you when you sit down to code?<p>One possibility is that I'm not as good as I think I am -- but I have had lots of validation. In the recent past (5 years) I've succeeded at some of the hardest interview processes in the world. I've written things that I'm proud of. I can speak as intelligently about code as any HNer.<p>Despite all this every time I sit down to code my brain turns to mush, somehow, and nothing gets done. I can always give my managers an intelligent explanation of why progress is so slow, but the thing is, progress is still slow. Lately I find myself making more and more beginner mistakes.<p>The weird thing is, I don't even feel burned out or depressed. I couldn't be happier with my current job. I'm just… stuck.<p>If something about this sounds familiar, feel free to offer advice. While psychological diagnoses may be right, at this point though I feel like there's something wrong in my <i>practices</i>.<p>I need some sort of professional help that doesn't exist. Someone to sit next to me all day and tell me what it is I'm doing that's burning up 8 hours a day without actually achieving anything.
======
lawn
Lot's of good responses but there's one thing I'm missing: working out.

A few years ago I was playing icehockey maybe once a day or something and I
felt great, school was easy and I had a lot of energy to spare (well, for a
teenager anway).

Then I quit hockey and I started doing nothing, just sitting in front of the
computer and guess what happened? I got inexplicitly tired and burned out. I
love math but it got boring and my arms where like spaghetti and I almost
tanked school (thankfully I didn't). I've always thought it was lack of
challenges but now I know it wasn't that simple.

I think that my lack of working out really did make me more tired, and not
just a bit but extremely tired and depressed and a whole heap of things. Now
when I've started at the university I had this same strange sensation like
back then, much milder but still familiar. So I went to a couple of taekwondo
practices and I'm feeling a ton better already.

So my suggestion is to start a regular, and then I do mean regular with no
skipping because you don't feel for it or don't have time etc, workout. You
don't have to go for a run if you don't think that's the most fun thing there
is (I personally really dislike it) but find something fun - ball sports,
climbing, dancing whatever.

Definitely worth a try!

~~~
araneae
On the other hand, if you hate working out and working, and you have a limited
amount of willpower, you might end up spending all of your willpower working
out.

~~~
mason55
If there is literally no physical activity you enjoy and no job you enjoy then
you are probably suffering from some kind of depression.

~~~
araneae
And here I thought I was just lazy.

------
aboodman
I used to have something like this problem, and it turned out to be very
simple: hunger.

I had a bad habit of not eating when I was deeply into something (or deeply
stressed), and my body would simply run out of fuel. I think there is
something weird about my physiology that causes me to not notice hunger as
much as others. So I wouldn't feel super hungry, but I'd get this spacey,
apathetic, faded feeling and have trouble focusing.

The longer I waited, the worse it got. But I'd already wasted so much time,
I'd feel bad 'wasting' more by taking a break and getting something to eat. So
it would go on like this, sometimes for a couple days at a time.

After a few years of this I happened to meet a beautiful, loving girl who also
liked to cook. She made sure I ate at least one good meal a day, and lo and
behold, the focus problems largely went away. I put two and two together and
nowadays when I feel the fadey feeling kick in, I know what it is and get up
and get a string cheese or something.

I imagine this probably sounds ridiculous, and I think I may be the only
person on earth to have this specific issue. But I just wanted to reinforce
the _practices_ bit. It could be something simple. Maybe find a trusted friend
or coworker to watch your work practices for a few days and tell you if
anything seems odd?

~~~
krschultz
I have a very similar problem, especially where you said "my body would simply
run out of fuel ... I'd get this spacey, apathetic, faded feeling and have
trouble focusing".

Somehow a doctor figured out I was mildly hypoglycemic, basically you have to
eat consistently and everything, but if you haven't eaten in too long you get
that long crash where you end up just being almost exhausted for no reason. I
always make sure I eat at least something for breakfast lunch and dinner and
grab a small snack in the afternoon, an it helps a lot.

~~~
SanjayUttam
++ Breakfast. I won't even try to do anything that requires thought without my
breakfast...usually just some non-sugary cereal.

------
edw519
_Despite all this every time I sit down to code my brain turns to mush,
somehow, and nothing gets done. I can always give my managers an intelligent
explanation of why progress is so slow..._

Oh, so this happens at work...This exact same thing has happened to me many
times and here is what I figured out...

The problem is NOT with you, it's with the work.

Like you I have scored excellently on interviews and tests and have written
code so cool I even surprised myself. So we have to believe that we are as
good as we think we are. That belief is what enables us to take on the hard
projects. That belief is also what turns our brains to mush when our work is
too many levels below our capabilities.

Sure, we all do work below our level every once in a while; we have to, that's
the nature of the beast. But when you're doing low level work for too long
(like at many jobs), you lose energy from the lack of stimulation. We then
mistake that lack of energy for many other things: our skill, our commitment,
even our health.

Here's what I've done in situations like yours: build something cool on your
own time. It will get your juices flowing and you'll be your old self in no
time. Of course, you'll want to work on your own project instead of your
employer's, but that's another problem.

~~~
someone_here
_build something cool on your own time. It will get your juices flowing and
you'll be your old self in no time. Of course, you'll want to work on your own
project instead of your employer's, but that's another problem._

Another problem that's fixed by having a profitable side project ;)

------
staunch
One of the spookiest things about burn out or stress of any kind is just how
incredibly stealthy it is. It's impossible to self-diagnose in many cases. You
can't trust your own evaluation at all.

------
jacquesm
Consider a complete change of career, if that is at all an option. I know that
sounds pretty dramatic and drastic, but you've already changed jobs several
times within the profession and that does not seem to solve anything.

Apparently your inspiration is at a very low tide and you don't seem to derive
much enjoyment from your work.

This is not something you are going to 'fix' (unless you're just looking at
the short term) through technical measures or tricks, your body is giving you
a pretty strong signal and you really have to take it serious.

In the long term your inspiration and energy will return but you need to
conserve what energy you have left to maintain your health and your
relationships with other people, not to pour it in to some chunk of code
unless that would give you the energy to do more.

It's _very_ tricky to give you any solid advice without knowing you much
better, please be careful.

I do not second the ADD responses in this thread, they do not mesh with your
analysis of yourself in some particular respects, the thing that jumps out
most at me is this: "every time I sit down to code my brain turns to mush" and
the second is this "One possibility is that I'm not as good as I think I am",
that means that even though you may not be 'burned out' you are definitely in
the risk group for burning out.

~~~
robotblake
_Consider a complete change of career, if that is at all an option._

While this may be a huge change to think about, don't underestimate it as a
real viable option.

I actually was having the same problem as OP and have been in the process of
switching careers to screen printing of all things. I've noticed myself having
more energy both in and outside of work and a feeling of accomplishment that
I'm actually getting shit done in a measurable way. When I actually do sit
down to write some code in my off-time, I've felt much more inspired and have
actually had the drive to finish the things I start.

Obviously this is all heavily YMMV, but certainly something to consider.

------
varjag
I think it's a common pattern, only perhaps the magnitude is worse in your
case. I observed it on myself as well on other programmers back when doing a
project management stint.

What helps me personally is having a notepad where I jolt down TODO items, to
the most atomic level if possible. To give an idea what's on it here now:

    
    
      - probe for activity on the I2C bus
      - find the SIGCHLD problem
      - remove rectangle in the logo on web interface
      - follow up to a customer on his RFI
    

I.e. tiny bits of work that do not present much challenge separately, yet are
actual, necessary things to be done. No deadlines, priorities, long
descriptions, etc. No grand items like "add feature X" or "do complete test
coverage". They are easy enough that I can complete at least one (but usually
a bunch) in the day, and strike it out. Each time you do that, there is a
modest tingle of gratification, so it helps to maintain working mood. Also,
looking back at the list of completed items is reassuring.

~~~
derefr
When you know you _need_ to "add feature X", what do you do? Write "itemize
feature X" on your list, and then, when you come to it, sit there and think of
a list of things to replace it with?

~~~
varjag
No, I don't do any meta stuff in the notebook, that would be silly. It's not a
progress report, development plan or a Gantt chart. You don't show it to your
peers or supervisors, you don't need to decieve anyone with it. The main
purpose is self-accountability and keeping (loose) track of the things you
need to approach. Micro-managing myself, so to say.

If I need to add a feature, I just come up with first obvious things that have
to be done, and expand it as the problem works out or new circumstances arise.
E.g. I had to add a protocol support (Modbus TCP & UDP) to the product, the
list ended up like this (editorializing a bit):

    
    
      - get green light from the manager
      - read the spec for minimal conforming implementation
      - implement conforming request parsing
      - implement register read command
      - add application-specific bit X to a register
      - add application-specific bit Y to a register
      - implement UDP recv/send loop
      - test UDP part
      - implement TCP listener
      - test TCP part
      - fix zombie issue with TCP handler
      - test TCP part
      - build of product with the new feature
      - test the build
      - test the build vs real PLC
    

Perhaps everyone has at least some ideas what you should do when you begin on
chunk of work X, so you just write them down, no matter how trivial.

------
lsc
several strategies that have worked for me:

1\. get yourself checked out for ADD. I'm not saying this is the problem, but
it's easy to check for, and if it is the problem, there are drugs that can at
least temporarily make the problem just go away. Now if this is something
you've never experienced until just now, it's probably not ADD. But if you've
had these sorts of problems on and off forever, (I know for me, my performance
falls off a cliff after I've had a job for about a year.) ADD is something to
check out.

2\. Try pair programming. It works really well for me.

3\. Move into management. Even if your organizational skills are not great,
having the knowledge of the field gives you a pretty good leg up. If you
manage your own company, you can hire people specifically to take care of the
things you are no good at or hate. You can get a CS student to watch you code
and kick your chair when you stop for under ten bucks an hour.

~~~
lisper
> it's easy to check for

Really? That's news to me. How do they check?

> Move into management

+1. The tech world needs more managers who actually know tech.

~~~
MaOEZKmzhG
My experience with a neurologist specializing in ADHD treatment:

1\. The doctor will interview you and ask you about your history, all the way
back to childhood. If you haven't had problems focusing, concentrating, etc.
throughout your whole life (even as a child), the doctor might be skeptical.

2\. They'll test you to make sure you're not having seizures.

3\. They'll also test your focus, concentration and short term memory with a
computer test called CPT (continuous performance test).

Assuming you have a history of ADHD symptoms, you currently have symptoms that
are interfering with your life, and you do poorly on the computer test, the
doctor will probably start some kind of treatment, probably using prescription
stimulants.

That said, I'm sure there are a lot of other medical conditions that cause
symptoms similar to ADHD's. You might end up learning you have some other
problem entirely.

~~~
firebird84
Depends on the doctor really.

The first doctor I tried wanted to have me see a shrink to get tested. The
first visit cost me a $50 copay and then I had to have another visit to do the
actual test, costing another $50 copay. I skipped that second visit and went
to another doctor. (The shrink seemed like a quack anyhow).

My new doctor whipped out a giant book and started reading a battery of
questions from the back of it. Based on the answers to those questions he
determined I "met the requirements for treatment." Seemed a bit weak, but I
didn't ask any questions since I knew I had already been through all the
typical tests before. having been diagnosed as a child.

TLDR: YMMV. Just talk to the doc and see what he says.

------
jaddison
Burnout takes a lot of forms, has many stages and is felt differently by
everyone.

Are you happy with your job - or just the salary that you get paid? Take some
time and think about your motives for staying where you are.

Maybe you can look for advancement (challenge) that will help you to be
renewed in your current job; maybe you simply need a change. If you do decide
to move on to something new, I highly advise taking an extended break between
the old and new... reset, refresh and revitalize.

You have to know what the problems are before you can solve them. Seems
simple, but it's surprisingly common to overlook this one simple truth. Just
ask yourself - what do you like about your current job?

~~~
throwaway_stuck
This is serial. I've lost a couple of jobs in a row from this.

Luckily I still have a reputation earned from some years ago. Plus, I
interview well. People still give me jobs.

Managers don't seem to have a response here. In my experience most managers
only have one bit of information devoted to programmer ability (ROCKSTAR xor
SUCKS). They have alternately told me to try harder, or threatened then fired
me.

I had felt like I was deceiving employers so I took a nine month break and did
an artistic project. However even with a whole day to do nothing but that, I
wasn't able to achieve much. I worked with a small number of people and lef
that project, and it got done, but not very well, even though it was my "full
time" job. Still, I felt that I had had enough of a sabbatical, and also had
made some progress in psychotherapy, so I returned to the workforce, only to
run into the same problems I had before. I now think the psychotherapy was not
addressing the right problems -- it's more about what I _do_ than how I
_feel_. And it's clear my attempt at a sabbatical didn't clear up the
fundamental issues.

I have friends that are able to learn programming languages on the side or
take blacksmithing courses and otherwise have full and exciting lives. In
other words they have reserve energy. I am so behind on just the basic
requirements for my project, I feel I can't do any of this. I schedule more
and more and more and more time for work and yet still nothing gets done.

As for happiness with work; I have a pattern of working with codebases that
are in great need of refactoring and I am feeling a great need to stretch out
and do something more original. So that is a problem.

That said, the guy who sits next to me has enough energy to actually satisfy
those needs both at work (gets managers to agree to major refactorings) and
also code up some great things in his spare time. Whereas I'm perenially
playing catch-up and my code is ugly.

~~~
christopherslee
Someone mentions this below, but, are you trying to engineer the most perfect
elegant solution known to man when you could get by with something more
simple?

Working with existing code that someone else wrote is harder than a new
project. I've only really gotten into heavy testing in the last year or two,
but having tests also improves confidence that your changes are not bringing
down the entire system.

Finally, what I would say is you need to get into a habit of mentally
stimulating yourself after work. I found that when I was in a rut, I thought
that I was burnt out and needed to "veg out" more, but I later felt that
vegging out only bred more laziness and more procrastination. Once I started
to get my brain stimulated in any way, whether it was reading a book, or
trying something to learn something new, the effects would carry over.

Summary, laziness breeds more laziness, and stimulation actually recharges
you.

------
bluethunder
I think this could be one of the 2 things:

1\. There is something else which is pre-occupying your subconscious mind.
Probably something which you are trying to sideline as not a big deal, but
subconsciously it is a big deal. Find out what that is and take care of it
head-on. This will fix itself after that.

2\. You might not see yourself being 'successfull' in this job over a longer
term. For example, you want to do a startup and even though you need this job
for the money, you still understand that your longer term interests are better
served by quitting right now and doing a startup. It could be something else
but essentialy what could be happenning is that your subconsious realizes that
you doing this work is not getting you any closer to your longer term goals
and hence it is revolting.

Do not seek to change yourself or your circumstances right now. Only seek to
understand yourself - once you have done that these things will go away by
themselves.

~~~
dytrivedi
#1 is very true. This is beyond usual thinking and logic, but what's deep
inside your subconscious plays a major role in your current state. I've
ignored examining it for quite a while and BOOM! - I was unproductive,
procrastinating, not able to concentrate, and what not. You'll be quite amazed
by the fact that how irrelevant a thing could be lying in your subconscious. I
suggest examining your life in great details and find out what's going wrong.
And then immediately fix it!

------
ob
I've had similar stuff happen to me. One trick that has helped to get me out
of the rut is to go back to the basics. When I'm stuck I would find a textbook
problem, from the very simple (reverse this array, etc) to the more complex
(implement a red-black tree). I find these problems help get me back on track
and give me useful tools that I might use some day.

I think there are two pieces to being effective at programming. If you have a
clear idea of what you are trying to achieve, you can just bang out the code.
Unfortunately, most of the time you are understanding the problem while you
code it due to very ambiguous specs, so you just can't code as efficiently.

Last, but not least, tweak and tweak away. Write some code, take a walk, come
back and take a look at it again. Review your own code thinking about where
you are making mistakes, it'll give you a map of what to watch out for.

~~~
sambe
The classic advice: <http://projecteuler.net/>

Helped me get _something_ done.

------
aniket_ray
This has happened to me a few times. These are the tips that I follow.

-Don't worry about it. Its just a phase and it happens to the best of programmers.

-Drink loads of water. I don't know the biology behind it but when I'm properly hydrated I think much more clearly.

-Take some time off work. Play a game, watch a movie. Any of those guilty pleasures that you generally avoid. And don't feel bad about wasting a bit of time. Your mind needs the rest.

-Cycle through different kinds of music. I see that sometimes working with music helps and sometimes working without. Sometimes changing music genre helps. I cycle through phases during which I am most productive in either Heavy Metal, Folk, Classical or 80's pop music.

-Aboodman has already mentioned the importance of timely healthy meals. I tend to keep some fruits with me when I start programming, to munch on over the programming session.

-Something that might be the most important is, solve easier problems and gradually move to the harder problems. Generally (and managers would tell you) that you want to solve the harder problems first, but when you are in stuck and looking for inspiration solve some easier problems. If there are no relatively easy problem at work, there are lot of easy programming problems available on the net (Google programming interview questions). Find some relatively easier problems and code a solution. Then, move to relatively harder ones.

\--I tend to like easier problems where the target is to achieve a particular
performance (say processing should end in xyz seconds) because then you could
gradually improve your solutions. Victories in small battles are just as
important for our mind as the bigger ones.

Just my 2 cents.

edit: formatting

------
dlsspy
I get this sometimes. For me, it takes the right balance of something I'm
excited about, having a lot to learn, and having drive from people whom I feel
are pushing me in a direction that's _better_ when I'm having trouble ramping
up, but not in the way when I'm really rolling out code.

I've been doing most of that lately, though I can get into a dream state quite
a bit where I want to make something _really_ awesome that will slow things
down a bit too far.

~~~
kevinelliott
You're really lucky people are pushing you. I'd love to have that! Some of us
are less fortunate, either because other associates are not interested in the
projects you're working on, or because they're super busy in their own.

I don't get a lot of friends and associates asking about my progress, but I
always make sure to reach out to them every so often to see how they are doing
and offer myself as a resource if they need it for anything.

------
albahk
I can identify with elements of what you are going through, but I cannot add
anything to explain the why behind them.

I remind myself though, that what you see in others around you is the polished
exterior surface of their lives, which many times hide the tangled mess of
cabling and crap inside. My point is you are comparing your messy insides to
another person's polished exterior - hardly a fair comparison for you.

Best of luck

------
sidawson
I can totally relate to this. Having worked largely from home for the last
decade, this is something I've had to battle a lot. Not being in an office,
there's no-one else there to motivate me.

Here's what's worked for me:

 _10 under 10:_

Every night I write out 10 (or more) tasks, each under 10 minutes. I make sure
there's a few super easy ones (coupla minutes each) at the top of the list.
That's what I work on the next day.

10 mins is a good length. It means you have to think down to near the deepest
level of a task. I found with 20 min tasks, it's very easy to get mentally
lazy, & next thing you know you're depressed/unmotivated coz something you
thought would take 20 minutes is actually a day's work, full of subtle
gotchyas.

Each day I try to do 10 of these tasks. If I achieve 10, I know I've had a
good day. Thing is, once I've done a bunch of them, I'm usually motivated
enough to do to a ton more. Eg, today I've done 79 (so far).

10 * 10=100 minutes of coding may not sound like a lot, but you'd be surprised
how little actual work most people do (see: Office Space).

I keep two lists: the 10 under 10, and my 'done' list for the day. As I do
something, I c&p it from the former to the latter. That way if I need perking
up during the day, I can just look at my 'done' list to see how productive
I've been.

 _Identifying limiting beliefs:_

This is a bit trickier. It's easy to see the noise at the top level of our
mind (mental chatter: "This problem is too tough for me" "I can't do this"
etc). That stuff is relatively trivial to let go of (just decide to, you're
the boss of your brain).

What's trickier is finding the subconscious stuff, doubts etc that affect our
behaviour, but don't necessarily rise to the level of conscious thought. What
I've found is that a lot of times things are so abhorrent that our mind
"protects" us from them by hiding them. You can only see that you're being
limited by looking at your output (behaviour, patterns, productivity etc).

A useful framework is this:

1) Assume you can do anything (as you pointed out, within this field there's
no reason you can't).

2) From that basis, anything you're not doing is because you WON'T. Thus,

3) Ask yourself "Why won't I do X?" - with the followup question "What am I
afraid of?"

What I've found is for every "won't", there's a fear behind it.

Now, the super subtle thing is this: You won't necessarily get any internal
(mental) answers to these questions. However, if relaxed & attentive, you may
feel tension or energy rising in your body in response. This is your body's
physiological connection to those deep fears. Know how when you get stressed
you tense your shoulders? Yeah, it's like that.

So, when you feel that energy or tension rising, in response to the questions,
just let it go. Make the choice to consciously relax & let go of that tension.
As you do, what you're doing is simultaneously letting go of the associated
belief. Keep letting go till you feel relaxed about the questions.

Those two techniques combined have worked wonders for me, coming from exactly
the same situation you describe. Good luck!

~~~
damncabbage
I can't upvote this enough.

For what it's worth, I've gotten good use out of the Pomodoro Technique (
<http://en.wikipedia.org/wiki/Pomodoro_Technique> ) to keep myself focused,
but it usually only works for me if I'm already motivated to begin with.

Doing both the 10-under-10 and Pomodoro may help to get things started _and_
keep the momentum going.

------
agentultra
It could be anxiety in one for or another. I get anxiety in high-pressure
social situations sometimes (mainly because I work from home a lot and don't
get many opportunities to socialize offline anymore). It's not like I freak
out or anything, I just start drawing blanks, mumble, and sometimes stutter.
It becomes difficult to complete a thought.

It's no biggie though. There are was of coping and over-coming your issues. As
others recommended, exercise helps. If physical activity itself doesn't help,
try something with a strong mental or emotional component like martial arts,
rock climbing, or dancing. You just need an outlet for whatever you're holding
on to.

------
wlievens
Sometimes, when you learn new things, your expectations of yourself grow
faster than your practical skills. You read about great things, and then you
want to be able to do those too, but your practical skills and experience
hasn't caught up yet. Maybe it's that?

------
shy_hckrnwr
I have a similar problem, i have knowledge, good coding skills but i never get
things done on time, mainly because i have a serious procrastination problem.
Is like i can only work under pressure, if i have a assigment of 1 month i try
to do the things from the start date but actually start to be productive in
the last week, and i never finish on time. I'm feel sick about this because
the entire month is a pain to me, and my life quality sucks cause of that.

I have some success with a product(webapp) that i build, outside my job and
recently get bussines angels money to start my own bussines. I dont know if i
undervalue myself but i have the feeling that i dont deserve this success. I'm
afraid of fail because my work style problem. I hope that now that i go into
management and will hire people the things change but i'm not sure, maybe the
problem affect all my personality, i used to act similar in my schools days.
Some time i think is a kind of mental problem.

Excuse my english.

------
risotto
I've been feeling this recently but had some breakthroughs about it.

A very experienced adult has strong notions of what is possible. If you're
around very successful people these notions are lofty.

Sure it's possible to bang out a program in an afternoon. I used to do it. My
coworker does it all the time. But I am not doing it now so there must be
something very wrong. Maybe I'm too old or depressed or have ADD or ...

I found you just have to really step out of your head for a second. My
managers are genuinely happy with my progress even if its slow. They know they
can count on me to understand the problem and keep advancing and deliver
something that works, even if that takes weeks where it could theoretically be
done in an afternoon.

Furthermore, they want me to be relaxed and happy and that means it's fine to
play hooky or slack off some days.

So I just focus on my personal relationship with my coworkers, and my mental
health, not my "productivity." I am not a robot.

------
8ren
Every new problem is hard. You are a beginner every time. Every dragon is a
new dragon. If you already know how to defeat it, you should have built
something to do it for you.

Your first line is revealing _succeeded at some of the hardest interview
processes in the world_. That means you're supposed to be _good_ , doesn't it?
That's paralyzing. How can you know you'll be _good_ at solving a problem
you've never seen before? You need beginner's mind™.

 _The heaviness of being successful was replaced by the lightness of being a
beginner again_ <http://www.freerepublic.com/focus/chat/1422863/posts> (note:
just because he's incredibly successful doesn't mean it we should all try to
be like him; but this quote does chime in with my own experience.)

------
kenjackson
The beginner mistakes line stuck with me. What types of mistakes (specific
examples)? This might be useful for me to know what is going on ewith you.

~~~
throwaway_stuck
Big things like agreeing to start coding without requirements.

Little things like inconsistent return conventions or code disagreeing with
documentation comment blocks.

People are referring me to classic coder texts like Code Complete. Okay, maybe
I do need a review but I fucking read that book in the 90s. It's incredibly
galling.

~~~
JesseAldridge
Reminds me of that study which found giving checklists to surgeons improved
survival rates in a hospital by a significant amount. It had basic stuff on
there like, "Wash your hands before operating."

Maybe something similar would work for you.

[http://www.washingtonpost.com/wp-
dyn/content/story/2009/01/1...](http://www.washingtonpost.com/wp-
dyn/content/story/2009/01/14/ST2009011402914.html)

------
piramida
Sounds similar, been in the same situation, to understand yours better one
question that needs a honest answer - do you like what you are coding? Are you
interested in the end result? In my case, switching over to a project that I
was really interested in brought back the enthusiasm I started lacking. And
losing enthusiasm leads to subconscious delays - it's as if your brain tries
to avoid doing the work it does not get direct stimulation for. But if you
(deep inside) do love what you are doing, then it probably does not apply to
you. Do you have any side projects? Are they any different? Maybe you just
avoid admitting to yourself that you are not doing what you want to be doing,
really.

------
sunkencity
When I get this, I add extra constraints to make the problem harder. Switch to
using VI editor instead of using Emacs like I normally do. Do an ambitious
rewrite/refactoring, make it harder just to to add more FACTOR X. Having more
unknown in a projekt makes it more rewarding imho, especially if you're turned
on to constantly learning new things. It can be as simple as developing from a
new platform (running some weird ass OS inside a VM and developing from that),
or it can be (depending on project, writing it in some weird little language
just for fun). You probably don't need less of a challenge, you need more of a
challenge to get you really motivated.

------
terra_t
You can be depressed without realizing it. Part of you can think that you like
your job, while another part of you hates it. The best way to detect burnout
isn't to ask "do you feel burned out?" but to ask "can you get the work done?"

I was stuck in the code mines a few years ago; I'd always find some way to
convince myself I was happy about what I was doing, but then I read this blog
about SEO and started dreaming about making my own web sites that make
money...

At that point my mental health really cracked and I couldn't focus on 9-to-5
work at all anymore. It was a sign that I had to change what I did, and
gradually, that's what happened.

~~~
rhizome
Depression is a very common side effect of ADHD due to a person's natural
reaction toward not being able to get stuff done.

------
rsaarelm
Have a checklist of "stupid" health maintenance stuff, not directly related to
the problem at hand. Neglecting these may cause poor mental performance. Here
are some example items:

\- Be aware of how much you sleep, avoid chronic sleep deprivation,

\- drink enough water that your urine is clear,

\- watch out for blood sugar crashes from eating irregularly or eating refined
sugar, these can mess your head,

\- go running or to the gym, this will kick up your metabolism, and being in a
better physical condition might provide more energy for mental work,

\- try some basic dietary supplements, some omega-3 source, multivitamins and
calcium seem to be commonly used

------
znt
This has never happened to me before but maybe you have performance anxiety?

You said you had done well in the interviews and you're an experienced
programmer. By listing these reasons you make appearent that any person with
your qualities must be able to produce outstanding work.

By looking from that perspective maybe you're imposing expectations that are
too high about yourself instead of just letting it go and enjoying your job.

So maybe treat yourself as a newbie programmer who's just started his career,
and instead of trying to do outstanding work you should try to gain as much
"experience" as possible.

------
robryan
It depends what technologies you are working with to, when I had to pickup the
.NET stack I found a large portion of my days taken up just researching
different little unintuitive bits and pieces.

It's possible that your day becomes to compartmentalized that you don't really
have time to build up some momentum on anything? Possibly staying back longer
at work might help get a bit of flow happening, I know personally if I was
working a 9-5 job it would at times kill productivity with the stopping and
starting the next day again overhead.

------
teyc
Have you considered it a problem of committing? Sometimes, when you have
bucketfuls of experience, there doesn't seem to be any good choices, and you
are paralysed by the fear that you might incur a technical debt that will be
expensive to pay later.

Secondly, is it your development environment. Some tools have gotten very
large and can disrupt the flow of reasoning.

Thirdly, try doing as much of the design work away from the computer. Then
when you are there, you are just writing code.

------
gagi
throwaway_stuck:

1\. Is programming the right job for you? If you feel uncomfortable or
dismissive of this line of thinking, consider a quote by Jefferson: "Question
with boldness even the existence of God; because, if there be one, he must
more approve of the homage of reason than that of blindfolded fear." If
programming is the profession that truly satisfies you and complements your
abilities and personality, then it should withstand critical probing. Is this
something you're doing because it's comfortable and you've never looked
elsewhere? Are you truly competent?

2\. Build something. Something simple and tangible. Get an $10 point & shoot
camera, go into the woods and take 20 pictures of wild flowers. Print the
pictures and make a physical album. Do as many of these small, creation-
oriented, achievable "distraction projects" as you can. In my experience, they
provide a great boost of self-confidence, and this allows me to think about
personal problems with perspective and calm. This allows me to introspect in a
healthy fashion. Heavy weight lifting and long walks seem to provide the same
boost to my thought process.

I hope that helps.

~~~
markkanof
Your second point has always been really helpful for me. Since. I spend all
day basically living in my own head and moving bits around to create
intangible products. I find that it helps to do some activity with more
tangible results, to avoid burnout.

My current activity is cooking. I make the time most nights to make a real
dinner from scratch. I've gotten in to bread baking too. The part that I think
is most beneficial is both that it produces something that you can actually
touch (and taste) and I can finish preparing a meal in an hour or two, so I
don't have to wait for months to see the outcome of he thing I am creating.
Plus it doesn't hurt to have a solid healthy meal everyday.

------
nside
It sounds like you're "under-stimulated"; try running your onw co for few
months and come back on this thread. Maybe you're a lion in a cage?

------
windock
I found myself in the same problem when I've become web developer - my
attention was weakening from month to month, even having healthy work and
rest, probably because of lots of distractions that internet brough. End up
using Pomodoro Technique. <http://www.pomodorotechnique.com/> (site is down
currently, however it seems to be temporary). In short, from
<http://en.wikipedia.org/wiki/Pomodoro_Technique>

    
    
      1) decide on the task to be done
      2) set the pomodoro (timer) to 25 minutes
      3) work on the task until the timer rings; record with an x
      4) take a short break (5 minutes)
      5) every four "pomodoros" take a longer break (15–20 minutes)
    

That way, after a few month of working that way I could make about 8 pomodoros
a day (comparing to 2 at start) and it made me merely 4 times more productive,
also attention after that kind of training started to improve.

------
lisper
Definitely familiar. What I would suggest is to figure out what it is you're
really getting hung up on. It has to be something more specific than "my brain
turns to mush." Try writing down a description of the problem you think you're
having. The act of rendering a thought into writing will often break a logjam
for me.

~~~
throwaway_stuck
I get hung up in a number of ways, but the most severe is when I'm trying to
learn how the existing system works. I'll be listlessly paging back and forth
between spaghetti code classes, and things get all fuzzy, and then it feels
like I've spent enough time on this, and some sort of strategy to do my
project occurs to me.

And then I try it, but it doesn't work because I still didn't understand the
existing code. Rinse, repeat.

However, just the other week I decided somehow to FIGURE OUT HOW IT ALL WORKS,
DAMMIT. I actually kept a glass of ice cubes next to my desk and pressed one
to my head if I felt I was drifting, which worked surprisingly well. I
realized that this codebase always had a lot of the functionality I had always
wanted, hidden away in a particular method. I'd been staring right at it for
months and it didn't click in my head.

I felt ashamed.

~~~
lostdog
This sounds very familiar...

> Luckily I still have a reputation earned from some years ago.

You've been capable of doing good work in the past, but you're deeply critical
of your current work:

> I felt ashamed. ... and my code is ugly.

When you try to work, do you start on an approach but then doubt it and lose
momentum?

It could be anxiety. Here are some thoughts:

1\. Remember that programming is difficult and takes time. Adjust your
expectations to accept slow progress.

2\. Refuse to churn, even if it means writing crap code. Consider everything
you write at the outset of the project/day/feature to be a rough draft. You
will return to revise it, so the rough draft can be utter crap.

3\. Keep your focus on a small corner of the project. Seeing the big picture
can help you design a higher quality system, but considering the big picture
for too long or too often allows your mind to despair. Todo lists help, but
the attitude of ignoring everything but the current task helps more.

Pay attention to what you're thinking about when your mind fuzzes out. Are you
worrying about something? Learn to recognize the beginning of your focus
dropping away.

You said this:

> it's more about what I do than how I feel ... at this point though I feel
> like there's something wrong in my practices.

I think you're wrong. You knew what to do in the past (you told us so) yet you
fail at similar tasks today. Your "brain turns to mush" and you think it's
practice that's lacking? Not doing TDD? Too many templates? Not knowing the
latest design pattern?

It's in your mind.

------
nait
Does the problem only occur when you're writing code at work? What I mean is
if this is work related, perhaps you want check your mental model of the work
and the results expected from you. For example: I spent too much time
considering (most of the times unconsciously) what kind of solution is
expected and how people would react to it. This sounds like an odd thing to do
but it wasn't like I chose to do this. But it was a conscious decision to get
rid of it and regain the initial (for lack of a better word) playfulness. And
live with the consequences. Somehow it nests easily in a mind that serious
work shouldn't be fun and is all about mindlessly meeting requirements. I find
that it is important to not let this happen. So far the results have been
pretty good for me.

------
VBprogrammer
I don't know if this is a problem that applies to you but for quite some time
I started getting bogged down in problems. I guess I was reaching the Journey
Man stage of becoming a programmer and I wanted to start by creating the full
architecture of each program before actually doing anything, a kind of top
down approach to programming. Recently, I’ve realised that I’m not super
human; I start by putting down code and shaping the architecture as the
problem evolves. Not that I put up with ‘code smells’, I don’t move on to the
next sub-problem until I’m comfortable that the current one is in a reasonable
condition. I fund this allows me to actually get started, rather than staring
at the problem as a whole and wondering where to start.

------
RBerenguel
When was the last time you disconnected from programming? Holidays? Have you
taken a halt and re-started? If you are getting nowhere, try to get two weeks
off. If you can manage, a month. And keep away from programming for that time.
You will crave coding after 2 weeks :D

~~~
throwaway_stuck
See "this is serial" above. I took about 9 months off. Didn't really do any
coding at all.

------
klaut
When I feel as you describe above I know it is time for a change (new job).
The thing that bugs me though is that you say that you are happy with your
current job - but maybe you are just lying to yourself (without realising it)
because you feel comfortable?

~~~
throwaway_stuck
My job is about as good as it gets. I believe in the work, the people are
great, it's interesting and affects lots of people. The downside is the
codebase is old and has problems, but I've seen far worse.

Part of me is itching to strike out on my own but if I don't have the
discipline to even do halfway well at a job like this, how am I going to deal
with a startup?

~~~
klaut
But maybe programming is not your real passion? I am in a similar situation
right now yet again. I saw that after a year (two years max) I get bored with
my job and couldn't care less and then I start looking around, change jobs and
the circle begins again. This time I realized that I need to break out of this
pattern because it is leading to nowhere. I am scared to start on my own, but
maybe it is just what i need? Maybe if I am out of my comfort I will be
actually forced to be active and do things instead of thinking about them and
complain. So, maybe starting on your own is something you actually need, as
well?

------
bartwe
Try to build the simplest, crappiest thing you can think of. Leave
perfectionism at work.

~~~
pantulis
I wouldn't be so sure that perfectionism at work is such a good thing. Sooner
or later you're going to hit the bottom line.

------
GBond
Kinda scary how so many HN people are giving you armchair medical advice... if
you think it even remotely physiological/bio-chemical, go see a REAL doctor.

>I'm doing that's burning up 8 hours a day without actually achieving
anything.

If you're certain it is not... have you tried brain hacks like the The
Pomodoro Technique? Also considering asking another hacker to mentor you.
Simply sharing what you are working on is great motivation. I often tell my
friends about the projects I am working on knowing that I will lose traction
doing the low level stuff. Having someone you respect checking on progress
goes a long way.

------
Neputys
If I were you I'd think that I'm missing something important. Skills and work
is not the only existing thing in life. Judging from what you wrote about your
self I don't think you have a problem there. In fact I'm sure you don't. Try
to look at a bigger picture. There's definitely something missing in your
life. Find out what. I bet it's not work related, but work is probably
pointless without it. How old are you? What's next? Want family, kids? Climb
Everest?...

And forget about this ADD crap. You are absolutely normal living thinking
person.

------
motters
It sounds like you don't have any particular goal in life, or that whatever
goals you had have been reached. Knowledge and intelligence on their own
aren't enough. You also need a mission.

Much of the coding which I do tends to be oriented around a particular kind of
goal which I'd like to reach, and which has remained elusive enough to keep me
trying and learning different things.

------
grammaton
Not much I can offer in the way of practical advice here. Mostly all I can say
is, you're not alone on this one. I'm going through much the same thing right
now, and I suspect there isn't much for it other than time. About the only
thing I've noticed is, cutting out extra time in front of the computer - e.g.
browsing mindlessly at home - seems to help a bit.

------
chopsueyar
What have you been eating and drinking? Does your employer provide you with
unhealthy snacks and/or energy drinks?

Are you going out to lunch at restaurants and having big portions?

Are you drinking alot of coffee with sugar and cream in the morning?

Gatbage in, garbage out.

------
rishav
Even if you are not good as you think. You may atleast know what usually can
get done.

Try doing the easiest things first. That motivates you to do the next and the
one after that. It also helps get you into some rhythm

Also, Try taking a break :). It helps

------
Vargas
> I can speak as intelligently about code as any HNer

The level of technical discussion in HN is very low. Either HNers are not
knowledgeable or is just that they/we don't use this forum for in deep
technical discussion.

------
alttab
I'm going to say what everyone else has said in way less breath: become action
oriented and _DO_. Don't think about how you feel, how mushy your brain is,
etc. Ignore obstacles and PLOW.

Get something done.

------
guynamedloren
Why did you post this on a throwaway account? Are you afraid that HN will
think less of you if you posted on your real account? Not trying to be
critical - these are honest questions here.

~~~
Figs
This is a public forum, not a closed community. Posting about a problem you
are having publicly can put you at a disadvantage if your regular account is
linkable to your real life name. For example, if a prospective employer
googles his name and finds a post about how he's having trouble working, they
may be less likely to hire him, even after he figures out the solution to his
particular problems.

------
adamtj
Do you like what you do? You said you have passion, but that isn't always the
same. Programming can be very hard if you aren't actually interested in the
work you're doing.

------
SePP
Try to draw out (schematically) what you want to code on a day. Throughout the
day keep progress on where you are on your schedule.

It'll help you GTD and also helps structure your thoughts.

------
maxklein
Maybe you're just a bit lazy and somehow justifying it to yourself with some
complicated theory. Spend time doing the mentally difficult tasks and stop
being lazy.

------
klon
I can really relate to this. For me it happens mostly when I have too many
projects at once or the projects are chores which do not resonate with my
interests.

------
iliketosleep
it sounds like you did well before, got too comfortable and now your mind has
gone stale. you've lost that raw "do or die" motivation. i'm afraid it's not a
problem you can think your way out of. you need to put yourself in a situation
where you are forced to do what needs to be done, where you literally cannot
AFFORD to slack off. it will bring you back in touch. you'll feel hungry.

------
trustfundbaby
I know you say you love the job, but how do you feel about the specific
projects that you're asked to work on? Are they interesting to you?

------
jonhendry
I hate the "I'm trying to think but nothing happens" feeling.

Not least because there's an audio clip out there of Curly of the Three
Stooges saying it.

------
kqueue
Seriously, take a 2 weeks vacation. That's all.

~~~
Jach
I wish. Maybe a year vacation would do it. Perhaps it's because I'm still a
college student, but 2 weeks does not seem like long enough to wind down nor
stop worrying about everything that needs to get done when you come back. I've
known teachers who couldn't stand not having their summer breaks.

Of course, to each his own.

------
bluishgreen
If you are still watching mail me at snathan(a)cise.ufl.edu, I might have
something useful to say

------
moconnor
You says it feels like there's something wrong with your practices. I'd agree.
What are they?

------
wooster
This may be a long shot, but have you tried Vitamin D supplements?

------
crizCraig
Few things that have helped me:

1\. Tim Ferriss's 4HWW suggestion to focus on one or two things a day and when
you're doing one of those things, do it in one shot. Don't take any breaks,
ready any news, or get lunch before you're done with it.

2\. Scrum. The daily meetings and sprint demos have highly motivated to show
what I've done. It's also hard to explain away bad performance when the
burndown chart is falling behind because of you.

3\. GTD tip: What's the next action? It feels great to boil big projects down
to a next action. Sometimes great enough to actually start doing it. :)

4\. Listen to some music. Sometimes this boosts my mood and motivates me to
delve into a project. The trick is turning off the music once you get to the
first problem that requires some deep thought.

------
berntb
I'd guess the guy talking about burn out might be correct. Try working less
for a while and take up a totally different hobby. If you don't get exercise,
start doing it. [Edit: The advice below to go Voltaire and get a garden might
be good.]

Some other possibly reasons, from mine (and others) lives.

Check physical health. "Random" examples: Sleep apnea. Bacteria infection.

Some weird allergy/food intolerance. Change where you work, eat and sleep.
[Edit: From comment below it seems you've had this long enough and in enough
jobs to know this isn't true.]

You might have problems relaxing when not working, try a course in meditation.
[Edit: You took time from comment, so this is probably not it, either.]

------
moonpolysoft
Same shit was happening to me for a while. I have 1 word for you: modafinil.

------
Rrrrttt
Become a farmer and grow your own veggies

