Vamos lá vou te responder por tópicos, e pegar um gancho novamente no que eu respondi anteriormente, por que parece que algumas pessoas não entenderam: eu não quis ser arrogante.

Bom, eu particularmente não achei que você tenha sido arrogante.

Eu concordo com isso, mas será que faz sentido aprender cerne de todas as linguagens de programação pra saber como diferencia-las? Ou dar foco em uma delas mesmo que por gosto e se especializar dentro dela?

De "todas" as linguagens? Bom, isso é objetivamente impossível porque existem mais de 8 mil linguagens de programação[1]. Mas se formos falar de se especializar em uma linguagem, é obrigatório estudar Programming Language Theory (PLT) para entender no mínimo como essa uma linguagem funciona.

Você não precisa estudar a teoria para entender sobre "todas as linguagens", precisa estudar a teoria para entender a(s) linguagem(ns) que você se dispor a estudar. É impossível entender uma linguagem de programação sem essa base em PLT. E por consequência disso como você poderia se declarar "especialista" se você não entende as bases dessa linguagem? Entender só a sintaxe da linguagem e saber usar frameworks/bibliotecas dela não me parece suficiente para se considerar "especialista".

A resposta para essa afirmação está na minha resposta acima.

Coincidentemente a tréplica está acima também.

A curiosidade é excelente e precisa ser estimulada, mas se um desenvolvedor trabalha pra você, e você passa uma tarefa pra ele, por exemplo integrar com o blobstorage da azure, e ele fica na curiosidade de como funciona a integração pra todas as clouds, eu te pergunto: em que isso vai agregar no valor que ele vai entregar?

Você comparou bananas com maçãs. Como "integrar com um cloud X" poderia ser considerado um conhecimento fundamental de computação? Isso é literalmente aprender a usar uma ferramenta e não aprender como a ferramenta funciona.

Mas curiosidade de aprender como serviço de cloud funciona seria bastante útil. Não útil para concluir essa tarefa, mas seria útil para o desenvolvedor pois o conhecimento novo o permitiria trabalhar em tarefas mais complexas (vulgo tarefas que não envolvam especificamente usar ferramentas, como essa do exemplo).

Desencorajar a busca não como um todo, mas de maneira generalizada "buscar tudo por que quanto mais conhecimento melhor", é sim uma coisa importante, por que é exatamente isso que separa os bons programadores dos programadores ruins: saber "o que é necessário com o menor esforço possível e entregar valor de uma forma excelente".

Hmm, não. Pela minha observação programador ruim é justamente o que só aprende o mínimo necessário para cumprir seu trabalho. Claro, isso é "bom" para o seu chefe porque você faz o seu trabalho, recebe seu salário no fim do mês e vida que segue. Um típico funcionário.

Mas isso é ruim para o desenvolvedor em si, que vai continuar sendo só mais um funcionário para o resto da vida dele. Se não quiser ser só mais um pelo resto da vida, vai ter que aprender muito mais do que o mínimo necessário.

Bom, é óbvio que para cumprir as tarefas atuais o conhecimento que o desenvolvedor já tem é o suficiente. Mas o desenvolvedor quer continuar cumprindo o mesmo nível de tarefa para sempre? Sem nunca pegar tarefas/projetos/problemas cada vez mais difíceis, cada vez necessitando conhecimento mais profundo? Se sim, esse é justamente o desenvolvedor medíocre.

  1. https://hopl.info/

Entendi o nosso desacordo.

Você está levando o assunto, ou o tema pra um lado muito mais científico que eu.

Eu não levei, e nem queria levar pra esse lado, até por que pra mim, nunca fez sentido isso, nem pros meus projetos e nem financeiramente falando.

Já tenho 12 anos de carreira, e nunca aprendi Programming Language Theory (PLT), pra ser sincero, nunca tive nem contato com esse termo.

Fato é que: nós técnicos colocamos muita expectativa em o quão cientificos somos, tenho um amigo que é exatamente assim, a diferença entre ele e eu, é que além de focar nas coisas que me fazem performar excelentemente bem como desenvolvedor, eu também foco nas minhas soft skills no tempo que eu estaria me especializando cientificamente, no mais baixo nível de como as coisas realmente funcionam.

No fim das contas, o cliente, não vê nada disso.

Pra mim, fazer um projeto bem estruturado, bem modelado e bem performático com as ferramentas que o framework e os itens de infraestrutura dão já é o bastante pra render bons frutos pro meu cliente.

Mas a partir daqui é questão de gosto mesmo =)