Back then a term ‘Polyglot Programmer’ was created (by Neal Ford, I believe) and, step by step, using multiple technologies began to be cool. I was always a fan of learning new things, especially languages.
I began my programming career as a Java developer. Soon I discovered Groovy and truly loved it. I was using two os these in parallel (popular duet - Java for production and Groovy for testing and scripting). After a longer while I had the chance to join a project written in Scala, which I took. I was stunned by how much I got used to the former technologies, how hard it was to shift my mindset.
I promised myself to change my environment even more often. This was a promise of the New Years resolution - I forgot it nearly right away. Some of the following projects took me through Python and Node.js ecosystems.
And by the time I went back to Java (fancy Spring boot app), my concerns confirmed - I was a beginner once more. It was easier to recall things, than to learn them again, but for weeks I wasn’t fluent at all.
Couple of days ago my colleague asked me, whether she would get to appropriate level of knowledge changing technologies so faster (I asked her to join Node.js project right after Java project) and I wasn’t able to answer.
It’s great to be fluent in a technology. It’s also great to be good at several ecosystems and have a wide overview. My problem is - I cannot have both.
Where to go next? There’s a couple of options.
As Martin Mazur mentioned in his talk from DevDay - he is maintaining his knowledge in some languages (five - wow!), and only learns more for new ideas and more context.
Or maybe developers will be more into unifying things, and more and more technologies would share syntax, practices as much ass possible? Matt Asay sees a natural process in consolidate options.
What about you? Do you have a single strong skill, or are actively maintaining several? What’s your solution?