How To Stay Motivated When Coding Gets Hard

Reading time: 4 minutes


The Dip Revisited

Learning to code can be hard… and painful.

In Seth Godin’s book, ‘The Dip’ Seth describes the ‘The Dip’ as the place between being a beginner and becoming a master when learning a new a skill. The Dip is the place where you realise how much you need to learn and this place is full of frustration, confusion and failure. ‘The Dip’ is the place where most people give up – and convince themselves they had no business learning that skill in the first place.


But ‘The Dip’ is not an enemy but a friend, weeding out the uncommitted and for those that get on the other side,  gives them a invaluable skillset that helps them rise to the top of their field and claim all the rewards that go with it.


I have definitely hit ‘The Dip’ in my Techdegree. Learning HTML & CSS were quite straight forward: I could make pretty little websites with relative ease. When I made my first webpage, I stood back like a proud father watching his son taking his first steps – I thought that I would be the Lionel Messi of FrontEnd Development in no time…

Then I started learning JavaScript.

Very quickly I realised like Dorothy in ‘The Wizard Of Oz’, I wasn’t in Kansas anymore. As a non-Computer-Science graduate, I found some of the terms and methods baffling: conditional statements, while loops, do while loops, functions, arguments and parameters were smacking me around like jabs from Anthony Joshua. Code challenges were no longer fun but exercises in frustration and irritation. The small voice in my head morphed into Donald Trump screaming things like “why did you think you could ever code?” And “what were you thinking? Give up NOW!”

But then I realised I was staring at my Dip. 

To enter my Promised Land, I had to cross the Valley of Death. And here I am. It’s not pleasant, but here are 3 strategies that I’m using to navigate this mother like Indiana Jones.

1) Stay Consistent 

When I first started to learn how to code, my routine was as follows

  • Watch the video
  • Do the Code Challenge 
  • Apply what I learnt to a personal project 
  • Get happy
  • Kiss my wife

 And so on. Since I’ve hit my Dip it’s become:

  • Watch the video
  • Get confused
  • Fail the Code Challenge 
  • Google the answer 
  • Get frustrated 
  • Watch Dragonball Super until I calm down

And loop. The relationship between coding and I went from ‘The Notebook’ with Ryan Gosling & Rachel McAdams to ‘The Break Up’ with Vince Vaughn and Jennifer Anniston – but not as funny. But when I started the Techdegree, I made a promise to code an hour a day, six days a week no matter what.

As my favourite book, ‘The Slight Edge’ says:

Showing up is essential. Showing up consistently is powerful.

If I start missing days, I break up the daily rhythm of learning that I have created over the year & this will make it easier to give up. Learning to code is a marathon & not a sprint & like a good long distance runner, maintaining a good, consistent pace is the key to finishing the race well.

2) Take Breaks

The other day, I was learning the difference between local and global function scopes and had to design in JavaScript, a counter based on what I had learnt. After what felts like hours working on this project, I was ready to put my red headband on & dragon punch the screen.

I had enough. In a huff and puff, I switched to a personal project to ease my frustration. Later, when I returned to the problem, I felt like I transformed into Neo and not I could see The Matrix – the answer was staring at me right in my face.


Taking breaks gives you coding super powers… Like Keanu Reeves.

This is what Dr Barbara Oakley in her book ‘A Mind For Numbers’ described as ‘The Einstellung Effect’. This is where you conscious mind becomes so focused on the problem that it narrows your thinking and your options. When stop thinking about the problem and focus on something else, your subconscious mind takes over, working on it in the background and because it’s  a lot more ‘diffuse’ can be more creative & often help you think of creative breakthroughs. 

I’m learning that rather than stressing over a really difficult problem and ranting about it like Kanye West at an awards ceremony, to switch to another easier and more enjoyable task or simply take a walk to clear my head. Breaks can lead to your breakthrough!

3) Don’t Double Down, Double Back

One of the greatest things that I have ever done is to keep a journal (No ‘Dear Diary’ jokes please – some of the greatest minds like Benjamin Franklin, Thomas Edison, Henry David Thoreau and Alice Walker kept diaries OK?) Writing about my daily professional & personal experiences has helped me improve my life greatly. One of the great advantages of journalling is that over time, is that it has allowed me to see certain patterns and habits that keep on cropping up in my life and this awareness allows me to see if I can change them.


You don’t have to be a dictator to have one…

One of the habits that I realised that I was doing was, learning exactly in the way that I was taught in school. I watched the videos and took notes about what I saw – that’s it. But over time I couldn’t… do… nada. It felt like all the info that I was learning was jumping out of my head like Jason Statham out of a burning building… I was going around in circles. But only became aware of this by reflecting and looking at my journals and through reading and experimenting, I came up with a completely new process that boosted my coding ability.

If something is not working, it’s very easy to ‘double down’, ‘hang tough’ and ‘push through the pain’. But as coding has shown me, sometimes we need to take a couple of steps back and look at how we are doing things and see if there is a way that to do them better. I try to code for 6 days a week and rest on the 7th. This gives me the time to reflect on what well, what didn’t go so well and I constantly try to look at how I can improve my systems and processes.

I hope that these suggestions will help you but I am still learning myself! Are there any strategies that help you when the going gets tough? Leave your comments below and/or tweet me @karlwebdev – as always I look forward to hearing from you!

As always, thank you for reading and I will see you next Thursday!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s