A couple of weeks ago, John Resig wrote an article entitled Write Code Every Day. Resig is the creator of the jQuery library, among other open-source projects. In the post, Resig discusses a shift in the way that he works on open source projects. He went from writing code whenever he had time on nights and weekends, to contributing valuable code every day—though individual contributions were a little more concise. Resig set some ground rules for himself, such as keeping projects open source on GitHub, and writing code before midnight, but generally stuck to the “write code every day no matter what” rule. As a result, his code output has been an order of magnitude higher than before, his work-life balance has increased and he’s been able to keep up with projects.
In the past few weeks, I’ve attempted to adapt this philosophy to my own life. Unlike Resig, I’m simply a front-end and WordPress developer still learning the ropes. In fact, learning is my most fundamental goal at the moment. There are libraries I want to unpack (Backbone prime among them), extensions I want to develop for (WooCommerce, BuddyPress) and basic programming techniques I still need to wrap my head around (Object Oriented Programming anyone?). Like Resig, I was attempting to learn whenever I could, often in long sprints on nights and weekends.
More often than not, the result wasn’t the most productive. I would carve out a few hours on a Saturday, or an evening without much to do, and watch a few videos, or follow a few tutorials, attempting to pick up where I left off. Most of the time, the space between these exercises spanned about a week. That meant that when I returned to learning, I spent the first 30 minutes or so trying to recall where I was. And by the end of my sprints, I was bored and barely paying attention anymore, pretty much guaranteeing that I’d have to relearn that material next time. Not only that, but there was always something new to shift to, and it was hard for me to focus on any one thing.
So I decided to try out a different schedule as I dove into my code development. The rules are simple: learn something new, every day. Specifically, I wanted to be in a position where I was advancing forward in some area of development every day. And not to let Resig’s wise words fall completely to the waist side, this means writing meaningful code every day in the service of this instruction.
I’ve been going strong for a few weeks now, and I can already see the difference in my focus and apprehension of concepts I’ve been struggling with for a while. As any developer knows, there’s always something to learn, and staying on top of it ensures a certain level of success. I recommend it for any developer or WordPresser out there that feels like the learning curve is too far to climb, or wants to make progress towards acquiring new skills and becoming proficient in their craft.
So how can you get started? The first step is to find the perfect time of day for you to learn. Ideally, this is a chunk of time when you can be relatively undisturbed and commit to the learning process one hundred percent. For me, this is the morning’s while I’m waiting for my coffee to kick in and my head is still clear. Before I answer any emails, or dive into any work projects, I spend about an hour learning something. My office is pretty quiet in the mornings, so this works well for me. For you, the time may be different. But make sure that your mind’s still sharp and you can pay attention without having to take yourself out of it every five minutes.
During this time, I pop open a tutorial, work with some code in an exercise file, or continue working on some basic app or site I’m using as a learning tool. The important part is to ensure that you’re not passively watching some video or skimming a tutorial. You want to be actually writing code. This is key. Once you’ve hit a basic proficiency with programming languages, developing new skills will be all about learning new syntax and connecting the dots to your existing knowledge. The only way to do that is to get those fingers moving. If you keep plugging away at a practice project, that knowledge will be embedded in your brain for many years to come.
I’ve found that it’s good to have one extended learning day and one day off. On Fridays, I set aside a slightly larger chunk of time, about 2-3 hours, to really surround myself with something. In practice, this doesn’t happen every Friday, but I try to. On Sundays, I take the day off, spend time with my girlfriend, and forget about code for a day. Not everybody will need this, but for me it’s a real palette cleanser.
So far, the results have been extremely rewarding. I’ve learned more than ever, even though I feel like I have more time, not less. I no longer loose track of where I am at with a tool, framework, or language. Since I’m only picking something up from a day ago, I can dive right back into my code with almost no hesitation. And picking the same chunk of time every day, in the early mornings, has trained my brain to understand that this is learning time, time to forget about everything else.
This new schedule has also fixed my focus problem a bit. Before, I had a real problem with jumping from one learning exercise to the next, without fully following through. But now, if a new thread in my brain opens up, I can simply put my current learning assignment aside for 2-3 days to explore something new. I know that in due time, I’ll be back to the original project, but I can still allow myself to explore outside a little.
WordPress development is tricky, and there are many levels to climb. But chipping away at them little by little, day by day, is proving to be the best strategy. I’m hoping that as my skills progress, and my schedule solidifies, I’ll be able to move from learning every day to writing productive code every day. My practices will stay just about the same, but the code will shift from practice material to open source and side projects. Or at least, that’s the dream. For now, I’ll just keep learning something, every day.
Share some your learning routines in the comments below!
Jay Hoffmann is a WordPress developer hailing from NYC. In the strictest sense of the word, he is a WordPress enthusiast with an eye for front-end development and design. He has been working with WordPress since 2006 and currently works for a popular children’s media company. This year, Jay started Tidy Repo, a curated list of the best and most reliable plugins from around the web. You can also follow Jay on Twitter.