Developer training, where to go?

Quite often people come to me and ask me: how do you manage to keep up with what's going on in your field? Whenever this happens my first reaction is always (in my head) "so, they do believe I keep up with my field?" Of course, I do keep up. It's not something I set out to do but it comes naturally. Ever since I started programming back in the early 80's of the previous century I have been reading a lot about my trade, talking with other people and generally be interested in what was going on in the art of programming.

Now, there is one prerequisite if you want to do this: love you work. Really, really adore it to bits. Love it so much that when you win the big lottery tomorrow, you'll find yourself behind a keyboard and a compiler the day after that (Ok, you might want to take a vacation and switch jobs just to get away from that annoying colleague but you get the idea). If you don't then it's pretty easy to stay up.

  1. Convince your boss you need training.
  2. Go to some training company, sit back for a couple of days and come back with a nice certificate, feeling all relaxed.

Will you actually have learned something? No. But you had a good time and your boss is happy that you've been pro-active. Now, stop reading and do something else.

For all the others out there, you will know this is not enough. Of course being away from the office and sit in a classroom all week, diving deep into a subject is a great way to learn. You are surrounded with your peers, people you can ask questions or that ask you those questions (the best way to learn is to teach). However, if you are a bit like me, this isn't going to satisfy you. There are so many things you want to know about, including that rare new framework you've always wanted to know about and that nifty new language feature you don't quite understand. Chances are there is no course for this kind of thing. And even if there was, there is no way your boss is allowing you to go on training 50 weeks a year. And that's what you'd need if you wanted to know everything you're interested in.

So what are your options? To be honest, I don't really know. My mind works a bit strange. If I am interested in something I pick it up very, very easily. I am just like a sponge when it comes to stuff I care about. If I don't really care about it, my mind shuts down and refuses to learn. That's why I am fluent in English and can't speak a word of German: during high school I had a teacher I quite liked who taught English and a teacher I really disliked that taught German. No matter how hard I tried and how hard I decided to really do my best and learn German, I just couldn't do it. English? I never really paid attention and never did any homework and graduated with straight A's for that subject.

So when it comes to technology I found I do the same thing. When I attend conferences I almost never go to sessions. If the session is about something I care about chances are I already know it or I will pick it up by talking to people who went to that session. If it's not something I am interested in there's no point for me to go there since I won't pick it up anyway.

Therefor I am unable to tell you how to learn stuff you don't care about. I wish I knew how to do that, I still want to learn German (but not really…) however I did find out what I do to learn things. And I gladly share that with you.

  1. Read about the technology. Just block a couple of hours in your agenda, sit behind a computer, start up your favorite search engine and look for information. Don't read it all and don't study it all, chances are articles will contradict each other. But do get a general feeling of what it's all about.
  2. Do it. Start up your development environment, start a new project and use that technology. It helps if you have a goal, an actual program you want to write. If you have that chances of finishing it and actually using that new technique are much, much higher. Be prepared to spend more time on it than you anticipated: you're not proficient enough in that new stuff you're learning, so it will take considerably more time than you might expect.
  3. Go back to the search engine and compare your experiences with the ones of others. See if what you did holds up.
  4. Talk to people who have worked with the technology. If possible at this stage: avoid the experts. They are so far ahead of you everything you've done will feel stupid. Don't fall into that trap: the experts have done the same trajectory and now pretend to have forgotten all about it.
  5. Write an article, blog post, or do a presentation. Even if you don't publish, this helps in organizing your thoughts around the subject. And if you do publish, you'll probably be seen as the expert on that field, which leads to more chances to work with the new technology and therefor make you even better at it.
  6. Take an online course. There are some very good online training companies that teach you the stuff you want to know in your own time. If you are a bit like me you don't mind doing this in your own free time. It's fun! I especially recommend Pluralsight. I do not have any ties to them but they offer a huge amount of training on a lot of different subjects (although it seems to center a bit around Microsoft technology which is fine by me). Really, really good stuff is to be found there.
  7. Work with it. Make the technology yours.
  8. Start looking for the next challenge.

And of course the last part is the most important: you're never done with learning. But isn't that what makes this job so great?

Print | posted @ Wednesday, February 20, 2013 2:56 AM

Comments on this entry:

No comments posted yet.

Post A Comment