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.
Conheço muitos programadores acima da média e todos eles concordam em uma coisa: para ser acima da média é necessário entender como as coisas funcionam.
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?
Aprender a usar ferramentas é fácil, difícil é entender como elas funcionam e porque funcionam dessa forma. É o que separa os homens dos meninos.
A resposta para essa afirmação está na minha resposta acima.
Acho muito importante a curiosidade que o autor do post teve e gostaria muito que todo iniciante fosse assim, mas infelizmente a maioria só aceita o status quo sem querer entender porque as coisas são como são.
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?
Desencorajar a busca por conhecimento é simplesmente a pior dica que alguém pode dar a um programador. O problema é que é necessário ter conhecimento para entender poque ele é importante e útil. Não existe isso de "conhecimento guardado" não colega. Quando você já conheceu um excelente programador que não tivesse muito conhecimento?
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".
Com todo o respeito mas a sua "dica" é basicamente um tutorial de como se tornar um programador medíocre.
...
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.
O problema é que você não foi arrogante mesmo, só simplório. Uma resposta dizendo isso mesmo: "Não estude todas as linguagens de programação que existem" ainda assim seria um concelho. Mas você só entregou como se curiosidade fosse atraso. Se meu chefe me pede para usar azure, eu vou estudar azure, nao vou estudar 'todas as clouds'. Até na minha pergunta eu disse 'eu escolhi java e react'. Eu não quero entender todas as linguagens do mundo, eu quero entender O QUE É QUE EU NÃO SEI QUE TEM POR TRÁS DA LINGUAGEM DE PROGRAMAÇÃO. Igual o colega disse, dev que não estuda a linguagem é piloto que dirige carro e não sabe que tem motor. Você tendo o melhor das intenções vei com o concelho de 'O que você tem que fazer é estudar coisas por demanda e que são relevantes pra sua atividade fim, ou seja, se você hoje precisa fazer alguma coisa use ferramentas que te facilite naquilo.' e como o amigo aqui disse, é a receita da mediocridade