Imagine a shoemaker who repairs shoes, he sews torn leather, nails heels. Every year he is getting better and better, he is able to repair the broken nose of the shoe with almost closed eyes. Clients are extremely satisfied, he gets pleasure from work - but according to the laws of the genre, such an idyll cannot last forever.
A sharp change of fashion - and now almost no one wears shoes, everyone chooses stylish sneakers and shoes. Our shoemaker is trying to make ends meet by serving poor peasants who are unable to buy new fashionable shoes. It takes a little more time - and only retro lovers drop in to his closet.
Why all this I? The fact is that lately, watching the situation in the IT market, I often notice a similar situation. A lot of specialists choose a specific platform, a programming language, they improve it to superiority. But the unstable, dynamic situation, especially in our field, extremely often changes the rules of the game. Five years ago, almost no one heard about the language of Objective-C, and certainly no one could imagine the current size of the mobile application market. And now, unfortunately, many are confronted with the situation of a shoemaker, trying to jump on the running board of a departing train.
But we will not exaggerate. I am not trying to say that there is no need to develop in some areas, to become a professional. All that I would like to convey is that it is necessary to develop multidimensionally, paying attention to different areas, trying to “smell” new trends and trends. And also: do not be afraid to learn new things, strive for it. Well, of course, this is not about Habr's audience, otherwise why would you be here? :)
Multidimensional development is not only within the scope of application development. For example, in the company in which I work, there is such a diverse and diverse team that we study interesting and useful applications of psychology together (recently I read Psychology of Influence, I advise everyone very much), and we also teach at MSU and HSE; and podcasts are recorded. Some people call this “spraying” - however, many of our projects got their start precisely from such ideas at the border of several disciplines.
We are even trying to look for people for new projects with similar views. For example, they recently opened a vacancy for a mobile developer — we launch mobile application development projects for iPhone, Android, Maemo. And for these projects for different platforms, we want one person :) Impossible, you say? But on the other hand, for us it doesn’t even matter whether a person is able to develop under iOS now, for example. Still, the main thing is the desire to develop, learn, and, nevertheless, knowledge of the basics of programming and languages. If there is this - then learning new is a matter of a short time.
Why did I take our company as an example? The fact is that I really get a buzz from what we do :) And I believe that multidimensional development and multidirectionality is a competitive advantage of the XXI century. Indians can program well, there are many of them. But to feel the trends, consumers and apply interdisciplinary ideas - this is, I think, our path.
Do you think specialization is really harmful?