Em que e quando investir?

Hoje em dia vejo muitos tópicos em diversos fóruns de pessoas questionando qual seria a segunda melhor linguagem para se investir, tendo como finalidade
ser poliglota em programação, mas muitas vezes esquecem do que envolve tudo isso.

Não estou dizendo que não seja importante , muito pelo contrario, conhecimento nunca é demais, mas o grande problema é o tempo , e dentro disso
temos um fator mais importante , o que aprender primeiro?.

Tenho levado essa duvida comigo sempre que acabo um assunto em meus estudos e pretendo entra em outro, analiso qual deles me traria
vantagens em minha situação atual, ou seja, no meu emprego ou em projetos pessoais, e isso é o que mais me intriga quando vejo tópicos sobre esse tema.

Fiquei com isso na cabeça depois que conheci um programador que trabalha a algum tempo com delphi e dizia saber php, java e python
mas quando o questionei sobre conceitos básicos de rede ele simplesmente não sabia e não entendia absolutamente nada do que eu estava dizendo.

O ponto que eu gostaria de chegar era justamente este, pois atualmente pretendo me especializar o maximo possível em java para posteriormente aprender outra linguagem
mas antes disso quero adquirir conhecimentos sobre outras areas, não me aprofundando a ponto de me tornar um especialista , mas ao ponto de conhecer
o suficiente sobre o assunto para não passar sufoco com problemas que não estejam ligados ao desenvolvimento de software, pois com conhecimento mais abrangentes
alem de outras vantagens você consegue desenvolver com melhor qualidade.

Afinal com java conseguimos fazer o mesmo que se consegue fazer com C#, o que muda é a maneira de ser desenvolvido, e mercado temos para ambas então porque
não analisar melhor suas deficiências na área e talvez começar a pensar em aprender outros assuntos como Sistemas Operacionas, Redes, Hardware entre outros.

Gostaria de saber a opinião de vocês sobre isso , e se na área de desenvolvimento o que mais conta é conhecer varias linguagens, ou ter em mente outros assuntos que complementam seu conhecimento atual.

Bom, acho que vc deve pelo menos saber como funciona algumas linguagens, até que ponto ela pode chegar, para poder utilizar os recursos…

Por exemplo: Vou criar um projeto web, PHP, Java, Ruby on Rails? Cada linguagem vai ter suas vantagens e desvantagens em cima do projeto que vc está criando…
Se for fazer um projeto desktop, eu faço em Java Swing ou Java FX, ou Delphi teria algumas coisas prontas que atende melhor minha finalidade?

O que penso é que nós devemos estar aptos a pegar qualquer linguagem para programar, gastar 1 semana (ou mais, depende de cada pessoa) com o aprendizado da sintaxe e dos frameworks e iniciar seu projeto. Ou seja, nao deixar que a linguagem seja um empecilho para o sucesso do projeto.

Pensando em mercado de trabalho, é bom ter um conhecimento mais a fundo de alguma outra linguagem que está no topo do mercado, Java e C#, e as novas como Ruby on rails, Scala, etc…

Posso estar errado, mas para a pessoa dominar uma linguagem e seus frameworks(levando em conta que atualmente praticamente todos os projetos possuem framework)
uma semana ou até um mes seria muito pouco para dominar a ponto de iniciar um projeto com segurança, mesmo a pessoa ja tendo dominio de outra linguagem.
Não consigo imaginar como fazer um codigo de qualidade sem ter uma previa experiencia em algum projeto.
Sem dúvida nenhuma é MUITO mais facil aprender quando ja se tem conhecimento em programação, mas pelo menos não imagino isso em tão pouco tempo.

Quando eu disse de aprender em 1 semana, nao to falando de dominar igual vc disse…

Por exemplo: vou fazer um projeto em PHP (eu nao manjo nada disso), vou atras de um framework mais usado, pronto, achei o Zend Framework, vou dar uma estudada nele e comecar o meu projeto, com o tempo ai vou aprendendo mais sobre ele…

Acho que para projetos pequenos esse negócio de pegar uma linguagem, aprender um pouco entre 1 semana e 1 mês, sair fazendo… até da certo, por exemplo fazer um sitezinho de uma lojinha virtual… Nesse caso concordo que o que vai mudar praticamente é a sintaxe e conhecer meia duzia de APIs será suficiente.
Entretanto para projetos maiores, acho que o tempo de aprendizado será proporcional a complexidade do projeto…
Projetos pequenos (ou pouco complexos) na maior parte das vezes nem sempre necessitam de qualidade ótima de código ou conhecimento profundo na tecnologia que será utilizada.

Minha opnião sobre o assunto é:
Profissional generalista (ou poliglota em varias linguagens, como preferir), muito mais espaço em pequenas e médias empresas, projetos menores e menos complexos. Geralmente este tipo de perfil (conhece um pouco de tudo) tende a com maior experiência ter um cargo de liderança/gestão.

Profissional especialista… dificil ser especialista em tudo, precisa escolher um caminho, por exemplo, se especializar em Java a ponto de poder fazer QUALQUER COISA EM JAVA… ou seja, projetos mega-ultra-complexos, em empresas grandes onde um profissional desenvolvedor sênior ganha mais que muito gerente de TI por ai… Por exemplo, tem muito chefe de oficina de concessionária que ganha muito menos que mecânico de carros de corrida (não precisa nem ser de fórmula 1).

Onde você pretende estar profissionalmente daqui a 2 anos ? e daqui a 5 anos ? e daqui 10 anos ? responda essas perguntas e decida qual melhor caminho a seguir…

E ah … ta cheio de programador que conhece 30 linguagens de programação diferente, mas pede para fazer algo diferente de um formulário com acesso a banco de dados e veja que nada sai, pois o que ele sabe na real é fazer sistema que se comunica com banco de dados… conhecer rede, socket, filesystem, sistemas operacionais diferentes, estruturas de dados, etc é muitas vezes mais importante do que conhecer uma penca de linguagem de programação diferente! óbvio que para se tornar especialista em qualquer linguagem de programação um pouco mais complexa, será necessário conhecer a fundo a maior parte destes assuntos!

não queira abraçar o mundo com os braços, tem muita coisa por aí, isso de segunda linguagem é fria, isso nao é como idioma que voce aprende e pronto. tecnologia avança muito rapido, aprende o que voce vai usar na pratica ou pra alguma vaga especifica. não queira aprender tudo isso não existe.

foca em java mesmo que ‘somente’ em java voce meche com mobile, SOA, web, integraçao de sistemas etc etc. nao é a linguagem, é o uso da tecnologia que é feito.