A couple of things before the post begins proper:
- The cover image for this post was created by vecteezy.com
- This is a slightly edited version of the same post from my personal blog, over at blog.gaprogman.com
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:
Do you think Joe Flacco became the quarterback for the 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.
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!
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.
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
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.
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 almost two years 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.
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 episode of the Cynical Developer podcast.