Software engineering dilemma

Software engineering dilemma

Making a choice in the face of a lot of opportunities

The software engineering field is quite vast and fluid, we have machine learning, data science, web development, mobile apps development, desktop app development, augmented reality, virtual reality, mixed reality, gaming and that's just off the top of my head. It's also not a secret that software engineers get paid decent wages for their skill, there however is a bit of analysis paralysis involved in choosing where to specialize.

I believe that it's is very important that Junior software engineers know what they want to be good at (interest can be a factor). Because there are so many opportunities a lot of people have problems planting their feet in a particular sector and are stuck chasing the hottest things on the market, they're unable to marshal their skill properly because they have knowledge in so many fields but depth in none. An "experienced" software engineer without depth in any one language is no different from a junior developer in that you can't get handed serious projects and your likelihood of leading a very skill intensive project is minimal.

As a hack, if you want to spend your tentacles, it's advised that you do it in ways that complement or extend what you already know, you can conquer new territories while growing depth in what you know. Eg, Html > CSS > Javascript > React > Redux > Node js is complementary in a way and makes more sense than Html > CSS > Javascript > Golang > Python > Java. You have to pick something eventually.