I really identify with what a lot of people are saying here and want to share some of my thoughts and advice.
I feel stupid and uncreative when I’m depressed. I don’t have a lot of energy to work on a whole bunch of things either, which compounds the stupid and depressed feelings. I learned about growth mindset (essay on it http://www.aaronsw.com/weblog/dweck )
Finding the time and energy to be able to write code for fun while you are trying to survive is hard. For me it feeds into a cycle of feeling defeated. I would feel less defeated if I could see accomplishments, but because I do not have the energy to spend time on things, I accomplish less. I also have unreleastic expectations about what counds as an accomplisment.
Some ways of coping for this – I’ve tried to pay attention to the amount of energy I have so that I can see how much I can accomplish before I wear out. I try to get a feel for how many spoons things take.
For programming after work – if you are low on spoons, don’t try and overwhelm yourself by thinking you have to create some amazing thing de novo.
Find some project where the maintainers are organized enough to handle contributors well, and maybe you’ll have enough spoons to check out their code and set up a development environment. Their documentation on how to do this will mostly likely be out of date or wrong. That’s something you can fix first off.
I like openhatch – I helped with one of their Open Source Comes to Campus events. They’ve got advice for maintainers on how to bring in people of all levels in a productive way. Take a look at their guidelines because you can consider those a sort of job interview check list for when you are looking at projects to contribute to. If the projects aren’t well organized, trying to contribute can be hard – and this means it is extra hard for someone who is depressed. It could turn in to another failure to internalize when in fact, a failure to make a patch or get a patch accepted or understand docs – that is not all down to us, that can be a problem with the project rather than you.
oh, and another thing I wanted to mention – sometimes when I am depressed nothing seems amazingly interesting. everything is a bit flat. so picking something to contribute to might be stressful because nothing seems right. I have no excellent advice for that except maybe to realize that nothing is going to seem right becasue you brain is not completely right, so pick something right enough. satisfice rather than maximize.
- nothing feels right, try not to obsess about finding something that feels right to work on
- don’t assume you are going to be able to do big things, pick some things to do and see how much you can do… figure out your velocity if you want it in programmery terms. you will feel better when you can give yourself things to do and see them done
- find projects that are organized enough to take on new contributors. if they aren’t, you won’t do as good a job at contributing as you hope, and this won’t be your fault but you will internalize it due to having a depressed mindset
edit: oh crap. I got so much in to writing all this crap that I forgot to finish my the thought for why I brought in growth mindset – the thing with starting on small tasks and seeing them finished is that you will be able to see growth – this will maybe confirm this type of mindset. I am trying to retrain myself to see things from that point of view. now when I have the “I’m stupid because …” I think about how to reframe it in terms of a growth mindset. “I’m not good at this … yet…”