The rant of a Non-Specialist SE

My passion is to be a problem solver through software. In this sense what technology to work with was not a decision point. Usually I enjoy the start of debates about the merits and pitfalls of technologies we work with, however somewhere down that lane the rational debate becomes somewhat of a boxing match with people becoming fan boys\girls of one technology or another. The classics like Java vs C# debates, iOS development vs Android vs Windows phone always leaves a bitter sense of irrationality in the end. Now I am not saying being passionate and evangelical about one technology or another is necessary a bad thing, however sometimes it just makes me bleed in the ears.

To begin with, being specialised in a particular technology is NOT a bad thing as long as you are truly passionate about it and know there is something for you in it. If one takes a look at job listings for the software industry it is very common to find targeted recruitment for specialist areas. For me though, the passion lies in creating software to solve problems. So I am usually dumbfounded by the young who want to get into the software industry as developers asking me if they should learn Java or C#. My usual response is learn both, and if possible many more.

On thinking back though I realise that saying learn as many technologies as possible is not helpful. It is the last thing a hopeful software developer wants to hear when they are trying to test and grasp the nature of software industry. Maybe the more helpful advice would be to understand the fundamentals of the technologies out there. Then learn one or more language thoroughly in the hope of testing those fundamentals.

Why am I being so stubborn about specialising exclusively in one technology? Because it limits me. One might want to thoroughly learn a particular language if the job at hand requires it, however, there is nothing stoping you from experimenting on some new or even obsolete language. The core of my stubbornness is that I believe it limits the domain of problems I can solve if stuck to only a very narrow set of technologies.

No I am no expert in all the languages dabbled in. What this gives me is the ability to relate to almost all programmers in the industry. Though I must admit meeting a programmer working on something I never had, and listening to their talk or challenges always make me feel utterly stupid, and makes me want to know more about those tech.