Developer's block - and how I'm trying to deal with it
For the past several years now I’ve been going through what I’m going to call here a “developer’s block”. It’s very much like a writer’s block, in that as time passes I’m finding it increasingly harder to create anything outside of my 9-5 work. This post is a way to document some of the back story, analyze how I got to this point, and an attempt to build a path forward.
Some back-story
I’ve been creating all sorts of software for the web since around grade 8. I won’t list particular projects - they don’t matter. What matters is that I’ve been actively writing code and putting it out there for people to use for about 12 years now. And then at some point I’ve stopped. It seems that, tracing back my progress - or rather, regress - I’ve slowed down work on personal projects and ideas sometime around finishing university and starting my first post-graduation job (I did three of internships and bunch of freelance dev work throughout school). I didn’t stop completely and suddenly, but rather everything just sort of tapered off. It became hard to start things, and even harder to finish them. I used to have an active blog (in Russian, never really got used to keeping one in English), which has been entirely abandoned. I can’t even really remember for sure the last thing that I’ve made and published, other than helping setup custom map hosting for my partner. That’s not to say that I haven’t coded anything at all outside of work in those years - there were a few little projects here and there - some to learn new tech, and some to fill a personal need - but even “internal use” tools just for myself have stopped coming off my keyboard, last one being a personal diet tracking tool.
Why is this a problem? There is a rich, beautiful life outside of programming!
Partly because it certainly feels like one. I have this constant, nagging feeling that I should be creating something. I’m used to creating stuff. Whenever I think back to what I’ve used a computer for, there was almost always a project, some users, some feedback, some writing. I love that stuff… at least I definitely used to. So now it just feels like a strange void in my life. I have generally filled it with what people might refer to as “life”, but the nagging feeling and lack of satisfaction is there.
Additionally, one of my ambitions is financial independence and making the world if only a little better, and for some reason I have this silly thought in my head that I should be able to accomplish by creating truly useful, thoughtful things. It seems that inability to maintain and push forward “side-projects” is quite detrimental to this goal.
Work
When you write code for a living and push out products into production, spending 8-10 hours daily at the office - well, it would be foolish to ignore that as a factor. However, I’m not convinced that work itself is the problem. Perhaps it was what stopped me from working on personal projects when I’ve spent almost a year trying to get a company off the ground. When you’re in that “founder” mindset and on a short timeline, it’s hard to justify working on something other than your product. But generally speaking, work has made me a better developer, exposed me to new tech, new ways of working, and gave me certain personal freedoms (in exchange for time). Over the years I got a little better at mentally compartmentalizing work - it’s hard, but certainly possible and seems to be absolutely crucial.
So work by itself isn’t necessarily the. problem. But it could be a trigger for certain issues, if not thought of properly. In no particular order:
Burnout & mental health
I’ve experienced what seemed like a burnout, but in retrospect was more of a depression. It seems like a good idea to dedicate another blog post to the topic in order to do it justice. I’ll just mention that after experiencing a complete breakdown of my professional life at the time, I’m acutely aware of dangers of spending most of your time working on the wrong things, for the wrong reasons, and not seeing and dealing with mental problems in an honest, sustainable way. Thankfully after a lot of retrospection I have more or less figured out what caused my problems at the time, and how not to put myself into similar situations.
However, as I was dealing with those issues, I’m afraid that I’ve created mental blocks around certain activities and patterns, and created negative associations with “work outside of work”. I’m realizing now that they are not entirely necessary, and everything could be just fine in moderation.
Time
Recently I’ve spent a brainstorming session trying to, yet again, figure out - what is it that I actually want to do? I’m closing in on my third decade, and I still haven’t really figured it out. And I don’t mean finding some entirely absorbing passion, or a grand life plan, or anything along those line. I’d be happy with a general, coherent direction and perhaps some goals.
It seems that I’m currently following something along these lines: “work, get paid, try to lead a good life, be healthy, build meaningful relationships, and explore my inner self and the world around me”. So, that’s something, if just a little vague.
During my brainstorming session I kept coming back to the fact that I need time, more time - to read, to think, to construct and develop ideas, to talk with people. The most precious resource I seem to miss is time. This way of thinking makes deciding what to work on even harder - if I’m telling myself that I dearly need more time, I can’t just squander it on learning some new JavaScript library and building a little project with it. I could be instead reading up on some philosophical ideas that have been bothering me lately, or perhaps trying to brainstorm my way out of yet another mental dead end. That is, of course, unless I can justify learning and building tech stuff and work it into the bigger picture (whatever that might be). It’s all about my perception lens, after all.
I did take a very concrete first step, however. I’ve talk to good people at my work, and we have agreed that I will be taking every other Friday off. So, every other weekend is a three day weekend, and sometimes they even turn into four day weekend, thanks to statutory holidays. This has been fairly recent so too early to report on long-term effects, but I feel it’s a great step in the right direction. This directly gives me more free time in continuous blocks, and has a lot of other positive effects that are harder to quantify - more rest, ability to focus on things for longer periods of time, etc.
Pattern of consumption
Reddit, HackerNews. HN, reddit. Rinse and repeat. The fact that content is often interesting and sometimes even thought-provoking only seems to postpone realization that its constant consumption is not actually any good for me. I feel that over the years I have shifted my behavior online from active participation in select few communities, to passive consumption of many communities. Additionally, most of the content leaves very little lasting impact, but takes up a large amount of time.
What this did, over time, is created a paradigm shift. It changed the baseline from “participate, contribute and get feedback” to “read, hopefully learn (but most likely just forget), rarely participate”. I feel that this must trickle down into other parts of my life, it has to - it just seems like a general behavioral pattern.
Cutting down the amount of time spent mindlessly consuming content is important. Increasing signal-vs-noise ratio, spending more time reading literature I’ve wanted to for a while - these steps should help with motivation and perhaps will even inspire. Interesting side-note about reading good literature - for me it became a very important language preservation tool. Living in a largely English-speaking environment is not doing my Russian any favors.
Tinkering
I used to tinker with my computer all the time. When I was a kid, I treated its physical body as a malleable LEGO set. I was lucky enough to have been raised by parents who provided me with enough parts to assemble, re-assemble, and sometimes modify them to make things fit. Later on I started running linux full time, and tinkered endlessly with it - oftentimes just to get some basics working. I’ve learned a lot, did a bunch of cool stuff with it. Then I switched to OSX. At first, it was a bit of a relief - finally, things “just worked”. But it feels that over the years I’ve been using it (around 6-7 years now, I’m onto my second personal macbook, and I’m using one at work as well), I’ve lost that passion for tinkering with my own computer. There wasn’t much need. Yes, things generally work. Perhaps it made me more productive? That’s debatable and very hard to quantify. But I keep asking myself - at what cost? What did I loose - or rather, not gain - in those years?
An obvious thing to do here is to switch away from OSX. About a year ago I’ve installed Arch on my MBAir, but never really followed through with it. I remember there was some annoyance, and some things just seemed needlessly complicated. In the end, I didn’t have patience for it - and went hiking instead. It often seems that spending time screwing around with linux distros isn’t the best use of my time - but then again, perhaps it’s part of a some longer-term plan that actually makes sense.
Either way, since starting writing this post I have been inspired enough to install the new Fedora 23 release, and I’ve now mostly have it configured! And it’s been really fun. Cool beans.
Building things “offline”
Recently I’ve signed up for a membership at a local maker place - MakerLabs. They give you access to a whole bunch of tools - a woodworking shop, laser cutters, CNC routers, 3D Printers, etc. My goal is to learn some new skills, perhaps meet people that I wouldn’t normally get to interact with, and build some tangible things. I’ve started by making a maple cutting board, which was simple and surprisingly very enjoyable. Being exposed a little to the local maker community also made me look at my own home with different eyes, and I’ve started working on 3D modeling some simple custom furniture ideas. More projects to come!
Leaving off on a positive note
Writing this down had a mild therapeutic effect. It’s much better to have a problem, understand it a little better, and have some ideas on how to move forward - instead of just wishing for some state from the past. As part of this process and in a way of creating a social contract, I will keep this blog updated with what I’m up to, projects I’m working on, and generally how it’s all going.
Onwards and upwards!
There is an email for that.