I often think the biggest challenge of working in IT is learning. Not only is the technology that we use relatively complex, it is evolving rapidly. The tools and languages you are using now are changing at an ever-increasing rate. You can no longer expect that what you are working on now will be current in 12 months’ time.
On the one hand, you could be working on something long term. Maybe working on a product, adding features over months and years. The fundamental technology stack of the solution is less likely to change so you’ll be using the same languages and tools each day. If you keep an eye on what is happening in the industry, you might see new things. Often, they are things you will not be able to use. Over time you might become more distant and start thinking you’ll never use the “cool” stuff.
How do you get to play with the good stuff if you have little opportunity to use it in your day job?
On the other hand, you might regularly move from job to job, whether that be as a freelancer or working for an IT consultancy. Here the challenge is not the lack of exposure to different things it is quite the opposite. There are so many things you are expected to know, how can you keep up to date, let alone be an expert in so many things?
How do you know enough about something to be credible in a new job?
How hard is it really? Let say you’re a .NET dev. You need to know your way around the .NET framework namespaces covered in this diagram.
There is quite a bit there but with a training course, some hands-on experience and a bit of background reading you can become quite effective.
Suppose now your application is running on Microsoft Azure and you are asked to evaluate if you are using the “right” Azure services and that your organisation is getting value for money.
Azure is this big, with each service have lots of hidden details and some being as big as the entire .NET framework.
And the questions keep coming
- Which is better Amazon AWS or Microsoft Azure?
- Can we use React or AngularJS for this new front end feature?
- We should be writing Microservices, can we use containers here?
How are you supposed to provide credible responses to these questions? You are being asked because you are considered a “technical” expert, but if for don’t have a point of view can you remain an expert?
At this point I’m not going to wave a magic wand or pull a silver bullet out of my pocket that makes this all easy. This problem is not going away. Instead it needs to be addressed head long.
The first stage is acceptance. You need to realise that it will take effort to stay current. If you are employed and not freelance, your employer will be expecting you to stay current too. As a freelancer you have to keep up to date to continue to pay the bills. Employer may offer some sort of training budget but frankly this is never enough, often hard to justify, in terms of time away from clients and projects, and in most cases, you are not given a free choice on how this time is spent.
Once you have the epiphany that this is in your hands and no-one will do it for you, the next step is to broaden your horizons. Seeing what other people are doing can open your eyes. Sometimes you can see what other projects are happening in your organisation but this is just the start. We are lucky that we have the Internet at our disposal where you can find out about anything. However, curated sources may be better to avoid information overload. Services like Flipboard and Medium offer to collate articles on certain subjects. I personally prefer podcasts. I can listen to them in dead time such as during commuting, they tend to cover a broad range of subjects and they often have further reading lists.
Getting this far, it may be dawning on you that this will involve time. That is true: you’ll will have to make an investment in time to make this happen. This is true in any profession. Time always needs to be invested for self-improvement. IT is no different.
How much time should you invest? Think about all the commitments you have, both professionally and personally. If you are already working long hours and have a large family, then you are not going to be able to invest many hours each week. Perhaps, you’ll only be able to use some of your commuting time and maybe one or two lunch breaks a week. Other people may find much bigger chunks of time. The important thing is to be realistic. There is no point over committing. You’ll find it too much of a challenge and be very likely to stop altogether. The aim is to make it routine and easy.
Once you have carved out some time you should think about what you are going to achieve and how you are going to do it. Are you going to use that time for reading articles or listening to podcasts? Do you want to do online courses such as those provided by Pluralsight? Maybe you’ll be setting aside time so you can work on side projects or even contribute into some open source projects. What you end up doing will be personal and will relate to your overall goals. Personally, I try to do a few of these. Sometimes, like on my commute, Podcasts are my only options but other times it easy to open of the laptop to either read something or open up an IDE.