Learning to Code? Need encouragement? Read this

Some scary looking php and javascript enough to get you in the mood?

(Edit: If you are more of a visual person I also did a video summarising some of these points below — Click here)

If you’re learning to code then you’ve probably hit a wall at some point; a giant ogre wall that no matter how many times you lash and thrash at it, you only make a tiny dent in the seemingly impenetrable beast that stands before you, not moving, but you hear a cackle in the wind.

Okay that was dramatic, but maybe more true to life than some people are willing to admit. The truth is learning to code is damn hard! It is the hardest thing I have ever done in my life and I’ve done lots of things.

Understanding why coding is so hard helps you on the journey; big time.

The core of the problem is self learning. Let’s just say it right away. In our education ‘systems’ we are provided with a relevant/non-relevant curriculum and are graded with a number or letter as to how well we can regurgitate the information. That’s fine and rant over. However, when you’re learning to code there is no curriculum, there is no beginning and there is no end. What you find are lots of super-enthusiastic people investing 10s and 100s of hours into learning to code and making very little progress — who wouldn’t be discouraged? Right?

Why is this the same route most programmers take (even the ones who stick to it to go onto successful careers)? Read on if this seems familiar to you and let me help you out.


If you haven’t spent many years self learning then you’re going to need some direction, a plan, and what to expect realistically in return for your investment of time.


The example I draw from is musicians. I am/used to be a musician and spent 10s of thousands of hours practicing on my own with no curriculum or plan. When I practice, I do what all musicians do; I find the parts of a piece I need to work on and focus on them exclusively. I break down the problems, focus on the areas where its a bit tricky and rebuild the whole thing back together. Sometimes this is a few seconds of a piece of music with days of investment, but it pays off in the long run.

Focus on your weaknesses

This isn’t the pattern of learning that most of us have utilised over our lifetimes. We expect to make marked progress in 6 weeks, when we study with a teacher for 1 hour a day and do some homework. However deliberate practice is a much more personal and passionate way to learn and here’s the thing; most people don’t spend a lot of time on their own, in their own heads, learning and fighting their bad habits of procrastination they’ve slowly formed over the years. So how can you expect to just land yourself in one of the most secluded learning experiences of your life with no expectation of what is, and is not, realistic progress in that field; never mind actually learn the damn code!? If this is you then let me try to help you!


Start with a strong vision for where you want to be in a few years time. Literally sit there in a cafe, grab a cuppa and dream of what you’re going to be like. Are you going to be making games, are you making apps or websites? Do you work for a company or are you travelling the world coding for yourself?

Actually conjure up the image in your mind as if you were walking up to your future self. What are they doing? Are they blasting out code like a coding beast making it look easy? You bet!

Having a strong sense of a vision will keep you focussed and will keep you going in the darkest moments and believe me, those moments will come.

Musicians spend time putting themselves mentally in front of their audience or on stage. A keynote speaker is no different. It’s all about creating a strong mental vision in your mind.


Find someone who can code. I learned to code in absolute seclusion like most people do who don’t study it at university or college. I spent most of that time with online tutorials on Udemy, Treehouse and Youtube.

What’s wrong with online tutorials you say? They’re too good! Why are they too good? Well, they feed you the information you need at a pace that suits you, right? Yeah, well what if your pace is that you can do 10 videos in a day? How much have you learned? How much can you use? Okay, so the next day you say ‘damn I’m going to do like 50 videos today’… Again, are you any closer to your goal? The truth is you can do 1,000 videos a day and not know if you’re any closer to actually doing anything; you can be on the verge of burnout insanity and it can all be for nothing. My point is: you have no measure for success.

Find someone who can feedback to you, someone you can model yourself off of. The pure relief when a programmer says to you: ‘Dude, you did 20 videos in ONE DAY and you coded that from memory? That is fantastic!’. If you have a bar, then you know when you are going above and beyond. If you learn in seclusion you’ll never reach the end, never know, until you burnout and possibly be tempted to give up.

Don’t!

The truth is programmers are just human beings who’ve had enough time to accumulate the knowledge they have and learn it deeply. They usually really want to encourage people getting into it because they of all people know how hard it was getting started!

So talk to a programmer, ask for advice and show them your damn code! The first time I worked with other programmers I had thrashed myself for months in advance to learn React.js and it was a two day job. I was so nervous I couldn’t concentrate. I had no way of comparing myself to them or anyone else (‘was I good, was I bad, was I mediocre…?’). Truth be told I wasn’t bad; but I was damn keen and I was the best I could be at that time! They loved that I was keen and asked me to come back! Don’t put it off and team up!

If you’re keen and enthusiastic, everyone will want you on their team.


Give yourself time. It takes serious time for programming fundamentals to settle in your head. If you had 8 hours a day for a year to learn to code, sure you would learn a lot, but most of us don’t have that time. But even a few hours a day can make a massive difference if you just give yourself some time to let it settle in. It might take a few weeks to understand something that seems simple such as the this keyword in Javascript.

Simple things are extremely difficult and if you just give yourself some time, you will take a massive weight off your own shoulders. Just think to yourself ‘I’ve got time to do this’.