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.
Apple started a user experience trend many iOSes ago when it accepted Settings changes and did not ask for confirmation. Once the chang...
despair.com Recently, we (on the Interblag) have gone through another wave of controversial discussions about people who shouldn't be...
After posting a quick how-to about Ruby-LDAP , I received a couple of very helpful comments that pointed me towards ruby-net-ldap . This is ...
Recently I was asked to disable the submit event being triggered when the enter key is hit in a textbox input. This is for an ASP.NET MVC a...