This article’s header image was created by vecteezy.

Before I get into the meat of this article, a little poem for Joe:

I wrote a post, so you would know,

Just precisely how to go,

Form journeyman, to high paid pro,

I can’t seem to rhyme prop’ly

I didn’t even need to use the rhyming dictionary, etiher


There’s an old joke:

How do you get to Carnegie Hall?

Practise!

If you want to get anywhere in your chosen profession, practising the skills required for that profession should be at the top of your list. I’m talking something like:

  • Practise
  • Eat
  • Practise
  • Sleep
  • Practise
  • Work
  • Practise
  • Profit

Do you think Joe Flacco became the quarterback for the Ravens

Go Ravens!

without any deliberate practise? All musicians practise constantly; Doctors and surgeons do the same; news readers/anchors practise when people aren’t around; actors (especially method actors) practise whenever they’re not on screen.

If it’s good enough for them, why isn’t it good enough for you?

Musicians call it rehearsal; students call it studying; whatever you call it, it’s really important. Especially if you’re a developer.

A True Story

I took part in Hack24 recently. Not only did we have a blast, but we won.

You can learn all about that at my live blog post about it

The event itself was a form of deliberate practise:

Hosted by Tech Nottingham, Hack24 is a 24 hour coding competition in Nottingham city centre.

Teams of up to four people compete for some awesome prizes by starting with innovative ideas and building them into new things.

Clever things, useful things, funny, arty or philanthropic, whatever you build, you’ve got just 24 hours to make it a prize winner!

source: https://www.hack24.co.uk/

You can’t help but use your skills when spending 24 hours surrounded by people who are involved in the tech space, talking to them and sharing ideas.

Why am I telling you this? Well, it’s because hackathons are the perfect time and place to get some deliberate practise done.


One person I spoke to said that she was using Hack24 as a perfect excuse to learn Java FX, as she didn’t have the time to learn it outside of the hackathon. Initially that sounds a bit silly, but it makes perfect sense when you think about it a little more.


At my day job, I have to follow standards and practises. Those standards and practises are there for a reason, and they’re brilliant.

But if you want to hone the craft of actually writing code, there’s no better way than to get stuck in and get your hands dirty.

it’s a mixed metaphor, I’m sure you’ll agree

And that’s what hackathons are great at. You have a time limit and a vague enough challenge, one which relies on cunning and creativity. And that’s about it.

Sure, it leads to “by the seat of your pants” coding and you might end up using fewer (if any) of the industry standard practises, but that;’s not what a hackathon is about anyway.

What’s frightfully important is the deliberate practise part.

Deliberate Practise

Practising a skill or activity over and over again, with the aim of getting better at it is what deliberate practise is all about.

Imagine a musician going over scales and modes, carefully and methodically. Each time that the musician plays through a set of scales, they will become a little more proficient at playing them. With enough practise, they will become so good at playing the set of scales that it will become automatic

they will gain automaticity in that skill

The same thing can be said about writing software. You keep doing it until you don’t have to think about parts of it.

As an example, I did a live stream while at Hack24 on using the Revealing Module Pattern in Javascript.

I’m not the greatest Javascript developer in the world, but I’m pretty good at setting up an object with the revealing module pattern because I’m used it quite a lot. Simply using it quite a lot has been a form of deliberate practise, which has lead to me being quite quick at setting something up using it.

in the stream, I was using Knockout.js and the revealing module pattern to quickly throw together an interactive page

If I hadn’t have had as much practise with Knockout.js and the revealing module pattern, then I wouldn’t have been able to take a wonderfully designed static html page and make it fully interactive as quickly as I had done.

But How?

As a developer, it’s super easy to get some deliberate practise in. Want to know how: go create something.

I’ve been writing software in .NET Core and blog posts all about that software for over a year now

you can read all about that, here

which has been a double whammy of learning new stuff and deliberately practising all of the stuff that I already know.

I don’t know what you do, dear reader, but I would start by taking a step back and looking at whatever it is that you want to practise. Then see whether you can recreate it at home.

Let’s say that you’re a pro sports person

I don’t know why you’d be reading this blog, if you were though

Deliberate practise is when you hit the track, or shoot some hoops, or other sporting metaphors.

Another example would be e-sports people. They are constantly playing and replaying their chosen video games, looking for ways to be better and better at playing them. Searching for that hidden strategy or the situation to use that one killer move in.

Getting your butt out there and doing it over and over again: that’s how winning is done.

In Closing

A great philosopher once said:

Dude, sucking at something is the first step to being sorta good at something

And he was completely right. By deliberately practising something, you’ll get better and better at it. Pretty soon, you’ll be the best at doing whatever it is that you want be great at.

It isn’t easy, but if you’re willing to go through the blood, sweat and tears, then you’ll be better at the other side.

maybe I’ll see you at the next hackathon I’m at, too.

If you want to know more about finding a way to get better at being a developer through deliberate practise, I’d recommend the Side Hustles of the Cynical Developer podcast.

Related Post

Jamie is a .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for this blog, or writing for a blog about Retro Gaming (which he runs with his brother)


GaProgMan

Jamie is a .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for this blog, or writing for a blog about Retro Gaming (which he runs with his brother)