Especialista ou Generalista?

Bom dia !

Estou em um dilema, ser especialista ou generalista?.

Com relação a linguagens. Alguém sabe vantagens e desvantagens das duas abordagens ?

Grato

Este livro é um bom guia de carreira, e vai te ajudar a responder esta pergunta:

Este aqui também:

Sobre a questão em si, você deve desenvolver as suas habilidades em forma de “pirâmide” ou “T”. Você precisa se fortalecer em fundamentos essenciais que são comuns a qualquer linguagem de programação: lógica, estruturas de dados, bancos de dados, redes, sistemas operacionais, etc. e em um segundo momento se especializar em um determinado nicho e depois em uma ferramenta ou conjunto de ferramentas. O que de fato agrega muito pouco é saber fazer o mesmo CRUD em N linguagens diferentes. É mais negócio por exemplo se especializar em um nicho + ferramenta, por exemplo Games + Unity + C#. Mas para isso é importante ter uma base sólida.

Trabalho com Java há anos, e do meio de 2016 pra cá, venho estudando e pegando alguns jobs do lado frontend (HTML, CSS, JS/ES6/ Angular e React), pois vi a necessidade de aprender e estar atualizado nessas techs para ficar no mercado. Me sinto especialista em backend Java, porém generalista quando me refiro a fullstack, pois não manjo tanto de front assim… só sei me virar. Eu acho que esse é o melhor… ninguem consegue ser especialista em tudo, mas tb não é bom ser especialista em uma coisa só e não souber um pouco de outras coisas.

Se for focar, por exemplo, em backend, pegue uma linguagem (java, .net, node, python, ruby, php) e se especialize, mas tb saiba um pouco de html/css/js. Se for focar em front, foque nas tecnologias de front, porém saiba criar uns servicos REST, persistir em um banco de dados.

Eu tb procuro aprender um pouco de DevOps: Docker, Kubernetes, AWS e um pouco de mobile. Mas saber tudo a fundo, acho que é impossível, rs