Wednesday 1 April 2009

The Whole Nine Yards

A common question I get from people new (and not so new) to our industry is "do I have to do all that extra stuff after work?"

In the past, I have said that it's ok to learn on the job only, if that is what you prefer. I've only now realised that I have been lying to them. I was telling them what they wanted to hear and then went and did the opposite.

The real answer to that question should be a big resounding YES!

Science and technology are areas that are constantly changing. To work anywhere near the middle to the top of the game then you have to be writing code at home; reading books and blogs; and contributing to the community. Yes, not just one of those but all three. If you can do more than that then you should.

What do these three major areas involve and why should you do it?

Writing code at home

Every programmer/software engineer/developer or whatever you call yourself, should be taking time outside of working hours to write some code. Start your own project and build something from beginning to end. Get a new idea or rebuild something you'd like to understand. It does not have to be a huge web application sitting on a complex stack and hosted in a cloud. It can be a script, a tool to help you improve something in your job or life or just an algorithm. It is easier to find an idea and build something rather than just start writing code. Like work, you need a purpose.

Learn a different language. Learn a different technology. Learn more about what you already know. Become a better coder by spending more time doing it. It's like painting and public speaking and lifting weights, the more time to spend doing it the better you will get at it. Especially if you already have the base.

Reading books and blogs

The best people I've ever worked with constantly read everything they can about what they work in and what they want to work in. This goes from technical books and blogs to books about learning and working with people. We all have dozens of feed subscriptions in our readers and are constantly trying to keep the number of unread articles down to a manageable level.

If you aren't sure where to start then ask what your friends read. Follow people on twitter who work in an area you are interested in and who share links. Find an author you like and read everything they write. Find a publisher of books and read stuff they publish.

Start reading now. You are already falling behind.

Contributing to the community

This is a controversial one and something I regularly fought with my recent room mate about. I feel it is your responsibility to learn and share and share and learn.

Contributing to the community can happen by going to a user group that shares your interests where you can speak and listen to your peers. Blogging what you have worked out during the day or something you couldn't find on your last google but solved yourself is another way. Setting up a site where you can share what you have written and show how it is used is also a very good idea although that is a bigger commitment that can be avoided for now with a simlple blog.

Tweeting is also important as a way to propogate information about what you or others have written. Share what you read through Twitter, your reader, your blog or other social networking sites.

Once you start it will become a habit.

No matter what people tell you, get out there and do more. Learning only at work is not good enough. It is not about running to keep up. It's about learning for life and keeping your skills fresh and valuable.


Unknown said...

Brilliant, brilliant post. You say it all so well. Just going to work isn't enough to thrive in this industry. You need to have commitment, a thirst for knowledge, and - most of all - passion for your subject. If you love what you do, doing that extra stuff isn't work, because you would be doing it even if you had a different day job.


Chris Johnston said...

And sleep is optional

Isis said...

I especially agree with the community part. I have to say though that my best moments in my career came when I had a healthy life outside work that was not closely tied to my job. This was especially when volunteering the community, helping disseminate knowledge that I inevitably learned at work but applied it a very different environment outside of work. This gave great perspective that I was then able to take back to work. I highly recommend it :)

Unknown said...

Chris: meh. Sleep is over-rated ;)


Nate said...

One of the demotivators for coding at home when you have a coding job: It is almost guaranteed there will be a clause in your contract stating that anything you develop, whether at work or in your own time, is the companies IP. Sure it's statistically improbable that your little app you write at home won't go on to make millions, but then how many people would buy lotto tickets if you were required to give away all your winnings to your employer.

Anonymous said...

Nicely put :)

I'd add one other thing... building yourself a profile in the broader IT community can be a boon in itself. I know a number of people who have given up the whole "wave slave" thing after running user groups, etc.

TarekAHF said...

Totally agree ! This is exactly what I am doing. The most important part is to diverse your skill set, meaning, it is not really so good to start with .NET, stay 20 years with .NET and end with .NET, for example. Learn something else.


Nadia said...

So where does that leave working mothers?

There's very little time to do anything that isn't child/family focussed once I get home; cook dinner, tidy up after dinner, laundry, tidy house. There's not much wind down time left after that.

Perhaps this is another reason why there are so few women in IT.

I'd love to know how working mums can fit in their family duties as well as the extra curricular programming!

Unknown said...

Nadia, it's interesting you should say that.

I'm not just a working Mum, but a single working Mum, and yes, I struggle to get the extra-curricular stuff done too sometimes. Like most working Mums, I spend quite a lot of time after the child is in bed catching up - I'll put a load of washing on, and sit down at the computer for a couple of hours with a glass of wine. I get a lot more done then when the house is quiet than any other time!

I don't have a magic bullet, and my house is far from being on the cover of Better Homes & Gardens, but the point is that if you love what you do, you can always find time to do it.

This means that I can very rarely be coaxed out on a school night. But - and this is the most important thing, to my mind - from 4pm when my daughter gets off the bus until 8pm when she goes to bed, I'm a Mum (the mornings are so rushed getting everyone out of the door, that I'm sure that time counts!). I also take an hour or two off once a week to help out in her classroom. All the rest of the time, I'm a technical writer, and a geek. It works for me, your mileage may vary.

I do, however, agree with you in that it does explain, at least to a certain extent, that it can make it hard to attract women into IT. There's two major factors in that though. One, that IT jobs are some of the best for flexibility (I have one of those, and it helps immensely). Two, a societal shift towards a fairer balance between the sexes for home duties. Of course, this doesn't work so well for single parents, but where there's two adults in the household, both of them need to be sharing equally in childcare and home duties, and both need to be given equal time to study, play, or otherwise do what they choose - regardless of gender.


Unknown said...

..and when you dont have time for the extra stuff then its time to go into project management?

Acknowledge Me

Apple started a user experience trend many iOSes ago when it accepted Settings changes and did not ask for confirmation. Once the chang...