Technology changes so frequently, so how to you know what to learn? As soon as something new comes out, you want to get hands-on with it. Then something newer comes out and you want to get hands-on with it too. Well, what happens? You begin something that you’re interested in, leave it partially completed to learn something else, which also never gets completed. So, are you really learning anything?
This was happening to me quite frequently. There are so many things I read in blogs or see on Twitter and think “Man, I need to take a look at that! This is awesome!” So I do, and leave whatever I’m doing behind. Some of the time I come back to those projects that were left behind, but it’s usually a month or so later. By that time, you forget where you were or what you were doing, so you quit. You can never regain that mojo that you once had when you began.
How do I break this vicious circle?
1. Create a list of topics that interest you.
As you find something that interests you, write it down. Make sure you jot down any pertinent information so that you can come back to it later. I find that Evernote, or any other note taking software, is good for this. If you come across a tweet or a blog post and you think “Hmm…this looks cool”, jot it down in Evernote.
2. Create Goals
Rank all of the items on your list and create goals from them. They can’t just be I want to learn Ruby, or I want to create this website. They should be S.M.A.R.T (or S.T.U.P.I.D.) goals or you’ll never get to where you want to be.
3. Start Learning
Congrats! You’ve just created a learning plan! Begin small, start crossing off your objectives and you’re well on your way.
How do I stay on track and maintain focus?
You should never stop learning. There are things that will get added to your topics list every day. So how do you stop your technical ADD from kicking in? You find this super cool library or you’re introduced to a new language and you think “Man, I really need to look at this!” One rule that I use, is that I set a timer, or just set aside a couple of hours to dive into a topic. If I think that I can get what I need out of it in that amount of time, then I go ahead and jump into it. When the timer goes off, or my specified time is up, and I haven’t satisfied my mind, then I jot it down on the topics list. This is something that I’m going to have to spend more time on. The key here is to only do this once a day, and no more than a couple of times a week. If you don’t, then you get back in the same boat as you were before.
Travelling down your learning path
As you begin down your learning path, some of the things that you put on your topic sheet may no longer interest you, and that’s ok. That’s good. That means that you might have found something that you’re passionate about and want to dive deeper into. You’ll end up crossing off the topics that don’t interest you and replacing them with new ones. Don’t be afraid to do it.
Also, as you complete a goal, don’t be afraid to reorder your list of goals. You may find that your priorities have changed based on what you’ve just finished.
How to add a filter for all of the noise
Another good way to try to eliminate technical ADD is to add a filter. At CodeMash this past January, Joe O’Brien gave a presentation entitled “Refactoring the Programmer”. In this presentation, he describes the Rule of 4 and the Rule of 8. Anytime he hears a certain technology mentioned four times from any of his mentors, he goes and researches it. If he hears it mentioned eight times, he researches it more in-depth and does some hands on work with it. This technique may help you cut down on much of the noise that you may encounter.
By this time you may have found some things that really interest you. If you haven’t started a blog, do so now. All of these tidbits that you think are trivial are useful to someone. Don’t worry if you think that they’ve been beaten like a dead horse; this will help cement the things that you have just learned. Plus, no one can read every single blog out there. This will help you increase your visibility.
While you’re at it, take some of your blog posts and turn them into presentations that you can give to your teammates or your peers. There’s no better way to learn something than to have to talk about it to a bunch of developers at a user group, or a conference. No one is an expert in everything. People will come to listen to you to learn. They’re not there to criticize (well, most aren’t).
Keep in mind, this is something that has worked for me. Ultimately, you have to find what works for you. If you’re doing something different, I’d like to hear from you.
Now I have to go and cross this off my goal sheet! Thanks to my mentors that have helped me make this a reality.
Develop for the better!