Solicitando uma amostra de código da empresa em uma entrevista [fechada]

69

Pedir a um candidato a emprego que mostre algum código é uma prática bastante comum para uma empresa de software. No entanto, seria aceitável que o candidato pedisse ao entrevistador que lhe mostrasse um pequeno pedaço de código que ele acha que está bem escrito?

Simon Bergot
fonte
14
Eu prefiro perguntar sobre padrões de codificação, revisões de código, etc.
user16764
5
A empresa passa no "teste Joel": joelonsoftware.com/articles/fog0000000043.html
Martin York
2
@LokiAstari, o teste joel não se refere diretamente à cultura de codificação (apenas ambiente de trabalho).
Simon Bergot 29/08/2012
8
@ user16764 é como fazer perguntas teóricas ao candidato: é um bom primeiro passo, mas na verdade não mostra como ele aplica esse conhecimento.
Simon Bergot 29/08/2012
2
programmers.stackexchange.com/questions/160922/… Semelhante a esta pergunta.
Anónimo

Respostas:

69

Eu sempre peço para ver algum código, por vários motivos:

  • Eu quero saber no que estou entrando. É claro que nenhuma empresa de software é perfeita, e eu não espero que todos produzam maravilhas de elegância o tempo todo (porque eu também não), mas se eu pedir o melhor código de uma empresa, e tudo o que eles podem me mostrar é um sub-par de espaguete, eu sei que estou passando um tempo miserável, desembrulhando bolas de pêlo e lutando contra a dívida técnica para fazer qualquer coisa. Analisar o melhor código que uma empresa pode mostrar estabelece um limite superior de que tipo de qualidade é possível lá; mesmo que seja improvável que todo o código pareça com isso, você ainda sabe que é algo pelo qual eles se esforçam.
  • Observar exemplos de código me diz muito sobre a cultura de codificação de uma empresa. Eles usam comentários da documentação? Eles se inclinam para um estilo orientado a objetos, têm tendências de programação funcional? Eles são conservadores ou progressivos? Eles valorizam nomes consistentes, formatação e recuo adequados e código puro em geral? É fácil seguir o código? Como eles estruturam seus projetos? Como eles abordam as coisas importantes - teste automatizado, tratamento de erros etc.? Quão defensivo é o seu estilo de codificação?
  • A visualização do código existente permitirá que você julgue se consegue cumprir os padrões deles .
  • O fato de uma empresa estar disposta a compartilhar apenas amostras de código é um bom sinal em princípio. Isso significa que eles oferecem a mim, solicitante, alguma confiança , já que a base de código é um dos ativos mais valiosos. Isso também significa que eles não têm vergonha de seu código, que estão confiantes de que me mostrar o código ajudará a me interessar em trabalhar com eles.
  • Se eles não mostrarem nenhum exemplo de código, isso não precisa ser uma bandeira vermelha, mas é aconselhável perguntar por que eles não compartilharão (provavelmente, eles simplesmente não podem por razões legais), bem como explique por que você deseja ver alguns. Eu não acho que mostrar interesse no código deles seja visto como um sinal negativo, desde que você pergunte educadamente e positivamente.

E depois há mais alguns efeitos colaterais:

É improvável que as empresas que concordam em mostrar seu código apenas me enviem um pacote de arquivos de origem contendo a versão mais recente de toda a sua base de código, por motivos óbvios. Se eles me mostrarem algum código, farão isso na forma de uma pequena demonstração, o que é ótimo: significa que posso conversar com um de meus colegas em potencial, isso permite que eu faça mais perguntas sobre sua cultura de codificação, processos, e base de código e, idealmente, ajudará a iniciar uma discussão profissional na qual eu possa demonstrar habilidades e conhecimentos e aprender mais sobre o ambiente de trabalho. Isso também significa que eu analiso as ferramentas que eles usam, o que também é bastante perspicaz - por exemplo, se o projeto que eles me mostram depende muito de um IDE específico, isso significa que todos usam isso, o que pode ser bom ou ruim. E finalmente,

tdammers
fonte
11
Se o empregador em potencial mostrar um código claramente ruim, lembre-se de que pode ser uma oportunidade para levá-lo a melhorar seu código e processo. Como diz o velho ditado "só posso estragar tudo, mas posso consertar quebrado!". Além disso, lembre-se de que o código mostrado ao candidato ou por ele foi provavelmente submetido a muito mais rigor e revisão do que outro código.
Akton
@akton É minha atitude em relação ao código incorreto. No entanto, é inútil quando você está sozinho em sua missão "consertar código desarrumado". Pedindo para ver um bom código poderia ajudar a sentir-se se os seus futuros coisas de valor equipe como SOLID
Simon Bergot
11
"Eu sempre peço para ver algum código" Mas como é que você realmente mostra o código? Você está pedindo que eles preparem algo de antemão ou depois enviem algo para você? Não importa para que lado você olha, parece impraticável.
Burhan Ali
11
@BurhanAli: eu apenas pergunto. Muitos se recusam a me mostrar, e geralmente me dão boas razões, o que é bom. Aqueles que concordam me fazem um tour supervisionado; Duvido que alguém me envie um conjunto completo de fontes para procurar, mas clicar no projeto em um IDE enquanto assisto é geralmente aceitável.
tdammers
Em muitos casos, acho que o código que realmente gostaria de ver seria considerado fechado como vantagem competitiva. Esse será o código que mais importa para mim ... no entanto, se eles concordarem em mostrar o código e é péssimo, provavelmente é um sinal de que eles não entendem um bom código. Se eu fosse um líder, provavelmente não mostraria nenhum código interno não trivial. Apenas eu.
Rig
14

No entanto, seria aceitável que o candidato pedisse ao entrevistador que lhe mostrasse um pequeno pedaço de código que ele acha que está bem escrito?

Suponho que isso se enquadre em todo o mantra 'entrevistas são bidirecionais', mas eu não esperaria obter nenhum. As preocupações com propriedade intelectual são a questão mais óbvia depois do fato de que não há computador na sala de entrevistas, e trazê-lo para um é meio estranho.

Além disso, eles apenas escolherão o código mais bonito e menos significativo possível. O melhor código não é realmente um problema, o pior é. É a mesma razão pela qual a obtenção de amostras de código dos candidatos é quase inútil.

Telastyn
fonte
10
Ainda é útil ver se eles podem escolher um bom código para mostrar a você. A parte mais frustrante de lidar com código incorreto geralmente é que ninguém reconhece que ele é ruim e deve ser corrigido.
JGWeissman
5
Além disso, a ideia de bom código do entrevistador pode não ser sua. Eu acho que seria útil descobrir isso mais cedo ou mais tarde.
Eric King
11
Infelizmente, quando tentei usar a abordagem "as entrevistas são bidirecionais", a maioria dos empregadores ficou aborrecida. Ainda não recebi o código. A outra coisa que pedi para ver é um modelo de dados, mas também não há sorte.
Antonio2011a
12

seria aceitável que o candidato pedisse ao entrevistador que lhe mostrasse um pequeno pedaço de código que ele acha que está bem escrito?

Você pode perguntar o que quiser, mas:

  • Você provavelmente não vai entender.

  • Se você conseguir, não lhe dirá nada de útil. Se 10% do código for bonito e o restante for espaguete, você ainda estará lidando principalmente com espaguete.

  • Você vai parecer uma calça inteligente. Isso não é uma grande ajuda se você finalmente decidir que gostaria de trabalhar lá.

  • É uma perda de tempo precioso para entrevistas.

  • Existem maneiras melhores de descobrir o que você quer saber. Faça perguntas como:

    • Quais são os indicadores mais importantes da qualidade do código?
    • Manterei principalmente o código existente ou gravarei um novo código?
    • Você pode explicar brevemente como seu sistema funciona?
    • Você tem um documento sobre padrões de codificação e todo mundo o segue?
Caleb
fonte
Bom ponto! Infelizmente, fazer uma pergunta como "Quais são os indicadores mais importantes da qualidade do código?", Também pode ser percebido como um problema. (Na minha perspectiva, é uma pergunta razoável, mas muitos empregadores não gostam de sentir que estão sendo interrogados por um potencial subordinado).
Antonio2011a
2
@ Antonio2011a Deve ficar bem se você perguntar direito - talvez "que métricas de qualidade de código você procura aqui?" apenas deixe claro que deseja aprender mais sobre como eles fazem as coisas. Você está aprendendo sobre eles, não administrando um teste. Poderia funcionar mesmo ao solicitar código: "Posso ver como é o seu código?" em vez de "Gostaria de uma amostra do que você considera um bom código".
Caleb
3

Bem, isto depende. Sempre gostei de saber onde vou trabalhar.

Eu vejo uma entrevista de emprego como bidirecional. A empresa descobre sobre você e você descobre sobre a empresa. Pedir código pode ser um pouco demais, mas fazer perguntas relacionadas ao desenvolvimento deve ser bom.

Por exemplo, eu não aceitaria um trabalho em que a empresa não use técnicas ágeis ou TDD ou não planeje abraçar e incentivar essas práticas. Também aprecio quando uma empresa se orgulha de seu produto e seu código - quando parece que o entrevistador está esperando que você peça para vê-lo, para que ele tenha uma desculpa para explicar todas as coisas legais que eles fazem.

Patkos Csaba
fonte
Acordado. Eu tento me aprofundar nas ferramentas que eles usam? A gerência paga por ferramentas extras (componentes, utilitários) que muitos lugares não pagam. A atitude em relação às ferramentas de código aberto também é sempre boa.
ozz
2

Haha, essa é uma pergunta engraçada. Eu não ficaria ofendido se alguém me pedisse uma amostra de código enquanto eles estavam entrevistando, mas eu provavelmente também não mostraria nenhum código, a menos que eles tivessem solicitado com antecedência e eu tivesse tempo para planejar cuidadosamente.

Definitivamente, eu entendo a intenção de fazer essa pergunta. Como candidato a emprego, já pedi o teste Joel a um entrevistador antes. Eles não sabiam o que era, mas ficaram felizes em responder.

Em alguns lugares, fazer esses tipos de perguntas pode melhorar suas chances, enquanto isso pode prejudicá-las em outros lugares. A beleza da vida é que, se melhorar suas chances, esse é o tipo de lugar em que você gostaria de trabalhar. Se isso prejudicar suas chances, você não teria desejado esse trabalho de qualquer maneira.

Não vejo nada a perder perguntando educadamente e sendo capaz de explicar por que você quer vê-lo.

Mark E. Haase
fonte
"A beleza da vida é que, se melhorar suas chances, esse é o tipo de lugar em que você gostaria de trabalhar". +1
Spidey
2

Fiz essa pergunta nas minhas duas entrevistas em que eles alegaram que tinham desenvolvedores seniores migrando para o asp.net mvc3 ou 4 ou quando disseram que desejam código fortemente comentado. Rejeitei em ambas as ocasiões devido à falta de conhecimento sobre o padrão de código real. O único padrão que encontrei foi se ele funciona, copie e cole e funcionará. Não vou fazer essa pergunta se estou fazendo um novo projeto ou tenho que escrever um pedaço de código independente dos outros membros da equipe. Definitivamente vou ver o código se estou sendo contratado para consertar um software ou função existente e não vou dizer sim, a menos que saiba a resposta. Suponha que você não pergunte e eles dizem que você pode corrigir o datepicker para começar a partir da data de hoje. Quando você olha para o código legado, não vê jquery ou jquery ui, mas um seletor de datas personalizado com todas as datas armazenadas no arquivo xml e todas as noites um trabalho cron é executado para atualizar os meses futuros. Isso iniciaria a dor de cabeça, pois o código para isso é menor que as palavras neste exemplo. Se você for trabalhar no código deles, peça para vê-lo. Não perguntar é como citar um emprego acreditando que o cliente disse que é pequeno. Ele pode possuir 20 acres de terra e a jardinagem em 1 hectare é pequena para ele, mas a Gardner não pode cobrar 50 libras apenas porque todos os seus pequenos trabalhos começam a partir de 50.

Farrukh Subhani
fonte
1

Costumo trabalhar para empresas onde pelo menos parte do trabalho deles é de código aberto, por isso é trivial encontrar exemplos de código. Eu descubro quem trabalha na empresa e, em seguida, identifico suas alças on-line. Como as pessoas tendem a usar o mesmo nome de tela repetidamente, é fácil descobrir onde eles comprometeram o código, estejam eles no Github, Bitbucket ou em outro lugar completamente.

Minha empresa atual tem uma tonelada de código hospedado no Github, então foi fácil ver com o que eles trabalham, qual o tamanho de sua base de códigos e o que parece não ser mais interessante.

Eu nunca pediria uma amostra, simplesmente porque eles vão mostrar o melhor código que eles têm. Este não é o código com o qual você estará trabalhando. Provavelmente está alojado em uma redoma de vidro em uma sala trancada. Você estará trabalhando com o código confuso que muitas pessoas tiveram que mexer.

kcunning
fonte
0

Isso é incrível se você conseguir. Às vezes, não é possível sem acordos do tipo NDA, mas é sempre bom tentar. Para aumentar suas chances, informe aos entrevistadores que você deseja isso com antecedência (alguns dias) para que eles possam ter algo em mente para lhe mostrar.

anon
fonte