Despite the fact that development for Android and iOS are carried out in different languages, I still combined them into one point – the similarities between these specializations are much greater than with any others. For example, Android development in Java is much closer to iOS development than to Enterprise development in the same (actually not) Java.
So what do we have in this segment? Relatively low threshold of entry – build a small application for Android / iOS in a state and a student at home. There is nothing prohibitively complicated there, and it is quite possible to gain experience. Lack of specialists with 15-20 years of experience in this field (for obvious reasons). A huge demand on the market (almost any company is simply ashamed not to have its own mobile application). And, accordingly, there is a shortage of qualified personnel, and, consequently, steadily growing salaries.
Front end development
A few years ago, such a profession did not exist at all. Sites were made by ordinary webmasters (as they called themselves), web designers (well, these will always survive) and layout designers (as we called them).
But gradually JavaScript became more sophisticated, AJAX raised its head – and that’s it, voila. A lot of code began to spin on the client. And then something terrible happened – synthetic languages that were compiled into JavaScript, fancy frameworks, and many, many other things.
Total what we have now. One of the most dynamically developing specialties. Every day something new. Very rapidly growing market demands for specialists, and there are also no specialists with 15 years of experience (again, for obvious reasons – before, ordinary designers and layout designers did all this). The demand from the market is large, and the entry threshold is quite low. So – a very good specialization for a beginner.
But there is one nuance here: the need for design and high-quality layout has not gone away. And almost always it is the Front-end specialist who has to perform it. So you should be prepared for the fact that Photoshop will be your tool as often as your favorite IDE. Well, it’s simple – someone has to do it. And there is simply no one closer to design.
Game development
The direction of development, traditionally causing profuse salivation in the entire young audience, especially the male part of it. It’s so romantic to write your own StarCraft or Counter Strike killer. Yes, probably. But life is a hard thing, and there are a couple of things that you should know about in advance.
Firstly, there are not so many gem-dev shops in Ukraine. Yes, they are all quite small. So in total, the job market for gem dev is very small. This, of course, if you do not take social programs. There is a much larger market, but I would not even compare with all of the above. There is frankly little work, and it is not visible that it has become much more
Further, if suddenly your dream comes true, and you develop real games, and not social programs, then you will have to keep on the table reference books on the strength of materials, acoustics, optics, hydro- and aerodynamics and all other subjects terribly loved by students, since they and will be your most important knowledge.
And finally, salary. Well, let’s just say – the salary is not so bad. But. Inversely proportional to the interestingness and pathos of the work. The more interesting the project, the more hunters for it. The lower the salary is the market, baby.
In general, if you really want to sculpt your World of Warcraft with friends in the garage, then sculpt it. It’s fun and you’ll even learn something. For example, relationships within the team. But to expect to become a professional game dev and make good money on it – well, there are more chances than making good money on football.
Enterprise development
We are talking about the development of programs (or rather, integrated enterprise management systems) for large and giant companies. That is, all these programs share several common features:
- The monstrous complexity of the subject area. Suffice it to say that even theoretically it is impossible for one person to understand how everything works even in one Enterprise enterprise. To understand, it is necessary to have a whole staff of people who understand everything (each one has his own piece);
- Huge amounts of data. Terabyte databases, gigabyte files of transferred data – this is all about Enterprise. Now it is already considered that there is no separate direction of BigData. All of these approaches are applicable to most Enterprise development;
- A large number of legacy (i.e. outdated, but still in use) systems with which, nevertheless, it is necessary to integrate and, worst of all, support, that is, correct and expand;
- A huge number of external integrations with other systems. On average, each Enterprise project integrates with at least 3-5 other systems;
- High requirements for fault tolerance and saving transactions. Which is not surprising – such a transaction may well carry data on a multi-million dollar transaction;
- The high cost of making any changes – since each change may well affect not only the system itself (that is, it must be fully tested), but also all related systems (that is, they also need to be tested).
- Extremely conservative attitude towards the systems and frameworks used. In an enterprise, you will hardly find software developed more than 5 years ago.
At the moment, there are exactly two platforms for Enterprise – .Net and J2EE (Enterprise Java). In general, both platforms feel pretty good, but due to the fact that large corporations prefer to use Unix-like servers (really, were you surprised?), And it works on them (it really works, that is, it has been working for a long time and successful) J2EE only. Accordingly, at the moment we can say that Enterprise = Java. For .Net, there remains a fairly small segment of companies that are tied to handling Microsoft products. Well, at the moment there is a noticeable decline in interest in this platform.