Opportunistic Learning
I got inspired by the book "The 1 Thing" and changed a little bit my behavior about work and training I'd like to share here to discuss and improve.
The Background
A while ago one guy could setup a bunch of physical servers, install/configure/manage OS, configure network equipment and setup a firewall to connect to the internet.
For some specific software platforms the support of the vendor for installation and maintenance was enough.
IT today is big, very big. You can either be a generalist or an expert on a couple of topics.
But what if, like me, you work for a system integrator and you need to be both?
The focus
I work on multiple projects at the same time. Every project requires some skills I have, some skills I need to develop and some others I borrow or buy from colleagues or partners.
The hardest part for me is to plan in advance the skills I'll need in the next few months/years. How do I do that?
I don't.
Let me explain, it's not like I just wait for fate or luck decide for me. I just can't afford to learn everything or follow every last hot topic of the moment (cloud, containers, SDN, whatever). Choices have to be made, some very interesting topics must be delayed or ignored.
So I made up a custom personal strategy.
The Strategy
My strategy is base on these pillars:
1) very strong fundamentals
I'm a CCIE, my specialization is Routing&Switching. CCIE is not a fundamentals certification but I use it as a base to understand other technologies and it works most of the time. You can't skip learning the protocols on which many other technologies are built so all the time invested building strong fundamentals is well spent. I'd say a CCNP(R&S) with a good knowledge of TCP/IP is a good start.
2) a structured learning method
Over the years I learned to learn. I know where to look for good study material (Safari, Pluralsight, Cisco Live Library...) and where to find help from the experts (forums, Twitter, communities etc.).
The most important part is to learn how your body and brain works to optimize information acquisition and retention. For me it usually starts with some videos to grasp the general concepts followed by reading design and implementation manuals with all the details mixed with labs.
3) feel the mood
I use blogs, Twitter and podcast to understand the trends on networking world and be aware of changes and new technologies.
Just a few of the many:
When a new technology looks promising I read enough to understand the general concepts, ready to go deeper if needed.
4) save for later
I save on OneNote/Pocket/Keep/Evernote all the articles I think could be useful later. Tags help a lot. It doesn't make sense to bookmark what I can easily find with some Google-fu but some design considerations or configuration snippets are very useful to save time.
5) learn for yourself
I love networking and the technology world in general so for me learning is most of the time a mix of fun and work together. Sometimes I pick a technology and study it just for fun and quite often in the future it happens the chance to use it.
"Luck Is What Happens When Preparation Meets Opportunity", we can't foresee the opportunities but preparation is our responsibility.
The One Skill
Based on these assumptions what is the most important skill today? In my opinion, for my kind of work, the most important skill is:
To be able to be proficient in most technologies in a small amount of time.
Proficiency is used here according to the Dreyfus model of skill acquisition.
Not all projects require an Expert level of skills and if they do, for a small amount, it is usually easier/faster/cheaper to buy/hire/rent a few days of an expert consultant than to develop the skills internally.
The trick is to keep a Beginner/Advanced Beginner level of skills in most technologies involved in my projects (Linux, Microsoft Server, VMWare etc.), keep my expert skills fresh and be aware of the other technologies coming up just in case they'll be necessary, knowing I've a method to learn fast when opportunity arises.