top | item 15125949

Ask HN: Programming is mentally overwhelming to me now. What to do?

103 points| tboyd47 | 8 years ago | reply

When I was 23, I used to be totally comfortable cranking out Javascript UIs like there was no tomorrow. These days I'm approaching 33 and I can barely force myself to look at code for more than 20 seconds without mentally panicking.

I don't know how I got here. I think it's a combination of many things, such as 1) a demanding family life 2) web development getting more complex in general 3) more stressful work environment 4) physical discomfort like RSI getting worse 5) just getting older & brain getting foggier.

I don't think learning in my off hours is an option because my day job is so mentally draining. It takes all of my brainpower just to work from 9 to 5, and then I have nothing left over after that.

I am talking to my manager about reducing my responsibilities but really I've been feeling this way for over a year, just trying to hang in there. But it's only getting worse as the months go by.

102 comments

order
[+] danesparza|8 years ago|reply
I just turned 43. I've been doing this for about 25 years now. I remember having a similar issue right around 30-33. Here's what helped me:

Sleep. Make sure you're getting enough. Seriously, prioritize this over many other things in your life.

Address that fucking RSI. Go to a doctor if you have to. Experiment with breaks, standing desks, ergonomic keyboards, better chairs. Find what works -- this is the only body you get.

Hydrate. Make sure you're drinking enough water. Dehydration can lead to brain fog and irritability.

Change the way you take notes. I used to be able to hold large parts of a system in my head. That changed around 30. I had to start taking better and more structured notes. Incidentally, QA started really liking the bugs I fixed because my documentation ended up being so good. So, good things all around there.

Make sure you're doing fun things. These don't just have to be technology related of course. But seriously, enjoy life. Play board games if that's your thing. Go hiking. Take pictures. Read a book (or three). Plan in downtime to walk during the day.

[+] Tade0|8 years ago|reply
I'm younger than the OP and currently at a turning point at which I'm realizing that sleep is this thing that I just have to do now more often and can't skip on it anymore.
[+] gozur88|8 years ago|reply
tl;dr: He has to start taking better care of himself. There are a lot of things you can get away with when you're 23 that you can't get away with when you're 33.

As you noted, sleep is the biggest thing. It will help with the stress and memory.

[+] AnimalMuppet|8 years ago|reply
Get some exercise. Go find some people to play ultimate frisbee with. Or, if that isn't your cup of tea, go for a walk at lunch. This not only gives you exercise, it also gives you time to look at the trees and sky - to put your mind on the physical world around you instead of on the code you're trying to build.
[+] samuell|8 years ago|reply
Same story here! Well, I'm 33 now, but I faced a similar situation over the last couple of years, but has managed to pretty much get over it by putting in most or all of the above adjustments, getting plenty of sleep being the most important one.

I have also realized that sometimes, when I have really important and mentally requiring work to do, I stop caring about work hours and just follow my body's rhythm, which is mostly afternoons/evenings. That can make wonders to productivity. Absolute wonders.

[+] tboyd47|8 years ago|reply
This is great advice. I recently started doing something for myself that's fun, playing video games with friends late at night, but it may be eating into my sleep too much.
[+] weaksauce|8 years ago|reply
> Change the way you take notes. I used to be able to hold large parts of a system in my head. That changed around 30. I had to start taking better and more structured notes. Incidentally, QA started really liking the bugs I fixed because my documentation ended up being so good. So, good things all around there.

I found that org mode in emacs is a huge note taking boon for me. all the stuff is nice ootb when you use something like spacemacs as a base configuration.

[+] probinso|8 years ago|reply
I would like to agree and second this.
[+] pm|8 years ago|reply
I would usually attribute this to burnout, but there might be other factors at work. I was exhausted on and off for three years, had many days off and would eventually get to the point of not being able to complete my work. I thought it might've been sleep apnoea or chronic fatigue. Eventually at the end of last year it got to the point where I could barely work at all, and I knew it wasn't burnout (been there, done that, don't stress about fuck all now).

I ended up being diagnosed with cancer, and after a bout of chemoradiation, it disappeared completely (as far as scans can tell). Let me tell you, the difference in energy was nothing short of amazing.

I'm really not trying to frighten you, but I was lucky that it wasn't aggressive and got caught relatively early. Chances are it's not, but it could just as easily be another medical condition and it's worth seeing a doctor. There might be indications of things in bloodwork or other measurements, so be patient but firm with your doctor if they tell you to just "forget about it".

[+] tboyd47|8 years ago|reply
Thanks for this. I am going to go see a doctor. The more I think about it, the more I realize it might actually be a medical issue. It's not just coding. Yesterday I had the same reaction just listening to a voicemail prompt. Any set of rules or procedures that requires even a little bit of focus sends my mind reeling. It feels as if I've somehow lost the part of my brain that is "smart."
[+] Retric|8 years ago|reply
I second seeing a doctor as digestive diseases for example result in vastly reduced energy levels. EX: "Albumin levels low" = your starving even if your eating plenty of food.

But, I would also add getting even modest regular exercise can make a massive difference. Even just 1 hour a week split over 3-4 days can also dramatically change mood and energy levels.

[+] jkchu|8 years ago|reply
A bit off topic, but I would be curious to hear about the process in which your doctor(s) diagnosed your cancer. Mostly because I would not think to attribute fatigue as a common symptom of cancer.
[+] AnimalMuppet|8 years ago|reply
Thyroid could be more likely than cancer (less critical to catch immediately, of course).
[+] epalmer|8 years ago|reply
First see a medical doctor and rule out an physical / medical problems. Once you rule that out then see a therapist. Talk it out with a professional.

I don't know how old you are but getting foggy due to age should not happen till late in life if your health is good.

Stress can make you sick. Please get help.

[+] osteele|8 years ago|reply
"First see a medical doctor and rule out an physical / medical problems. Once you rule that out then see a therapist. Talk it out with a professional." – this.

Reasons: (1) If there's an organic cause, it may be symptomatic of something else; it may be amenable to medical treatment; and whether or not either of these are true, you'll know whose experiences and advice are more likely relevant to you. (2) At least part of your issue (the panic) sounds amenable to behavioral treatment, whether or not there's any other issues going on. (And if it's not – if there's an organic cause for that too – that's worth knowing.)

You might have to iterate through several doctors and several therapists to find one who's effective.

In parallel with this, you might want to explore whether you can work on a different schedule. I've rarely managed to do six hours of work within a 9am-5pm slot, but I can get 12-14 hours of work done a day if I get to choose the hours – align them with my energy level, take actual breaks when I flag, feel a sense of ownership and autonomy.

[+] ctdonath|8 years ago|reply
You don't indicate your current age. Having coded for 30+ years, I'll observe:

The complexity of computing has increased to a staggering degree. People discuss Moore's Law and variants in terms of transistor count, pixels, bytes, etc - but nobody comments on the sheer scale of library functions/classes/objects/etc to work with. Jumping from classic custom embedded systems to iOS opened orders of magnitude more capabilities & calls to work with - wonderful in the flexibility & power available, overwhelming in the options available & details expected. I come from an age where aspiring computer engineers were expected to understand systems "sand to Skyrim" (my current term); today the same brainpower could remain exclusively within one development platform. To wit: there's so much to know & do I'm not surprised at capable people burning out.

Pile on top of that your #1 comment about family. My load surely has increased, a mentally demanding addition on top of my increased job skills & responsibilities. Fortunately anxiety isn't a problem for me, but I certainly understand how it could break someone.

So what to do?

Simplify.

Make clear to family you have limits, that more extracurricular activities are beyond you and boundaries must be set. Remind them you're putting in 40-80 hours a week to provide & support, that your work/sleep/self hours are off limits for their schedules, and you can only do so much at once.

Manage development work. Place boundaries, don't say "yes" to everything (the more you do the more you'll be given to do).

Work environments can be changed. Change accordingly - even if that means switching employers.

Physical discomfort...others can better address ergonomics. I'm blessed with having typed so long it doesn't bother me.

Recognize mental changes. They're real. Organize things so they will remind & guide. Get sleep, eat well, exercise.

And simplify. Carve out spaces of simplicity. Deny options that don't facilitate your core activities. Better to take longer doing simple tasks than trying to speed thru via increased complexity.

[+] watwut|8 years ago|reply
If he is working 80 hours a week, it is not familly that is too demanding. I mean, they tolerate him not being there ever. (Through I don't think it is the case, he referred to job as 9-5. It might also be that his wife works as much as him, so the "I am putting food on table while you do nothing" argument won't work. ).

It is more likely that there is either someone sick, they have conflicts, have hard time to keep everything together or something of the sort.

[+] cosinetau|8 years ago|reply
> aspiring computer engineers were expected to understand systems "sand to Skyrim"

Could you elaborate on your definition of this term?

It's my perception that many different kinds of folks, other engineers; managers; employers; etc, in this community are expecting a very broad and thorough level of different languages, systems, patterns, etc at all levels of a person's development, and in spite of creating a learning environment this bias seems to persist.

[+] inanutshellus|8 years ago|reply
My reply distracts from your point, but he does indicate his current age. It says he's 32 ("almost 33")...
[+] kazinator|8 years ago|reply
When I was three-and-twenty

I heard a wise man say,

"Put in your forty hours,

Don't give your soul away.

Hack the Python and the Ruby,

But keep your fancy free."

But I was twenty three

No use to talk to me.

.

When I was three-and-twenty

I heard him say again,

"The nodes out of the DOM

never do yield without pain.

'Tis paid with frameworks plenty,

Till your face turns blue."

And I am four-and-twenty,

And oh, 'tis true, 'tis true.

[+] tboyd47|8 years ago|reply
This made me chuckle. Thank you!
[+] Bud|8 years ago|reply
Jesus! Nicely done.
[+] bufordtwain|8 years ago|reply
Sorry to hear about this. Some suggestions: take regular mental and physical breaks if possible at work. A 10 minute break to go for a quick walk can make a big difference. Do this at least once in the morning and afternoon (set a reminder). Get some exercise at lunchtime also if possible. This might help with the brain fog and stress. Consider transitioning out of fast-changing front-end web dev to something slower-paced. For example, can you contribute to the business logic or SQL/database? The technology there tends to be more stable. You should try to address the RSI, are there accommodations that your employer can help with? Consider changing employers to find a less stressful work environment and/or cut down on commute time if that's an issue. For the demanding family life, if you have a spouse tell them what you are dealing with and ask for some help if possible. Consider talking to a doctor or therapist to get their input also.
[+] ups101|8 years ago|reply
- you're likely better at KISS than most. - 90% of web development is repetitious. if you weren't stressed you can do it. - cut down work hours - stay happy. you're not sick. your family is not sick. - learn to play an instrument. seriously, this is a great way to enhance mental performance. - everyone feels the same to a degree.
[+] SFJulie|8 years ago|reply
Well, work conditions are worsening everywhere. Stress it our daily bread now. Stress == non alignment between responsibilities and authorities, like a dieselgate software engineer being ordered to make it, but s/he will end up the only one in court.

Short anwser, - realign your sense of responsibility with your authority. - ask for better work conditions, including time for your family life.

This is calling since it is a global problem for a global solution.

I know I will be downvoted for this (HN censors anything going in this direction), but as I cared: it is calling for a union of software developers.

We all genuinely suffer what you describe and I don't think we worsen. I do think these are our work conditions, and alone we are f*cked.

Your family matters You matter Yes work organization in IT is FUBAR and manager don't take responsibility but they have no incentive to respect you more than the shareholders.

Now, you can burn out like a slave or fight for your self.

[+] mblack1968|8 years ago|reply
>Well, work conditions are worsening everywhere. Stress it our daily bread now. Stress == non alignment between responsibilities and authorities, like a dieselgate software engineer being ordered to make it, but s/he will end up the only one in court.

I was looking for this kind of statement and thank goodness I found it. I was starting to think it was just me and my angry, cynical and jaded colleagues bitching more as we get older.

Reading your statement, I am starting to digest the simple fact that our profession has gone to the dogs. There are fewer and fewer employers that understand what we do is part craft, part art, part engineering. We DO need a union. We need SOMETHING.

Here's what I am finding: the misalignment of authority and responsibility lead to being forced to do shitty work in place of long-term solid development. This then sets us up for blame when the technical debt mounts. Then WE are the ones struggling to deal with the eventual REAL outcome that leads to a boat-load of stress.

edit: While typing this reply, my friend/colleague texted me to say he is experiencing nausea and anxiety DAILY now. I know of several developers on anti-anxiety meds that they began taking within the past two years due to work stress.

[+] 5ilv3r|8 years ago|reply
I've been dabbling in web development since dhtml was the new hotness and I can 100% say that it is completely unreasonable to expect a human to be able to do it at all today. You're no longer looking for technical solutions to a challenge (Which is fun!). Now you are just looking for the component that closest resembles your challenge so you can bolt it on and gain no understanding of the equipment/problem/standards/funstuffs other than their snowflake interface, and once you "master" that, you move on. It's not "hard" the same way it once was. Now it's just "business need" ADHD at "web scale". I can't do it anymore either.

Lower level programming is still relaxing. Ever played with an arduino? Could be fun if you have kids that would like it.

[+] gm-conspiracy|8 years ago|reply
Quick question: Did you have an experience, while coding, that you considered traumatic or negative? Laid-off? Not paid for contract work? Fight with a coworker?
[+] dehef|8 years ago|reply
I have the same sympton since I had 2 to 3 not paid contract. I'm feeling so shitty, I lost any hope. I feel my brain can't think little it was when I was young (i'm also 34). It's hard to lost all hope at this point of my life, I can't switch back
[+] SamBoogieNYC|8 years ago|reply
It sounds to me like you're burnt out. I think it might be helpful (if possible) to take a break completely for yourself, in a new environment - even if it's 3-7 days. No work, no family, just a place for you to relax and think. If coding isn't something that you feel ready to do anymore, perhaps you can move into a more management/biz oriented role?

As for the increasing difficulty of webdev - it's worth considering how necessary some tools are to the project. Oftentimes things can be simplified. It would take research, but maybe if you wrote a well thought-out and documented assessment of how you can simplify, your company might consider it? Good luck

[+] johngalt|8 years ago|reply
Mirror other comments in that you should probably get checked out by a medical professional. If it's at the point where you are asking HN, you should probably also be telling a Doctor.

Specific to your stated concerns:

1. Family Commitments: No comment here, but remember that it's OK to set boundaries even with your close family.

2. Complexity of web dev: Narrow your focus. Often people will begin their careers in a very general role, but have a difficult time continuing to hold onto their entire scope as the world expands. Complexity increases faster than human abilities increase. Let go of some areas in order to focus your competence in others.

3. Work Stress: Say 'no' more often. It doesn't have to sound like 'no', it could be something along the lines of 'we will revisit this at the next planning meeting'. Then at the meeting bring up all of those suggested items at one time. Then it's not a question of "should we do X" but instead "what should be stopped so that work on 'X' can begin".

4. RSI: This should be #1. Ergo setup should be what you do today. Getting your setup wrong is a certain path to poor performance.

5. Age: 32 isn't a factor. It's ridiculous that we even have to address this. Your brain doesn't disappear at 30.

Make sure you have the following squared away:

Sleep, Diet, Exercise, Sunlight

Whenever I'm foggy/lethargic one of these is usually missing.

[+] tboyd47|8 years ago|reply
You're technically right, but I guess I'm just getting tired of having to organize my entire life around being prepared for work Monday - Friday. I mean, am I a machine whose only concern is achieving optimal operating conditions, or am I a human being with a life outside of work?

I've resisted specializing for some time because I personally don't like working with technical people (excluding present company and our friends on HN of course!). I actually much prefer working with non-technical people, because I've found that they usually have a lot more common sense and are a lot less egotistical about their work. Maybe I just haven't been exposed to the "right crowd" but my experiences collaborating with other programmers have been very unpleasant across my career. So I always try to position myself where I can take a top level view of the product and not be pressured to move in a certain technical direction. Maybe it's time to give that strategy up, though, because it hasn't worked out very well for me.

[+] mendelsd|8 years ago|reply
Here's a salient study regarding RSI:

"Two hundred ninety-seven patients medically certified with a work-related upper extremity industrial illness underwent a systematic search for concurrent medical diseases. <snip>. One hundred nine separate atraumatic illnesses (mainly hypothyroidism, diabetes mellitus, and various arthropathies) capable of causing arm pain or CTS were diagnosed in a third of all patients." [1]

Email me if you like for more info about hypothyroidism (also see my previous comments, I may be becoming the resident thyroid crank). "Brain fog" and anxiety would be consistent symptoms. The condition affects several percent of the population. Getting a diagnosis can be tricky for certain manifestations of the condition (e.g. in the UK for certain blood test results doctors won't typically treat the condition unless patients request it).

Here's another study that may be relevant: "Our data show a significant association between shift work and autoimmune hypothyroidism" [2], i.e. the environmental stress placed on the body by shift work could perhaps trigger this disease. I mention this because you mentioned a demanding family life. If that involves a young baby that could approximate shift work.

[1] http://jamanetwork.com/journals/jamainternalmedicine/fullart...

[2] https://www.ncbi.nlm.nih.gov/pubmed/17291404

[+] oddsignals|8 years ago|reply
Before you do anything else, if you haven't already, I'd advice you to see your physician and explain your situation - at the very least have a basic set of blood tests done. Vitamin B or D deficiencies, for instance, can both adversely affect concentration.

If that's already covered, is taking an extended break a possibility? I was having similar difficulties, and I'm much more productive again after a 2 month absence.

Good luck and best wishes.

[+] rthomas6|8 years ago|reply
I am 29 and am starting to struggle with this sort of thing. I realized that part of the problem, for me, was how easy it was for me to get distracted. When I view a problem like a vast tree and try to keep track of all of it at once, I become overwhelmed. When I focus on one branch of a problem until it's done, then start on the next part, I may end up doing things less "elegantly" than if I grok the whole thing at once, but I get a hell of a lot more done due to no overhead from context switching.

Do one thing at a time, for a long time. Rapid context switching causes anxiety and decreases cognitive ability. Choose one part of one problem and work it for one hour.

Write down everything from every part of your life. Everything in your brain. It can be multiple places. The point is to not have to keep track of things in your head, so you can focus on what's in front of you. Check out GTD if you're so inclined. I use that methodology organized in Remember The Milk. It helps.

[+] jstewartmobile|8 years ago|reply
Are you sure this is an age problem and not a wisdom problem?

I'm getting close to 40 myself, and a 25-year look at the clusterfuck garbage dump we call our industry kind of makes me lose heart. Just had to install Visual Studio yesterday. It took hours! We have JavaScript frontends even on the embedded stuff. I had hoped and prayed JS would be dead by now. Still alive--but now we compile it with even more javascript!

Hell, even one of the bright spots of our industry--Clojure--runs on top of the 256MB-for-hello-world JVM (another hot mess).

Don't even get me started on the surveillance-state nightmare of Google/FB/Android/iOS/etc...

What if the problem isn't that your brain is slowing down? What if the problem is that your brain is wising up?

[+] tboyd47|8 years ago|reply
What is the solution then?
[+] agarden|8 years ago|reply
I have a question: do you feel like you can think okay until you sit down and look at a screen? Sometimes, for me, it feels like the physical properties of looking at a screen destroy my ability to think.
[+] tboyd47|8 years ago|reply
Yes. Being in front of a screen absolutely destroys my ability to think coherently, unless I am writing something (like this post).
[+] relaunched|8 years ago|reply
Sounds like you have a lot going on and each issue may be contributing to it. Keep trying to work on changing one at a time, and see if anything helps.

If you aren't mentally or physically prepared to put in a full day of work, you are starting out on the wrong foot. Here are some things I would think about:

- Is it time to make a change? A new job, new problem to solve, new team and new culture might be more aligned with your success.

- Is coaching available? A mentor / coach can help change your perspective, hold you accountable to execute on a plan or just provide a sounding board; all of which could be useful.

- Setting micro goals. Wins of any kind build a sense of accomplishment and momentum. Can you establish small goals, which beget small victories, which can be used to change your mentality, situation, productivity, etc.

I caution people that are approaching 'f^ck it' with work to hold on. If you aren't in a financial position to walk away, especially if you don't have a next opportunity lined up, an emotional rage quit feels good for a second and can set you up for a world of pain (additional pain). It's 10x harder to get a job when you don't have one, even if you are a developer.

Good luck and I hope things turn around.

[+] expertentipp|8 years ago|reply
Try somehow to figure out or negotiate a more comfortable situation in your current job (more remote working? non paid leave couple of weeks? educational leave? standing workspace? better chair?). Watch out for advises to change the job - ending up in professional void in this state, it might be very difficult to recover and go back into job market. One thing - time with the closest family (partner, children, parents) is never wasted.
[+] seabird|8 years ago|reply
There's not much you can do about a demanding family life (unless you want to prioritize work over it, which I wouldn't recommend) and getting older. Your options are limited for a stressful work environment, but you could try to negotiate some changes to improve that situation.

Learning on off hours seems to be where you have the most leeway. Depending on when you were 23, you may have started web development before its transformation into its current state of an unfathomably complex abomination. If that's the case, I would argue that you got your start in greener pastures, but those times have since passed. You will have to buckle down and learn as much of the "new way" as you can stomach each sitting. Compile a (what will likely be an absurdly long) list of every tool that you're currently using or will be using soon and try to build a working understanding of it. Your best hope is to learn everything you can in a big push and hope that your employer doesn't do the flavor-of-the-month bullshit.

[+] swombat|8 years ago|reply
This looks like terrible advice. It is defeatist (you can't do anything about most of your situation - false, as other comments have pointed out) and where it does offer some suggestion, it is to do stuff that the OP has already ruled out and which will obviously contribute to the OP getting even more stressed. And it feels like unrealistic advice too... you can't "learn everything", or anywhere near everything, of any deep topic like web development. Just thinking about trying to do that seems likely to be panic inducing to anyone who has any notion of how big a field that is.

I would recommend reading the many other helpful posts here for ideas of better advice to offer someone in this situation. This ain't it, imho.