Em um mundo ideal:
Em um excelente artigo Não se chame de programador e outros conselhos de carreira , Patrick McKenzie explica, entre outras coisas, que o idioma não importa:
Um desenvolvedor é uma pessoa que resolve problemas, em geral. Um desenvolvedor não é uma pessoa que escreve código em um idioma específico.
As empresas não se importam com os idiomas que você conhece. Se eles precisarem contratar um desenvolvedor para um projeto escrito em um idioma específico e tiverem um candidato com muita experiência, mas nunca tiver escrito uma linha de código nesse idioma, ele ainda será contratado.
De acordo com a minha experiência, tanto como desenvolvedor quanto como pessoa que teve que contratar outros desenvolvedores, a observação é muito semelhante:
A experiência de N anos em Java ou N anos de experiência em C # não importa. O que importa é que o candidato saiba como resolver problemas, saiba a diferença entre código espaguete e código limpo com arquitetura bem pensada, etc.
Eu não ligo para os idiomas que você usou antes. Para um projeto em C #, prefiro contratar um desenvolvedor profissional que passou a vida escrevendo código Java, Python e Ruby on Rails, em vez de um iniciante que conhece apenas C # e o conhece mal.
O conhecimento e a experiência que você obtém usando um idioma são geralmente reutilizáveis em qualquer outro idioma.
Um desenvolvedor experiente que usou o Ruby on Rails para desenvolvimento na Web e passou o resto de sua carreira escrevendo aplicativos de desktop Java usando Oracle se encaixa perfeitamente em um projeto ASP.NET MVC usando o Microsoft SQL Server. Como essa pessoa já sabe tudo o que precisa para esse trabalho , deixe de lado algumas coisas específicas e diferenças de sintaxe.
Por outro lado, uma pessoa que criou apenas alguns sites pequenos do ASP.NET MVC não se encaixa, porque ela pode não entender completamente a arquitetura do MVC, pode saber o que é o perfil do SQL e pode não ter outras informações essenciais. conhecimento.
Não me diga que não consigo resolver um pequeno problema em um site PHP que usa o CodeIgniter apenas porque nunca o usei antes.
Na prática:
Na prática, quando procuro empregos freelancers e quando vejo as ofertas de emprego em geral, elas são muito específicas do idioma.
Alguns procurariam por um desenvolvedor PHP com dois anos de experiência no Magento. Outros estarão procurando uma pessoa com experiência em VB.NET de pelo menos três anos e, se você enviar um currículo mencionando que você fez o desenvolvimento de C # por seis anos, mas sem mencionar o VB.NET, eles não se incomodarão. para responder. Se eles solicitarem uma pessoa com experiência no Firebird, eles não ouvirão seus dez anos de experiência com a Oracle.
Por que existe tanta diferença entre a teoria e o que Patrick McKenzie e eu descrevemos como sendo senso comum e o mundo real das ofertas de emprego?
fonte
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.
Embora você seja perfeitamente capaz de corrigir o problema, se a causa raiz for CodeIgniter (uma das poucas peculiaridades da estrutura ou um dos muitos bugs abertos), você levará um tempo consideravelmente maior para corrigir o problema.<rant>...</rant>
. Sério, existe uma pergunta real aqui?Respostas:
Porque muitas empresas têm drones de RH que fazem o recrutamento, que não têm idéia sobre nada disso. Quando o RH diz "De que qualificações o candidato precisa?" é muito mais fácil dizer "Seis anos em C #" do que dizer "Grava bom código". Esse drone não tem idéia de como é "Gravar código bom" ou como filtrar um currículo, quer eles possam ou não escrever um código bom. Eles podem, no entanto, ler rapidamente um currículo e ver "Cinco e três quartos de ano em C #" e jogá-lo fora.
fonte
Acho que é hora de colocar de lado esse mito de que um desenvolvedor com X anos de experiência no idioma Y pode transferir facilmente para o idioma Y2. Não é assim que funciona.
Se você tratar a linguagem apenas como sintaxe e padrões comuns, sabendo, por exemplo, que o Java dará uma grande vantagem ao mudar para C #. No entanto, ele não irá prepará-lo para o WCF, WPF, Click Once, as várias bibliotecas de encadeamento, Linq, e certamente não o preparará para as coisas que o folheto diz que funcionam, mas na prática não.
Você vê que não está falando sobre um idioma, geralmente está falando sobre uma plataforma. E onde a plataforma, .NET é um bom exemplo, suporta muitos idiomas, as pessoas tendem a convergir para uma escolha preferida.
Portanto, quando solicito um desenvolvedor de C #, na verdade, estou anunciando um desenvolvedor de plataforma .NET com experiência em projetos de C #. Esses tendem a ser projetos de servidor .net, winforms / wpf.
fonte
Eu posso pensar em alguns motivos:
fonte
Nem todos os trabalhos de programação são iguais. Meu trabalho atual certamente se encaixa no seu modelo. Envolve muita análise de dados ad hoc e selecionamos e descartamos as ferramentas conforme necessário. Fui contratado em parte porque tinha um histórico de poder me tornar rapidamente produtivo com novas ferramentas.
Por outro lado, existem postos de trabalho onde você está à procura de conhecimentos técnicos específicos. Nos anos 90, eu trabalhava em uma pequena loja de software e precisávamos desenvolver rapidamente conhecimentos em C ++. Apesar de pedir explicitamente experiência em C ++ em nossos anúncios, a maioria dos candidatos sabia menos C ++ do que eu. "Mas eu posso aprender C ++ rapidamente!" todos eles disseram. Bem, sim, eu tenho certeza que você poderia, mas eu também, e as outras pessoas já lá. Estávamos procurando alguém que realmente conhecesse C ++, para que tivéssemos uma fonte interna de conhecimento à medida que o resto de nós chegasse à velocidade. Ter outro iniciante na equipe realmente não teria ajudado.
fonte
Digamos, você está procurando um candidato para um trabalho .NET / C #. Se você tem dois candidatos ao cargo, ambos parecem ter a mesma experiência, mas o primeiro obteve sua experiência no ecossistema Java, o segundo no ecossistema .NET - qual é o seu favorito?
Quem pode dizer por que você não recebe uma resposta? Talvez houvesse desenvolvedores VB.NET experientes suficientes se candidatando ao trabalho? Talvez o departamento de recursos humanos use a experiência da linguagem de programação como um filtro para reduzir o número de solicitações de emprego de 100 para 10. Talvez você tenha acabado de falar com as empresas erradas (acho que na minha empresa enviaríamos uma resposta no caso de exemplo) você descreveu acima).
fonte
Na maioria dos projetos, os resultados do trabalho são necessários rapidamente e as pessoas precisam gerar lucros o mais rápido possível.
As pessoas capazes de atender a essas necessidades e não estão vinculadas a um idioma específico são escassas e, consequentemente, muito caras. Essas pessoas são contratadas apenas pelas grandes empresas que exigem habilidades incríveis.
As pessoas que são capazes de resolver o problema, mas não conseguem aprender rapidamente um idioma específico, são menos escassas. Eles ainda custam muito dinheiro e têm um custo extra de tempo necessário para aprender o idioma específico.
Esse custo extra de tempo é reduzido solicitando um programador específico de idioma. Ele já aprendeu as habilidades necessárias e pode fornecer resultados rapidamente.
Em resumo, um projeto que precisa ser realizado em JAVA não precisa de um desenvolvedor de software incrível e caro, nem de um desenvolvedor .net médio que precise de tempo para aprender a linguagem / estrutura. Ele precisa de resultados imediatos com a menor quantia de dinheiro, entregue pelo cara que já possui experiência com JAVA e possui habilidades relativamente boas para resolver problemas.
Como sempre, trata-se de dinheiro e de obter o máximo retorno do investimento
fonte
Eu acho que você está simplesmente interpretando mal a frase padrão "<language here> developer". As empresas não colocam essa frase no anúncio para impedir desenvolvedores com experiência em outro idioma. Por que eles querem deter os desenvolvedores capazes? Do ponto de vista do empregador, quanto mais candidatos, melhor. Eles sempre não podem convidar pessoas nas quais não estão interessados.
O verdadeiro ponto da frase é dizer ao leitor o que a oferta de emprego implicaria. E isso faz muito sentido, IMHO. Você se candidataria a um emprego no qual desenvolva na linguagem assembly Z80? Ou COBOL? Ou Fortran?
E, obviamente, se a empresa tiver dois candidatos que parecem igualmente inteligentes, o vencedor com experiência em <language here> vence. Nada mais nada menos. (Existem casos especiais em que as pessoas são contratadas apenas para um único projeto, ou para um projeto que já está atrasado, ou para o primeiro projeto que a empresa desenvolve em <idioma aqui>, onde você realmente precisa de experiência nesse idioma desde o início, mas não acho que sejam a regra.
Aliás, minha empresa escreveu anúncios como você sugeriu ( parece que faz sentido, afinal). Os resultados foram devastadores. As pessoas que realmente se preocupam com o trabalho simplesmente ignoraram o anúncio. Apenas os desesperados, que se aplicam a qualquer posição aberta aplicada. Nós nunca tentamos novamente.
fonte
Recue e pense na premissa. Você quer que uma pessoa faça algum trabalho .net. Você coloca isso na descrição do seu trabalho e procura candidatos com essa habilidade! Isso é apenas senso comum.
Eu certamente concordo com suas filosofias mais detalhadas sobre por que isso pode não ser uma boa idéia, mas a maioria das pessoas apenas anuncia, exige e procura um candidato com as habilidades necessárias agora. É simples assim, então eu acho que isso responde ao título da sua pergunta sobre o porquê.
Se eles não conseguirem nenhum candidato ou passarem por vários candidatos ruins, poderão estudar um pouco e ser mais receptivos aos itens detalhados. De fato, na área em que estou (Ruby on Rails), existem MUITOS anúncios no momento dizendo "não é necessária experiência, vamos treiná-lo" etc. etc., e de fato algumas das principais organizações muito aberto a candidatos "sem maus hábitos" que eles possam treinar. Portanto, a abordagem correta está disponível em algumas organizações.
Lembre-se também de que a maioria dos anúncios é de recrutadores externos ou internos não técnicos que simplesmente não têm o conhecimento de "ir para o lado", como você descreve.
fonte