At 8th Light, the value of practice is undisputed. Effort devoted to honing your craft pays dividends time and time again.
In my last blog post, I talked about how practice paid off for me in the past. In this post, I cover how the craftsmen at 8th Light approach practice, what we practice, and ways to find time to practice.
How the 8th Light craftsmen practice varies, but at the core, the approach is the same:
Many pages have been written on deliberate practice, and I won’t dwell on them here. It is enough to say that when you practice, you should be focused on the task at hand and to remember why you are practicing.
Be deliberate, a lot
If you like logging your time, you can start tracking towards your 10,000 hours of practice right away. Otherwise, consider it important to practice every day if you can.
If you think you’ve plateaued, maybe it’s time to try something different. If you don’t do much functional programming because your job doesn’t use it, try it to see if it’s better. Never given a talk at a conference? Volunteer for your next meetup group and give it a try.
What to Practice
Getting started in the habit of practice can be difficult, and often it can be hard finding something interesting enough to keep your attention. Some specific areas of focus at 8th Light:
I like katas because once you’ve solved the logic problem, it allows you to focus on the techniques you use while you code. With a memorized solution, you free your mind to focus on your TDD skills, like writing the simplest code to make a test pass.
Read open source projects
The ability to read and understand unfamiliar code quickly is a powerful skill. Cultivate it by pulling a favorite open source tool and reading through the code.
While you’re at it...
Contribute to open source projects
Take that favorite open source tool you just pulled, fork it, and fix a bug or two. If you’re feeling ambitious, open source your own project that you’ve been kicking around for a while.
The best way to get better at public speaking is to speak in public. At 8th Light, this skill is honed on Fridays during 8th Light University, where a craftsman will teach something he/she has learned to the rest of the company. Volunteer to give a talk at a local meetup, submit a talk to a conference, or just corner your co-workers over lunch and see what they think.
If you’re still looking for something to practice...
You may find something during your daily work that interests you - a design pattern you haven’t used in a while, or a language feature you haven’t seen used well before. Write it down and come back to it later - implement a pattern or use the feature a few different ways until you fully understand it.
A good example of this is in a talk on practice by Corey Haines at 8th Light’s Libertyville office in 2009. Corey discusses how he took a Ruby method he didn’t know much about at the time - gsub - and practiced it until he knew it back and forth.
Carving out Time for Practice
Sometimes it’s not easy to find time for practice. There are a few ways to set aside time for practice that are worth a try:
Carve out a specific section of your day, like when you’re on the train, and devote it to practice. On Sunday mornings, I find myself at the coffee shop with my laptop before the day really begins, investigating something I came across the week before.
A group of 8th Light craftsmen and apprentices recently competed in the Overnight Website Challenge, and others have competed in past Node Knockouts and Rails Rumbles. The short time period lets you fully devote yourself to the task at hand, and the competition keeps you focused.
Conference Driven Development
A healthy dose of panic at the thought of making a fool of yourself in public is often excellent motivation for completing a side project.
Although there are many ways and motivations for practice covered above, there are numerous other approaches out there to try as well. Find what works for you, and get practicing.