So I like to work out (sort of). I mean, I don’t always enjoy the act of working out but I enjoy the satisfaction of doing it. But I’m not very good at it. I can’t run a marathon, bench 250, do more than three pullups, and I’m one of the last to finish a WOD or circuit. I don’t specialize in anything, I just sort of randomly do something every day. Some days I run, some days I do pushups, some days I do yoga, and so forth.
In IT and tech, you can be a generalist or you can be a specialist, but it is really hard to be both. I’ve lost track of how many times I’ve heard someone say, “I know programming, I know computer science and software engineering, so any other language is just syntax. I can pick it up.” While this is true to a degree, let me tell you a story. I was talking with a customer once and had positioned myself as an expert in programming and in Java. I am a software engineering expert, and I’ve done a lot of Java, so I thought this was accurate. I am of course familiar and comfortable with the concepts of anonymous functions and lambdas, but my Java is a little rusty and when the customer mentioned Functional Interfaces I was not familiar with the term. At that moment I lost all credibility. Later that day, 10 minutes with Google and I now know what a Functional Interface is and the syntax, but it was too late, the damage had been done.
Getting back to working out…I’m not a specialist in any particular exercise type because I don’t have a specific goal. I just have a vague generic goal of “be fit and healthy”, which means that although I might be vaguely fit and healthy, I’ll never be able to achieve any specific goal like “Complete an Ironman” or “Bench 300”. If I wanted to accomplish some singular significant goal, I would need to make that decision and then focus my training.
Again, this is the same with IT. If you just have a vague goal of “know IT” and “be employed”, then being a generalist is fine, and your career might be successful to the degree you want it to be. But if you want to excel and be a top-tier player in your career then you probably need to specialize in a particular area (AI/ML, infrastructure security, User Experience), and find the specific ways to study, train, and gain experience in those areas.