I decided to share my thoughts on the topic in which the development industry should go to a person who has mastered the Java core and the basics of computer science. And there are two known ways: Java Enterprise or Android development. By Java Enterprise programming, I mean development, whose vacancies on hh have the title “Java developer”. Jobs related to android development can be found on the same site upon request, respectively, android developer.
We will consider that you studied the core language of Java at a basic level, and also familiarized yourself with the themes of algorithms, SQL and other basic things from computer science, and now you choose the path to where to go next with a view to getting a junior job as soon as possible. programmer. Let's discuss what are the pros and cons in the choice between the two development branches indicated above.
1) Technology stack
Java programming came into the business almost 20 years ago. As a result, a wide variety of frameworks appeared in the field. Each project uses its own stack of technologies, and it is quite difficult to understand which technologies will still live, which are about to die, and which will not be used for a long time. At the same time, besides Java things, Javista also need to know UI technologies: JS with frameworks, html, css
Since android is a relatively young OS, and it entered the business even later, there is no such framework zoo like in big java. There is neither a spring, nor hiberneyt, nor other more exotic things. Work here can be started with only android sdk and java core in the baggage of knowledge. UI, as far as I know, is provided directly out of the box (android studio), using drag and drop. That is, the GUI part does not need to be further studied.
')
2) Features of the sphere
Sadly, in Russia there is no Java programming (with a few exceptions - banks and state portals). What we write here is sent to customers in Europe and America. The consequence of the fact that customers are large companies is the complexity of the business logic itself. The minimum entry threshold implies not only knowledge of the main frameworks, but also specific requirements for distributed systems, big data, a deep understanding of multithreading, machine learning
Android applications are written for both small businesses and major players around the world. As a result, it is possible to start from simple projects and develop towards more complex ones. In other words, android provides a lower entry threshold, but does not limit the ceiling - along with simple projects there are also quite complex ones on the market.
3) Is there a future?
As for industrial programming on big java, I don’t know. Although it is kept in the first lines of the programming language rating, this is not clear for me. Previously, this could be explained by the presence of JVM and its portability, but now that desktop applications are no longer being developed and all functionality is placed on the web, the future of java as a language for enterprise programming is questionable for me. Probably, since Java is not very actively used by Russian companies, preferring other programming languages ​​to it, apparently Java is not a very modern language that meets the requirements of real life.
There are no competitors on the Android OS smartphone market. The likelihood that iOS will swallow android is close to zero. Consequently, the next couple of decades in the industry are unlikely to undergo significant changes. Maybe new frameworks will appear, but those who start from scratch will now be able to consistently study them and grow professionally along with the development of the industry itself. Unlike a big java, you don’t have to try to learn everything at once, in order to get somewhere - you can safely study that small scope of technologies that are used in the market now.