Wednesday, 12 September 2012

Keeping Up-to-Date

I started this piece in February 2012 and finished it the following June. I’ve been really keen to publish it, but I wasn’t the only one so I had to wait! This piece was originally published in the ACCU’s CVu(24.4) magazine. I realise there are some controversial ideas here, but they are based on my own experience. I showed this piece to a few people along the way (you know who you are) and the feedback I had  helped me mould my ideas from black and white to shades of grey. I welcome constructive discussion. Most of all I hope you learn something and are inspired to learn more. Please let me know!

It is not uncommon for people to ask me how I keep my technical knowledge up-to-date, especially after I’ve just given a presentation on a subject that is new to them. This is odd because I don’t consider myself as someone who does keep up-to-date and many of my presentations are based on things I and other people have been doing for many years, so it’s hardly up-to-date.
I’ve said this many times, but in my experience there are generally two types of people (or developers if you prefer to narrow it further), those that enjoy their work (live-to-work) and those that are just there for the money (work-to-live). I am firmly in the live-to-work camp and very grateful that I am lucky enough to do a job I enjoy every day. Not only do I enjoy what I do at work, I do more of it at home and get together with likeminded people at local specialist interest groups and conferences as often as possible. I’m constantly striving to be the best at what I do and that generally requires a lot of reading (books, the internet, journals, etc). Of course being the best is usually an unachievable goal, but it is important to have something to strive for.

It is unfortunate that, in my experience, most people are in the work-to-live camp. Even developers.  Actually, maybe they have it right and have a much better work life balance than I do. However most of those who work-to-live don’t do anything in their own time to improve their skills, they don’t communicate with other people outside of their organisation and a lot of them don’t even look to people within their organisation to try and help themselves improve. They’ve always done it a certain way and they don’t see why they should change now, even if there is an industry out there that has moved on to bigger and better things. I hope it’s obvious that these are two extremes of the spectrum and there are plenty of people that fall somewhere in between.

It’s clear that to keep up-to-date (for some value of up-to-date) the first hurdle is wanting too. The chances are that if you want to you are closer to the live-to-work end of the spectrum and in my opinion that’s the best place to be. After that what do you actually do? Here are some of the things that I do in no particular order.

Read like there is no tomorrow and you have to know everything now. Read books, read journals, read blogs, read the things your friends and colleagues have written. You will learn an extreme amount from reading. Then do. If you read and then don’t do you’ll forget it.

Write software in your own time. The goal is to be up-to-date and to do that you need to use up-to-date technologies. Find the latest technologies that you are interested in and use them to write software. You’ll learn the most if you try and solve a real world problem. Aim to write a complete library, tool or application. By solving real world problems you will learn the most about how to use the technology in a useful way.

When I first joined the ACCU one of the existing members took me under his wing. One of the things he told me was that I needed a website. "What for?" I asked. He told me it would be for all the articles I was going to write. I didn’t think for a moment that I would have anything to write about. Of course I was wrong. Writing turned out to be enjoyable, rewarding and most important of all a learning activity.  When you write about something you examine it in detail to make sure you understand it correctly. This usually reveals that you don’t, so you look even closer until you do and of course learn much more in the process. Even if you’ve learnt something it would be a real shame for people not to read what you’ve written. So write for your website and other websites, write for your blog, write for journals, write for your colleagues. Do everything you can to get get people to read what you’ve written and make sure you get feedback so you can improve.

Talk to other software engineers. It’s very difficult to learn in a vacuum and arrogant to think that you don’t need to speak to other people doing similar things to you to learn. Even if you have other software engineers working with you join software related groups, like the ACCU, where you can talk to other software engineers. Discuss your ideas and problems and ask questions. You’ll learn a lot this way and the chances are someone in the group is working with the latest technology that’s interesting to you or knows someone else who is.

What better way to meet other software engineers than attending local Special Interest Groups (SIG) and conferences. You can go along and hear about how other people have solved problems with new technologies that interest you and then speak and learn with them afterwards. Writing and giving your own presentation is a great way to learn in the same way as writing articles. People will want to ask you questions so you need to know your subject inside out. People in your audience may know different things to you and answering their questions and interacting with them is another great way to learn.

To keep up-to-date find out what works for you and keep doing it. If something doesn’t work for you, stop doing it. Above all learn and have fun.

1 comment:

  1. I'm confused by people who don't got to local groups and conferences, you learn so much. Often from the guys sitting next to you in the crowd. Its often pretty inspiring and exposes you to new ideas. Most guys are really friendly and you can ask them those odd questions you have. After all its the new stuff that makes you want to do this sort of work.

    Never done a talk perhaps I should, my writing isn't going to win any awards anyway. :)