Escolhendo entre dois programadores: experiência versus paixão [fechado]

82

Estou em uma posição em que tenho que contratar um programador e ter a opção de 2 candidatos, o primeiro tem experiência, mas ele não tem paixão pela codificação e diz isso enquanto o segundo não tem a experiência, mas ele tem a paixão, ele se saiu bem na entrevista e é certificado.

Temos os recursos para treinar alguém, mas realmente não quero estragar esse processo e contratar alguém que será decepcionante. Alguém pode me ajudar sobre como abordar esta situação?

Duke
fonte
6
Eu queria que fosse, "hábil vs paixão"
iamgopal
32
-1 ao entrevistado que admite não ter paixão pelo trabalho que está entrevistando.
Wonko the Sane
1
Por favor elabore. Paixão é uma palavra carregada nesse uso. Também não está claro se a paixão pela codificação significa estritamente para a fase de desenvolvimento da codificação ou a abreviação de desenvolvimento de software. O que você precisa? O cumprimento das metas de curto prazo é a coisa mais importante?
Mctylr
4
E se ele mentisse sobre a paixão ou apenas estivesse atuando?
Lukasz Madon
8
+1 ao entrevistado que admite não ter paixão pelo trabalho que está entrevistando, pelo menos ele é honesto o suficiente.
Sarawut Positwinyu 10/09/11

Respostas:

156

Contrate o programador inexperiente com uma paixão pelo ofício. Um programador apaixonado aprenderá rapidamente, se preocupará com seu trabalho e gostará de fazê-lo. Eu trabalhei com os dois tipos de programadores e sempre contrataria os apaixonados pelos experientes.

As pessoas que não se importam com seu trabalho acabam levando a problemas de qualidade e no cumprimento de prazos.

Como você declara explicitamente que possui os recursos para treinar alguém, isso é óbvio. Contrate o programador apaixonado.

Matthew Kubicina
fonte
6
+1 ... pelo menos o apaixonado não tem um motivo para sair ... a menos que seja apaixonado demais.
Job
10
+1 Há um ditado ... "esse cara tem 1 ano de experiência 7 vezes". Um caso claro em que a experiência (das sortes) não está realmente funcionando para você.
quickly_now
14
Além disso, muitos programadores "experientes" são apenas pessoas que existem há muito tempo, não que sejam boas: p
Philippe
3
+1 sempre. É muito mais fácil ganhar experiência do que restaurar a paixão e você não precisa de um "coletor de paixão" em nenhuma equipe.
John Parker
5
É verdade, com uma ressalva. Um programador apaixonado pode aprender rapidamente. Às vezes, infelizmente, algumas pessoas "simplesmente não entendem".
Wonko the Sane
117

Enquanto ninguém postando aqui está em posição de lhe dizer qual contratar, eu gostaria de oferecer um pequeno contraponto ao processo ...

Um dos nossos mais recentes iniciantes é a imagem absoluta da experiência profissional .

Às 9, às 5, uma hora para o almoço. Sem tardes, sem fins de semana.

O que provavelmente soa terrível para a maioria das pessoas que responderam até agora.

No entanto, seu código não é apenas melhor (limpo, conciso, padronizado, compreensível, passível de manutenção, teste dentro do prazo! ) Do que a maioria dos outros membros da equipe, ele também é uma excelente caixa de ressonância para os desenvolvedores apaixonados quando pensam que estão prestes a resolver todos os nossos problemas é uma implantação única, uma fonte de conhecimento e uma sanidade de voz que nos salva de nós mesmos.

Ele sabe como se opor à administração insistente. Ele consegue ver a luneta rastejar uma milha abaixo da estrada. Ele escreve mais testes de unidade do que qualquer outra pessoa. Ele não brinca e geme quando se envolve em uma tarefa chata, e provavelmente ainda estará aqui daqui a cinco anos.

( Para adicionar à minha primeira resposta )

Como você sabe o apaixonado cara é apaixonado além do fato de que ele lhe disse?

Ele pode estar fazendo o seu melhor rosto perspicaz porque ele precisa tão desesperadamente o trabalho, as pessoas vão dizer mais qualquer coisa para conseguir um emprego no momento

Ele pode pensar que é apaixonado por codificação, mas o brilho começará a manchar quando perceber que 99% de nós não escreve código sexy .

A experiência é quantificável e comprovável.

A experiência sabe que no dia-a-dia, a maioria de nós trabalha em sistemas não-sexy e em códigos legados sujos. E a Experience mostra que eles ainda podem sair da cama de manhã para lidar com isso.

Gostaria de reiterar que não estou dizendo a ninguém quem contratar. Não acho que a experiência seja melhor que a paixão ou vice-versa. Não gosto muito de pessoas apaixonadas por codificação, mas acho um pouco preocupante ver a falta de equilíbrio sendo apresentada aqui. Todas as outras respostas votadas aqui apresentam argumentos válidos muito bons (Matthew Kubicina, Usuário 9094, Otávio Décio, Bernard Dy) e eu os votei como tal, mesmo que eu tenha reservas sobre algumas de suas opiniões.

gingerbreadboy
fonte
7
+1 Dito isto, parece que a pessoa em questão é muito apaixonada por codificação. (Eu não acho que haja qualquer / dividir apaixonado profissional, nesse sentido.)
John Parker
9
Ele não passa seu tempo livre escrevendo código. Ele não participa de discussões sobre a opinião de diferentes blogueiros sobre a última moda de codificação. Ele está sempre dizendo às pessoas para parar de tentar torná-lo tão complicado. Ele não é um nerd e o trabalho não é a principal prioridade na vida. Então, como você vê um "somewhat" passionate programmer? A escolha de um diploma e uma carreira em programação não sugere um pouco de paixão? Só porque o candidato não se identifica como um ninja-nerd fanático que adora o StackOverflow, isso não significa apenas que ele não é um nerd total que tem uma vida fora do escritório e? ...
gingerbreadboy
4
Eu mencionei a captura embora In at 9, out at 5, one hour for lunch. No lates, no weekends.. Além disso, alguém que escreve clean, concise, patterned, understandable, maintainable, testable, on timecódigo é realmente bom demais para ser verdade? Ou apenas experiente e profissional?
gingerbreadboy
15
O 9-5 também pode ter experiência em falar. Ao estabelecer a lei, obriga a gerência a planejar adequadamente e a não tentar sobrecarregar o tempo. Horas extras têm uma maneira de se tornar um hábito.
MIA
32
+1 para o cara 9-5! Não subestime o programador, que apenas começa silenciosamente com o trabalho e produz excelentes resultados. Infelizmente, os gerentes tendem a ignorar essas pessoas para quem grita mais alto. Na nossa casa, indo uma semana de atraso e, em seguida, proclamando como duro você trabalhou para terminá-lo tende a ser notado mais do que apenas conseguir o feito no tempo em primeiro lugar.
Qwerky
50

Eu diria que depende do resto da equipe :

  • Se você já tem muitos programadores experientes, escolha os apaixonados

  • se, por outro lado, você tiver apenas um ou dois programadores experientes, além de muitos estudantes / mão-de-obra-barata-com-pouca-experiência-mas-que-não-custa muito, então o experiente será mais útil.

wildpeaks
fonte
13
A menos que o Sr. Experienced esteja entediado, definido em seus caminhos ou seja perturbador. Nesse caso, você tem um desastre em suas mãos. Já vi casos de pessoas com tanta experiência que seu caminho é o único e verdadeiro caminho certo, por isso se recusam a trabalhar segundo os padrões da empresa, discordam da estratégia, reclamam da gerência ... e se tornam corrosivas. A paixão pode ser destruída, mas também é (se aproveitada) uma força poderosa para o entusiasmo e a destruição.
quickly_now
2
Eu concordo completamente. Eu estava prestes a escrever um post sobre a importância da experiência. Um monte de treinamento instantâneo não pode substituir 5 a 10 anos (ou mais) de experiência. Tudo se resume ao programador experiente começar a ver todas as armadilhas imediatamente. Além disso, vejo que programadores inexperientes têm uma tendência maior de criar soluções muito mais complexas. Portanto, se você ainda não tem esse nível de experiência na equipe de desenvolvimento, obtenha-o!
Pete
1
+1 NESTE. Como você pode ver em outras respostas, há razões para escolher uma das duas maneiras. Portanto, escolha a que melhor complementa sua equipe existente e fornece algo que você não tem muito.
precisa saber é o seguinte
20

"Experiente" não significa necessariamente "preso em seus caminhos"

Como desenvolvedor experiente de nível médio (não tenho mais 40 anos), estou um pouco alarmado que a grande maioria das respostas aqui pareçam sugerir que alguém que "esteve lá, fez isso" não sabe como acompanhe os jovens. É uma suposição injusta e perigosa de se fazer.

Eu estaria interessado em saber o que o cara experiente realmente disse. Se ele dissesse "não tenho paixão por codificação", então sim, provavelmente não o consideraria, da mesma forma que provavelmente não consideraria um vegetariano um açougueiro. Se, no entanto, as respostas dele para "o que você faz no seu tempo livre" não eram sobre codificação e o entrevistador sugeria que isso significava que ele não tinha paixão por codificar, é outra coisa completamente diferente.

Note que não estou dizendo que ele deveria contratar um cara experiente ou apaixonado. Não entrevistei nenhum deles e não tenho ideia da cultura da empresa dele.

Do Dictionary.com:
ex · pe · ri · enced / ɪkˈspɪəriənst / Exibir ortografia [ik-speer-ee-uhnst] - adjetivo

  1. sábio ou hábil em um campo particular através da experiência: um professor experiente.
  2. tendo aprendido com a experiência; ensinado pela experiência: experimentado através da adversidade.
  3. suportado; sofrido; sofrido: infortúnios experimentados.
    Origem: 1560-1570; experiência + -ed2

—Formas relacionadas não · ex · pe · ri · encadeado, adjetivo qua · si-ex · pe · ri · encadeado, adjetivo un · ex · pe · ri · encadeado, adjetivo bem ex-pe · ri · encadeado, adjetivo

- Sinónimos 1. habilidoso, especialista, praticado, veterano, realizado, versado, adepto, qualificado.

Wonko, o Sane
fonte
7
Como um veterinário da indústria com quase 40 anos que raramente brinca com o código em seu tempo livre, a menos que tenha um problema muito específico a resolver, obrigado. Você não precisa levar esse trabalho para casa para ser bom nisso.
precisa saber é o seguinte
Há uma diferença entre equilibrar trabalho e vida doméstica e ser apático, com pouca energia e sufocado. Eu não acho que alguém esteja sugerindo que a experiência foi ruim, apenas essa experiência sem dirigir é basicamente como um carro super rápido, sem um posto de gasolina.
precisa saber é o seguinte
12

Como alternativa, escolha aquele com a maior pontuação no StackOverflow: D

picos selvagens
fonte
11

Você deve contratar o que você identifica como tendo o maior interesse em atender às necessidades da sua empresa acima de tudo. Vi casos em que um desenvolvedor muito bom e apaixonado foi contratado apenas para concluir rapidamente tudo o que tinha que fazer pelo empregador pagador e correndo para cuidar de seu próprio negócio.

Otávio Décio
fonte
Elaborar por favor - o que você quis dizer com "cuidar do próprio negócio"?
Job
1
@Job: Eu diria que ele trabalharia em sua própria agenda e faria um trabalho na "zona cinza", ou seja, não explicitamente recomendado nem proibido. Isso pode ser um bom benefício para um projeto com muitos buracos e peças podres, mas geralmente atrapalha o cronograma / roteiro, pelo menos a curto prazo.
quer
9

O consultor de gerenciamento de TI Paul Glen escreveu sobre o conceito de paixão no local de trabalho neste ensaio para a Computerworld . Você pode achar uma perspectiva interessante, embora eu não concorde com a afirmação implícita de Glen de que paixão e estabilidade são mutuamente exclusivas. Eu acho que você pode ter os dois. Eu sugiro que você também navegue nos comentários após o artigo; algumas pessoas tiveram outras idéias.

Dito isto, no seu caso, parece ser uma escolha entre os dois. Mas vamos qualificar o que você quer dizer quando diz "paixão".

Quando o cara experiente diz que não é apaixonado, é que ele não se importa com a qualidade do trabalho ou que a programação simplesmente não é seu primeiro amor (talvez ele tenha uma família? Um interesse ao longo da vida em carros ou música ou cerveja em casa?). Realmente, se um cara experiente não é apaixonado por aprender três novos idiomas além do que ele já conhece, mas ainda acompanha seus principais idiomas, ferramentas e outros e também fabrica cervejas caseiras, acho que posso viver com isso.

Mas se o cara experiente é um péssimo desenvolvedor e não quer melhorar, então eu não chamaria isso de desapaixonado, eu chamaria isso de pouco profissional. Polegares para baixo nesse caso.


EDIT: Depois de ler mais algumas respostas, pensei em adicionar um pouco. Acho que a dificuldade está nos parâmetros da pergunta do OP: não sabemos qual dos dois desenvolvedores é competente . Nosso foco é avaliar duas características aparentemente em desacordo, embora, como mencionei acima, acredito que você possa ter experiência e paixão. No entanto, ambos podem ser coisas ruins também.

Eu trabalhei com um cara experiente uma vez que era inteligente, mas também passou a maior parte de sua vida desenvolvendo-se no vácuo. Passei tanto tempo discutindo com ele quanto fazendo qualquer trabalho. Ele era experiente e apaixonado, mas nenhum dos dois realmente ajudou minha equipe.

Bernard Dy
fonte
3
Sim, eu amo o meu trabalho, mas não sou "apaixonado" o suficiente para puxar repetidas noites inteiras apenas porque algum gerente não consegue agir em conjunto.
Benjol
1
Excelentes pontos, especialmente (IMO) na edição. Para continuar no mesmo caminho, certamente é possível se apaixonar pela codificação, mas ainda fedor. Também trabalhei com esses caras.
Wonko the Sane
5

Se você ler Código Completo, você saberá que:

A experiência não importa tanto quanto você pensa

Isso ocorre porque mesmo os princípios básicos mudam constantemente no campo de software , isso significa que o experiente está preso em seus modos antigos e não está interessado em aprender coisas novas - ano após ano.

O cara apaixonado quase certamente fará isso - mesmo em seu próprio tempo. Eu contrataria paixão pela experiência toda vez

billy.bob
fonte
Bingo. Eu conheço muitos desenvolvedores "experientes" que conhecem um idioma, o idioma em que trabalham agora e uma tecnologia para isso e outra para aquilo ... os que estão usando. Nada mais. E nada mais lhes interessa.
Jürgen A. Erhard
2
Realmente? A comunidade SO não conseguiu inventar uma invenção significativa desde 1980, que afetou o básico do software, pelo menos o IMHO. Alan Kay deve ter uma citação para esse efeito.
justkt
1
@Jae Superficialmente, eu entendo e concordo com você. Mas também conheço alguns desenvolvedores que conhecem várias linguagens e codificam da mesma maneira em todas: mal. Eu acho que a chave é a competência, pois a experiência e a paixão podem ter lados bons e ruins. Se os desenvolvedores de uma equipe são competentes, a experiência e a paixão são características secundárias que simplesmente adicionam textura à composição da equipe.
quer
Não há muito na programação do fluxo principal que não fosse conhecida nos acadêmicos há 20 anos. Com uma educação adequada, não é preciso experimentar as coisas no tempo livre.
precisa
@Sjoerd LINQ - Há 20 anos? Eles podem saber coisas na teoria, mas todos sabemos que a prática é muito diferente
billy.bob
3

Nem

Eu nunca contrataria alguém que não fosse apaixonado por seu trabalho, a menos que fosse uma tarefa bastante servil e talvez nem mesmo nessa época. Normalmente, não ter paixão significa que eles

1) não estão gostando do que fazem:

2) eles estão gastando o valor mínimo, se o tempo necessário para fazê-lo, também conhecido como "É apenas um obstáculo"

3) Você está tirando a atmosfera da sua equipe / empresa em vez de aumentar a sua

Por outro lado, a experiência é de importância crucial para os programadores, um noob apaixonado pode ser capaz de passar as 10.000 horas de experiência necessárias para se tornar um especialista mais rápido, sacrificando sua "vida" e outros hobbies, mas ainda serão necessários alguns anos

Como a experiência vale tanto, dificilmente será compensada economicamente por um salário marginalmente mais baixo. Então eu diria que não, vá com alguém com experiência decente, pelo menos, que seja apaixonado. Quanto mais jovens (porque não têm filhos e esposas traquinas) e mais apaixonados, têm menos experiência que você pode exigir :)

Homde
fonte
3
Isso é uma saída de polícia.
dan_waterworth
Com base nesse argumento, nenhum iniciante seria contratado. Você não pode obter experiência a menos que tenha um emprego.
Konrad Rudolph
somente se você desconsiderar as práticas inadequadas de contratação, e isso é muito importante se;) Existem alguns projetos nos quais você realmente precisa de muitos programadores (mesmo que eles sejam publicados de acordo com a lei de Brooks) onde você pode se dedicar a novos iniciantes. Os iniciantes / novos graduados também têm um grande benefício, pois você pode executá-los trabalhando dia e noite na sua pequena bolha da empresa antes que eles cresçam, saibam melhor e sigam em frente. Essa parece ter sido a estratégia da Microsofts pelo menos nos primeiros dias.
Homde
1
então, como é ser um bastardo cínico? ;-)
Jürgen A. Erhard
Ei, não é como se eu fosse fazer algo assim: P Mas é bom conhecer "práticas" de negócios como essa para evitar se apaixonar por elas. Espero que a maioria tenha senso suficiente para não empregá-los. Além disso, pessoalmente, acredito que contratar menos programadores, mas mais qualificados e altamente recompensadores, faz muito mais sentido para os negócios e é mais agradável para todos.
Homde
2

Resposta simples Vá para Apaixonado

Ele colocará sua paixão em melhorar as coisas e codificará por muito tempo

Fraz Sundal
fonte
... ou até as longas horas de "paixão" pelo ofício levam ao esgotamento precoce. O que ocorrer primeiro.
Wonko the Sane
1

é fácil combinar paixão pelo código e paixão por conseguir um emprego (ou paixão por obter um cheque mensal).

Além disso, é fácil misturar experiência com anos de uso de um cubículo.

De qualquer forma, um programador realmente experiente pode fazer de x2 a x10 que um novato, não importa se o novato tem paixão ou não.

Por outro lado, um iniciante pode gastar muito tempo fazendo perguntas estúpidas, lembre-se, a maioria dos programadores é avaliada por seu trabalho, não por ensinar aos outros.

Magallanes
fonte
1

Parece que você pode precisar de mais informações para tomar uma decisão. Como parte do seu processo de entrevista, os candidatos realmente criaram ou escreveram algum código? Caso contrário, talvez esse seja o seu próximo passo. Pense em um problema simples para eles trabalharem e defina-os nessa tarefa por um curto período de tempo.

Revise seu trabalho com eles posteriormente na entrevista. Veja como eles podem explicar sua solução. Teste-os para ver se conseguem pensar em maneiras de melhorar o que já entregaram.

Na minha experiência, colocar os desenvolvedores em uma "audição" como essa tem sido a melhor maneira de identificar os candidatos que realmente valem a pena contratar.

Jonathan Arbogast
fonte
1

A paixão nem sempre se traduz em habilidades. Às vezes, paixão = arrogância e inflexibilidade.

A experiência nem sempre se traduz em habilidades. Às vezes, experimentamos arrogância e inflexibilidade.

Conclusão: Contrate a melhor pessoa para o trabalho indicado . Isso inclui paixão, experiência, habilidades, personalidade, confiabilidade e não se esqueça da tenacidade.

Conta
fonte
0

No final do dia, a experiência não significa nada sem paixão. Uma pessoa experiente, sem paixão, nunca alcançará todo o seu potencial e não melhorará suas habilidades. O que você vê é o que você obtém, fim da história.

A paixão é um combustível quente e ardente que pode transformar a inexperiência em experiência. A paixão pode ajudar a resolver problemas que os experientes dizem que são insolúveis. Pessoas apaixonadas sempre procurarão melhorar. Pessoas apaixonadas não desistem.

Pessoas experientes que desistiram são como o personagem de Gene Wilder em Blazing Saddles. Ele tinha todo esse reconhecimento como a arma mais rápida do oeste, mas toda essa experiência não significava absolutamente nada, já que ele não conseguia mais segurar sua arma com força para atirar em linha reta.

Uma pessoa experiente que não consegue se manter firme na hora de superar a concorrência só se tornará uma responsabilidade.

Vá com a pessoa apaixonada ou continue entrevistando mais candidatos até encontrar a mistura certa de fogo e sabedoria.

jmort253
fonte
0

Eu sinto que, se você descobriu que, em uma entrevista em experiência, o candidato teve um desempenho tecnicamente bom e ele também gosta de codificar. Portanto, ele será mais produtivo para a sua organização depois de algum tempo se ele for treinado adequadamente em comparação com o candidato à experiência.

Se você quiser comer, teste menos comida cozida por outra pessoa, conscientemente. Finalmente, a escolha é sua.

Mukesh Rathaur
fonte
0

Uau, pessoal, isso provocou muitos debates no final. Decidi dar uma chance ao novato e ele tem uma grande promessa até o momento, a ponto de eu estar tão preocupado que talvez ele esteja trabalhando tão duro que se esgotará.

No final, dei a eles uma tarefa simples de programação de 10 minutos e discuti como eles chegaram à sua solução e outras possíveis soluções, os prós e contras e eu apenas senti que o novato parecia ter um bom entendimento. Então, no final, li muitos artigos, mas senti que o rapaz era uma boa escolha.

Não há nada errado com a experiência, mas muitos programadores vão trabalhar e passam o tempo sonhando acordados. Você não precisa codificar no seu tempo livre, muitos de nós precisam, mas isso não é obrigatório. Um programador competente deve gastar suas 40 horas de trabalho por semana, resolvendo problemas e mantendo-se atualizado com suas ferramentas. A verdade, porém, é a divisão entre grandes e médios programadores, porque nessa profissão um indivíduo pode simplesmente se distrair e ser apenas um astronauta da arquitetura.

Muito obrigado a todos

Duque
fonte
4
Gosto de como você responde sua própria pergunta (ou realmente não) e depois a aceita.
pemdas
0

A IMO depende de por que a pessoa não apaixonada perdeu sua paixão. Eles tinham? Eles preferem fazer arquitetura do que brincar com APIs e loops? Eles acabaram de sentir azar em ver código ruim / gerenciamento ruim que os fez parar de se importar? Não descarte alguém que diga "Não sou apaixonado por meu ofício", pois pode haver razões válidas. Mesmo a pessoa mais apaixonada perde rapidamente o fogo quando se choca contra as paredes toda vez que tenta demonstrar paixão. Como o hamster que fica chocado, eventualmente eles aprenderão a rebocar a linha do partido e a paixão se perderá.

Wayne Molina
fonte
-1

Eu acredito que a paixão é superestimada como um ponto de seleção para um programador. Contrate aquele que você acha que permanecerá no trabalho por mais tempo.

leed25d
fonte
Bem pelo contrário, eu acho - desenvolvedores não apaixonados (isso é uma palavra?) Tendem a ser desenvolvedores preguiçosos, na minha experiência. Eles não se importam em fazer o trabalho corretamente, apenas se importam em fazê-lo.
sevenseacat
@ leed25d - Não sei se concordo. A última coisa que quero na minha equipe é um bando de gatos gordos sentados sugando todo o oxigênio e desperdiçando espaço.
precisa saber é o seguinte
Vocês dois estão falando sobre energia, não paixão, me parece. Eu mantenho minha afirmação de que 'paixão' é uma palavra da moda nos dias de hoje.
precisa saber é o seguinte
3
Nunca contrate alguém que não se importe com o que faz. Ele será exibido no seu produto.
Nicole
1
A programação é uma mistura de habilidade técnica e criatividade - os programadores sem paixão estão perdendo metade dessa mistura. Em casos extremos, mesmo que suas habilidades comecem bem, elas degeneram rapidamente.
precisa saber é o seguinte
-1

Eu iria com o cara apaixonado, pois ele está disposto a aprender e acrescentaria ótimos resultados se orientação e motivação adequadas fossem dadas a ele.

A programação é sempre 2 + 2 = 4. Isso nunca vai mudar, e o cara apaixonado adicionaria mais resultados com mais maneiras de produzir o mesmo resultado 4.

Thalaivar
fonte
A menos que seu chefe se chame O'Brien.
chiurox
@chiurox: Se eu sou o chefe, eu sempre prefiro o cara apaixonado.
Thalaivar