Slow-motion multitasking and Coding
August 18, 2021
Photo by Dan Freeman on Unsplash
Slow-motion multitasking and Coding
If you find yourself flitting between projects and topics, worried that your not making any forward progress and that you're incapable of focussing, worry not. It may be that you're slow-motion multi-tasking!
When developing my coding skills, one of my greatest obstacles has been an inability to focus. I fear that I’m not putting into practice the skills I’m learning, not producing tangible, quality evidence that I understand the various technologies I’m trying to wrap my head around.
I’ve often found myself hitting a brick wall with a project, staring at the code (or at a variety of blog posts and Slack questions), willing the solution to a problem to magically appear in my mind. Whilst I know that a major skill for a competent developer is the ability to work through problems such as these - hunting down the relevant information, read the docs, experimenting with possible solutions – I often find these moments to be demotivating.
A moment ago, things were going smoothly! I was producing code and it was working! Now I’ve worked for three hours straight and there’s nothing to show for it!
Over the last few months, I’ve gradually come to realise a solution to this problem and then I watched Tim Harford’s TED Talk, A powerful way to unleash your natural creativity.
Slow-motion multi-tasking
Multi-tasking, the ability to take on multiple tasks at once without any of those tasks being affected detrimentally, is sometimes viewed as part of a less-than-effective approach to learning to code and coding. Focus on one task and get that task done. Focus on one project and get that project done. Yet for me, this is not always the best possible approach. As Harford states in his talk, ‘…for an important kind of activity, doing two things at once – or even three or four – is exactly what we should be aiming for.’
We are used to considering multi-tasking the default state of people acting out of desperation because they are in a hurry and have too much to do. He suggests that it is not uncommon amongst creative people to have multiple projects on the go at the same time that ‘you move between as the mood takes you or the situation demands.’
This is what Harford calls ‘slow-motion multitasking’. Harford cites examples such as Darwin and Einstein as people who were successful in part because they were able to approach multiple tasks at once, moving between those tasks as and when the mood took them or their circumstances demanded it. Now obviously I don’t view what I’m attempting to achieve as analogous with the work of Einstein, yet I’m confident that a similar approach enables me to work in a more positive and productive way.
Working on multiple projects
This is the pattern that I have frequently found myself settling into, the pattern which seems to keep my spirits up and my mind engaged most effectively with the challenges learning to code presents.
Working on numerous projects enables me to pivot to another task whenever I hit a brick wall or I’m just not feeling it. In fact, this happened just morning. I opened up my Movie Quotes Quiz project, intent on tackling a bug I had experienced yesterday. I worked on it for a while, shifting code round, trying different ways of structuring it so that my variable would behave in the way I wanted it.
Annoyingly, I wasn’t successful. But I spent an hour working on it and I started to feel like I was hitting a brick wall. Now some people may feel that I should have plugged away at it, kept on persisting until I found a solution. They may be right. But I find that if I do that, and I’ve worked for a whole morning with nothing to show for it, I get demotivated and my productivity plummets.
Switch tasks to find solutions
So I switched over to starting to work on updating the skills page on my portfolio. I didn’t spend long on that, but enough to justify a commit and to feel like I had produced something tangible. Now I’ve switched over to finishing this blog post.
It seems that it’s common knowledge that taking a break can really help you find a solution to a problem. As Harford points out, it is often the case that ‘the wrong answer is stuck in your head…switch topics, switch contexts [and] you’ll forget the wrong answer and that gives the right answer space to pop into the front of your mind.’
What I was trying on my quiz wasn’t working. There may well be a solution that I couldn’t see at the time so focused was I on making my chosen solution work. Hopefully next time I sit down to look at it, a different angle will occur to me. (Side note from future me – I quickly solved the problem next time I worked on my quiz.)
Keeping it interesting
Ultimately, having multiple projects on the go allows me to maintain my interest and enthusiasm for what I’m doing. If I’m fed up of one thing, I’ll move on to another and come back to the first later or another day.
Honestly, I’m not yet practicing what I preach. When I do approach my web development work in this way, I feel better about it and more positive in general. But I still find myself getting stuck in a project, staring at it for hours, getting despondent and then failing to achieve anything else for the rest of the day. So I know I need to get better at this.
However, clearly just feeling productive isn’t helping anyone, but I’ve come to realise that I need to feel productive in order to be productive. Without feeling productive, everything just sort of grinds to a halt. I’m also conscious that I need to make sure I do get things finished and don’t use this approach to just dance around working on many tasks whilst completing none (certainly something I’m often guilty of).
Harford states that ‘if you have another exciting, challenging project to work on, being stuck on one is just an opportunity to work on something else!’ And that’s my main take-home here – rather than getting bogged down in one thing, it makes more sense to pivot to something else equally exciting and engaging.