Sua pergunta pode ser tratada dividindo-se em duas sub-perguntas.
Por que usar anos de experiência como requisito?
Porque é uma métrica facilmente verificável correlacionada positivamente com a competência de programação . A resposta de Snagulus já detalha os detalhes da correlação, por isso vou focar no "porquê".
A dura verdade é que geralmente há mais de um candidato para uma determinada posição. Além disso, as entrevistas consomem bastante recursos, especialmente se forem realizadas "adequadamente", ou seja, entrevistas técnicas são conduzidas por funcionários tecnicamente competentes (neste caso, programadores).
Portanto, é necessário usar algum critério para analisar inicialmente os currículos recebidos , e de preferência um que possa ser verificado por uma equipe não técnica - em caso de dúvida, o pessoal de RH sempre pode ligar para empregadores anteriores e verificar se sim, John Smith trabalhou para X anos com eles.
Por que não usar a "paixão" como requisito?
Há pelo menos dois problemas com isso:
como medir "paixão"?
KLOCs registrados? Boa sorte ao descobrir que, também em programação (e outras disciplinas), mais profuso não equivale a "melhor".
Projetos de código aberto / hobby concluídos? Não é facilmente controlado pelo RH, e muitos programadores competentes têm razões legítimas para serem inativos a esse respeito - outras obrigações demoradas, longas horas de trabalho com vontade de relaxar, realização profissional simples durante o horário de trabalho etc.
Anos de experiência? Oh espere...
"paixão" é realmente uma boa métrica para competência?
Como Robert Harvey diz em seu comentário, a paixão não é realmente indicativa de uma programação competente. Comparado à experiência, é uma qualidade principalmente ortogonal - ou seja, existe:
- programadores apaixonados e competentes e
- programadores desapaixonados e tecnicamente competentes e
- programadores apaixonados e tecnicamente incompetentes e
- programadores apaixonados e não tecnicamente incompetentes,
- etc etc.
O último exemplo é importante em nosso contexto - anos de experiência também mostram que um determinado programador conseguiu, de alguma forma, funcionar em seu trabalho, enquanto um programador disfuncionalmente apaixonado poderia, por exemplo, recusar-se a participar mesmo do sistema mais simples de gerenciamento de tarefas (digamos, notas de post-it do Scrum), porque "isso me atrasa".
Isenções de responsabilidade finais
Antes de tudo, e felizmente, "anos de experiência" são frequentemente avaliados "vagamente" - ou seja, se você estiver se candidatando a um emprego na linguagem X, mas tiver apenas experiência "comercial" na linguagem Y, semelhante ao X, que também é frequentemente levado em consideração.
Em segundo lugar, pessoalmente, eu não sou fã de "N anos de experiência" e não sou o único. Existe uma alternativa simples - especificar "experiência em" . Isso geralmente é suficiente como filtro, uma vez que os candidatos são forçados a documentar essa experiência em seus currículos - se você conseguir um candidato para uma posição de programação que anteriormente apenas executou garçons (e isso acontece!), Você sabe que algo pode estar errado.