Decidi compartilhar meus pensamentos sobre o tópico no qual a indústria de desenvolvimento deve seguir uma pessoa que domina os principais núcleos de Java e os fundamentos de ciência da computação. E existem duas estradas, como você sabe: desenvolvimento Java Enterprise ou Android. Por programação Java Enterprise, quero dizer desenvolvimento, cujas vagas em hh têm o título "Desenvolvedor Java". Os trabalhos relacionados ao desenvolvimento do Android podem ser encontrados no mesmo site, mediante solicitação, respectivamente, "desenvolvedor do Android".
Assumiremos que você estudou em um nível básico a linguagem Java principal e também se familiarizou com os tópicos de algoritmos, SQL e outras coisas básicas da ciência da computação, e agora escolhe o caminho a seguir com o objetivo de se tornar um júnior - o mais rápido possível o programador. Vamos discutir quais são os prós e os contras na escolha entre os dois ramos de desenvolvimento indicados acima.
1) pilha de tecnologia
A programação Java entrou em operação há quase 20 anos. Como resultado, uma grande variedade de estruturas apareceu na esfera. Cada projeto usa sua própria pilha de tecnologias, e pode ser difícil entender quais tecnologias ainda estarão disponíveis, quais estão prestes a morrer e quais não estão mais em uso. Ao mesmo tempo, além do Java, o Javista também precisa conhecer as tecnologias da interface do usuário: JS com frameworks, html, css
Como o Android é um sistema operacional relativamente jovem e entrou no negócio ainda mais tarde, não existe um zoológico de estrutura como no grande Java. Não há primavera, hibernação ou outras coisas mais exóticas. Você pode começar a trabalhar aqui com apenas o Android sdk e o java core na sua bagagem de conhecimento. A interface do usuário, tanto quanto eu sei, é fornecida diretamente "fora da caixa" (android studio), arrastando e soltando. Ou seja, a parte da GUI não precisa ser estudada adicionalmente
2) Características da esfera
É triste, na Rússia não há programação Java (com algumas exceções - bancos e portais estatais). O que escrevemos aqui é enviado para clientes na Europa e América. A conseqüência do fato de os clientes serem grandes empresas é a complexidade da própria lógica de negócios. O limite mínimo de entrada envolve não apenas o conhecimento das principais estruturas, mas também requisitos específicos para sistemas distribuídos, big data, um profundo entendimento de multithreading, aprendizado de máquina
Os aplicativos Android são criados para pequenas e grandes empresas em todo o mundo. Como resultado, é possível começar com projetos simples e desenvolver projetos mais complexos. Em outras palavras, o Android fornece um limite mais baixo de entrada, mas não limita o teto - além de projetos simples, também existem projetos bastante complexos no mercado.
3) Existe um futuro?
Quanto à programação industrial em Java grande, eu não sei. Embora seja realizada nas primeiras linhas da classificação das linguagens de programação, o que causou isso não está claro para mim. Anteriormente, isso poderia ser explicado pela presença da JVM e sua portabilidade, mas agora que os aplicativos de desktop não estão mais sendo desenvolvidos e toda a funcionalidade é trazida para a web, o futuro do Java como linguagem para programação corporativa é questionável para mim. Provavelmente, como as empresas russas não usam muito ativamente o Java, preferindo outras linguagens de programação, aparentemente o Java não é uma linguagem muito moderna que atenda aos requisitos da vida real.
Não há concorrentes no mercado de smartphones OS Android. A probabilidade de o iOS engolir o Android é quase zero. Consequentemente, nas próximas décadas, é improvável que ocorram mudanças significativas no setor. Novas estruturas podem aparecer, mas aqueles que começam do zero agora poderão estudá-las consistentemente e crescer profissionalmente, juntamente com o desenvolvimento da própria indústria. Diferente do Java grande, você não precisa aprender tudo de uma só vez para chegar a algum lugar - você pode estudar com segurança esse pequeno escopo de tecnologias atualmente usadas no mercado