In my last post I concluded with the question whether having so many techs (programming languages, cloud services, data storages, frameworks, command line tools, infrastructure, distributed systems etc.) permeating developers space is scary. I believe that given a certain level of experience anything can be learned in 3 days, to reasonable extent.
In our not-that-theoretical case, we have a mid-to-senior level engineer with years of experience. There’s a need for flexibility when it comes to handling client tech stacks from company’s engineering staff, including our guy. If the reasons for the need to shift the focus are clearly articulated, the willingness to learn and help the business is an all win scenario. Spending personal time is also a real investment. So why not do it? The question becomes more How? than Why?
Three laser focused days. Using learning processes and tools that work best for our engineer. This is often enough for the guy to enter the game and influence the project. Our engineer becomes an expert for the rest of the team that know nothing about the stuff.
The best part is that it gets easier. Those learning processes improve, patterns emerge, tools are reused. It usually boils down to just finding a difference in what our guy already knows.
Of course, we can’t generalize everything. The scope is totally different if you learn a new command line tool to manage your cloud deployment versus you want to start doing deep learning or blockchain platform from scratch. Still, investing in these 3 days would bring the credit in the eyes of the beholder and open the door to work on the project and grow further.
The best way to learn is to work on a real world task and have a buddy covering your back and providing support. With the goal in mind, it’s easier to go through the journey. Often it involves use-cases that are not covered by the default tutorials. Frustrating troubleshooting may be, on the other hand, very effective way to understand details and inner workings.
I perceive a few reasons why our guy wouldn’t be willing to learn and grow not considering futility attitude.
Targeting single tech on very deep level, one can become true master. Learning something different may be recognised as disruptive, polluting brain capacity and loss of time. I find this opposite to the truth. Alternatives, new approaches, shifts in paradigms can actually help to understand the one chosen tech from different viewpoints. In other words, stretching horizontal does not degrade verticality.
Overwhelming amount of new things. This is true, for example, when considering different programming platforms. Mastering programming language syntax is one of the easier aspects. There are build tools, libraries, frameworks, package managers, computing concepts, runtime configurations etc. Sure that can’t be handled in 3 days. Nevertheless, it should give one enough speed to jump on the train and then learn-as-you-go.
In the end, once frightening diversity can become just another happy day in an engineer’s life, when learning is embraced by people on the deck and is also a strong pillar of the organisation’s culture.
Just give it 3 days…