This is something that I have been battling with for sometime. Over the few years I have been associated with active software development, and I’ve had the opportunity to help build multiple products cutting across different technologies.
Playing the role of a Tech Consultant the past two years, one ends up switching tech between clients. But of course that depends on the problem you are trying to solve, the client, their existing tech and so on. Rather than just picking something you are good at and cramming it in to fit the mould, You end up being pragmatic and choose what fits best for the problem in hand.
So if someone walks up to me asks me whether I am a specialist in any particular technology I would say “Hell No!”. But just as Liam Neeson aka Zeus says
If you’re looking only for a Java Developer, I can tell you I don’t have what you are looking… but what I do have are a very particular set of skills. Skills I have acquired over my career. Skills that make me a Swiss Army Knife for people like you.
But what I noticed is most of the time since you are learning a new technology and given the time constraints. You end up writing code in a style that probably doesn’t adopt the best practices native to that technology, questioning your depth of understanding in that technology.
You might even fail to leverage all the goodies that come bundled that Programming Language or Framework.
Hence making me wonder if that sometimes that Swiss Army Knife isn’t as sharp as I’d like it to be.
I remember this conversation I had with a Senior Developer back when I was in University, which made a lot of sense.
“Your career should be like a ‘T’ where the horizontal ‘— ’ represents your spread of technology and the vertical ‘|’ represents your knowledge depth.”
The formative years into development are the most crucial, in terms of experimenting across domains and getting to work on different tech. Right now I am still trying to widen the spread of my ‘ — ’ , until I identify a domain I would like to dive deeper into.
“Jack of all trades, Master of at least one.”
Being a Consultant, It makes more sense to be flexible to go across tech. Product companies provide an ideal ecosystem to dive deep into a particular domain because you usually are fixed on a business domain and best technology fit(at that point of time) for that.
So I guess like my colleague quoted the other day
“A polyglot can beat down a Nail using x (x > 1) Hammers”
But is one truly better than the other? To be honest there are still times when I just sit back and wonder how different things would be if I just picked one technology and specialized in that.
I guess the Title is indeed rhetorical. But I would love to hear what you guys have to say.
Hope you enjoyed reading this as much as I enjoyed writing it.
If you think this will be of help to someone? Do not hesitate to share. If you liked it, tap the clap below so other people will see this here on Medium. Don’t forget to show some love by following the blog!