Perguntas que todo bom desenvolvedor .NET deve ser capaz de responder? [fechadas]


246

Minha empresa está prestes a contratar desenvolvedores .NET . Trabalhamos em uma variedade de plataformas .NET: ASP.NET, Compact Framework, Windowsforms, Web Services. Gostaria de compilar uma lista / catálogo de boas perguntas, uma espécie de padrão mínimo para verificar se os candidatos são experientes. Então, minha pergunta é:

Que perguntas você acha que um bom programador .NET pode responder ?

Eu também veria isso como uma lista de verificação para mim, para ver onde estão meus próprios déficits (existem muitos ...) .

texto alternativo

* ATUALIZAÇÃO: Ele quer deixar claro que não estamos testando apenas o conhecimento do .NET e que os recursos de solução de problemas e as habilidades gerais de programação são ainda mais importantes para nós.

Respostas:


171

As perguntas básicas incluem:

Acho que geralmente ajuda pedir aos candidatos que concluam um exercício de codificação simples, como:

  • Escreva sua própria classe de lista vinculada sem usar as classes internas.
  • Escreva sua própria classe de hashtable sem usar as classes internas.
  • Escreva uma classe que represente uma árvore binária. Escreva um método que atravesse todos os nós da árvore.
  • Escreva um método para executar uma pesquisa binária em uma matriz sem usar métodos internos.
  • Desenhe um esquema de banco de dados para um blog. Cada usuário possui apenas um blog, cada blog possui muitas categorias, cada categoria possui muitas postagens e cada postagem pode pertencer a mais de uma categoria. Peça ao seu candidato que faça consultas para obter informações específicas.

Em seguida, procure conhecimento técnico específico:

  • (Manipuladores de eventos) Crie uma classe com um manipulador de eventos personalizado, crie outra classe que se conecte ao manipulador de eventos personalizado.
  • (XML) Carregue um documento XML e selecione todos os nós com as propriedades x, ye z.
  • (Programação funcional) Crie uma função que aceite outra função como parâmetro. Uma função Mapa ou Dobra funciona muito bem para isso.
  • (Reflexão) Escreva uma função que determine se uma classe tem um atributo específico.
  • (Regex) Escreva uma expressão regular que remova todas as tags de um bloco de HTML.

Nenhuma dessas perguntas é particularmente difícil para um programador de C # proficiente responder, e elas devem fornecer uma boa idéia dos pontos fortes específicos de seus candidatos. Você também pode trabalhar em algumas perguntas / amostra de código que fazem uso de padrões de design específicos.

[Editar para esclarecimentos] :

Parece que muitas pessoas não entendem por que eu faria esses tipos de perguntas. Deixe-me tocar em alguns comentários das pessoas (não estou citando diretamente, mas parafraseando):


P: Quando foi a última vez que alguém usou referências voláteis ou fracas?

R: Quando dou entrevistas técnicas, procuro verificar se uma pessoa entende os recursos de alto e baixo nível do .NET. Voláteis e referências fracas são dois recursos de baixo nível fornecidos pelo .NET - mesmo que esses recursos não sejam usados ​​com frequência na prática, as respostas a essas perguntas são extremamente reveladoras:

  • Um bom entendimento dos voláteis demonstra que uma pessoa entende como as otimizações do compilador alteram a correção do código, como os threads mantêm cópias locais do estado compartilhado que podem estar fora de sincronia a qualquer momento e tem um conhecimento mínimo de algumas das complexidades do código multithread .

  • Um bom entendimento de referências fracas demonstra que uma pessoa conhece os detalhes íntimos do coletor de lixo e como ele decide quando liberar memória. Claro, você pode perguntar aos candidatos "como funciona um coletor de lixo", mas perguntar sobre referências fracas obtém uma resposta muito melhor e mais ponderada.

O .NET é uma linguagem bastante abstrata, mas os desenvolvedores famosos quase sempre têm um profundo entendimento do CLR e dos detalhes de baixo nível do tempo de execução do .NET.


P: Por que alguém precisaria implementar sua própria lista hashtable ou vinculada?

R: Não estou sugerindo que a classe Dictionary seja inferior ou que as pessoas devam usar sua própria hashtable. Essa é uma pergunta básica que testa se uma pessoa tem um entendimento mínimo das estruturas de dados. É para isso que essas perguntas testam: entendimento mínimo.

Você aprende sobre essas hashtables e listas vinculadas no primeiro dia do Data Structures 101. Se alguém não puder escrever uma hashtable ou uma lista vinculada do zero, haverá uma enorme lacuna no conhecimento técnico.


P: Por que essas perguntas são tão cruas?

R: Como o título deste segmento é "perguntas que todo desenvolvedor .NET bom deve saber". Todo desenvolvedor .NET inicia sua carreira escrevendo aplicativos rudimentares, e 90% de todo o pessoal de desenvolvimento de aplicativos vive da vida com aplicativos de linha de negócios.

Acho que as perguntas que testam o conhecimento das pessoas sobre aplicativos de linha de negócios são apropriadas na maioria dos casos, a menos que você esteja procurando desenvolvedores em nichos muito específicos, como desenvolvimento de compiladores, desenvolvimento de mecanismos de jogos, provas de teoremas, processamento de imagens etc. .


8
Acho que sua lista é uma boa maneira de investigar pontos fortes e fracos, mas não é um conhecimento "básico". Como Greg aponta, fui enganado por operadores "em curto-circuito", mesmo sendo simples e os uso com frequência: acabei de esquecer o nome. Isso me desqualificaria?
22430 Mark Brittingham

33
Da mesma forma, nunca declarei uma variável "Volátil" e faço muito pouco com XML e, portanto, não consegui concluir sua tarefa de programação. E, no entanto, sou um autor publicado, ganhei um grande concurso de programação e escrevi 4 produtos de sucesso que ganharam grandes prêmios.
22630 Mark Brittingham

24
Portanto, não discordo necessariamente de sua lista - apenas discordo de sua caracterização dos itens de conhecimento como "Básico". Nenhum é um conceito difícil - mas alguns são bem específicos e não serão familiares para um bom número de candidatos. Ainda - novamente - por favor, aceite minhas desculpas.
22430 Mark Brittingham

39
Metade dos itens desta lista são perguntas triviais. Isso não ajudará a encontrar pessoas boas, mas pode irritar algumas delas o suficiente para sair da sua entrevista.
21419 Jason Kester

15
(Regex) Write a regular expression which removes all tags from a block of HTML.- Eu
sinto cheiro de

135

Eu encontrei estas listas em Scott Hanselman 's do blog :

Aqui estão as perguntas mais importantes desses posts, divididas em categorias. Eu os editei e reorganizei. Felizmente, para a maioria dessas perguntas, já existe uma boa resposta no Stack Overflow. Basta seguir os links (vou atualizá-los todos o mais rápido possível) .

Perguntas .NET independentes da plataforma

ASP.NET


8
Eu sei que os desenvolvedores sabem tudo isso e ainda não enxergam além do livro. A mente aberta é muito importante, além disso, não tente obter muitas respostas detalhadas, apenas verifique se elas entendem o conceito.
Saif Khan 29/08

Eu envelheço, Saif. Mas, por outro lado, se você não souber os detalhes, não poderá aplicar corretamente os "conceitos".
splattne

2
Algumas perguntas são realmente estúpidas, como qual é a diferença entre as versões Debug e Release. Sim, o Visual Studio predefiniu algumas configurações de compilação, mas essa não é uma pergunta independente de plataforma. Alguém que compila por linha de comando ou usando o Mono, pode não ter idéia do que você está falando.
Lubos Hasko

3
Você é capaz de descrever conceitos que geralmente levam 2 páginas ou mesmo um capítulo de um livro, de maneira articulada em uma situação de entrevista. Eu não posso, sem ensaiar-los de antemão
Chris S

1
Tente não pedir às pessoas para definir termos. Você acabará com os especialistas em CS que precisaram memorizá-los para os testes, mas perderá as pessoas que realmente sabem como programar. Lembro-me de ter sido perguntado uma vez o que era "deferência". Eu não tinha a primeira pista, apesar de ter feito isso 30 vezes por dia naquela época.
21419 Jason Kester

94

Pode não ser o que você deseja ouvir, mas eu recomendaria não focar em tecnologias estreitas, mas em habilidades gerais de programação e solução de problemas. Desenvolvedores sólidos podem aprender o que você quiser que eles façam rapidamente.

Eu, por exemplo, não sou um cara do Compact Framework, por isso posso falhar na sua entrevista se você for nessa direção. Mas se eu precisasse usá-lo, poderia fazer alguma pesquisa e entrar direto.

O livro de Joel, Smart and Gets Things Done , oferece ótimos conselhos para a contratação de desenvolvedores e há grandes seções interessantes sobre os tipos de perguntas a serem feitas. Eu recomendo.


Talvez parte do processo de contratação deva ser um problema no Cardspace ou algo que eles nunca viram!
Jennifer

Talvez, mas há o problema da pesquisa, então acho que pode ser injusto. Estou mais interessado em ver como eles pensam sobre os problemas e talvez vê-los codificando algo abstrato para que eu possa descobrir se eles falam código nativamente ou não.
Brian MacKay

Se eu pudesse escolher cerca de duas pessoas que possuem habilidades gerais de programação e solução de problemas, por razões práticas, escolhi aquela com melhor conhecimento e experiência em .NET.
splattne

Conhecimento em .NET certamente, mas quando se trata de tecnologias mais restritas, acho que você pode acompanhar o programador com as habilidades de resolução de problemas.
1313 Jennifer

5
Sim, todos nós temos que conhecer toneladas de "tecnologias estreitas". Mas para todos que conhecemos, há um monte que não conhecemos (geralmente porque não precisamos deles). Estou dizendo que você não quer perder um ótimo desenvolvedor por não conhecer o SharePoint, pois em breve ele poderá ser seu melhor cara do SharePoint.
27411 Brian Brian MacKay

66

Eu acho que se eu estivesse entrevistando alguém que teve experiência LINQ, eu possivelmente apenas pedir-lhes para explicar LINQ. Se eles puderem explicar a execução adiada, o streaming, as interfaces IEnumerable / IEnumerator, foreach, blocos iteradores, árvores de expressão (para pontos de bônus, enfim), provavelmente poderão lidar com o resto. (É verdade que eles poderiam ser desenvolvedores "ok" e não "obter" o LINQ ainda - estou realmente pensando no caso em que eles alegaram conhecer LINQ suficiente para torná-lo uma pergunta justa.)

No passado, eu fiz várias das perguntas já listadas, e algumas outras:

  • Diferença entre os tipos de referência e valor
  • Passagem por referência vs passagem por valor
  • IDisposable e finalizadores
  • Strings, imutabilidade, codificação de caracteres
  • Ponto flutuante
  • Delegados
  • Genéricos
  • Tipos anuláveis

1
Sim, eu queria ver esse tipo de resposta. Bom candidato para ser aceito. Alguém melhor?
splattne

5
@ splattne: não seja bobo, esta é uma resposta de Jon Skeet, então aceite-a. É inevitável.
Steven A. Lowe

3
Eu estava prestes a dizer ... wt ... você não questiona Skeet!
Saif Khan 29/08

1
Esta é uma resposta muito melhor do que a aceita. Ele ajuda a entender se alguém tem um conhecimento profundo em uma área de suposta experiência, além de investigar o conhecimento de recursos de idiomas com uma gama bastante ampla.
22430 Mark Brittingham

1
Esta resposta supera a criação de sua própria lista vinculada, "analise HTML com regexp" ou "Quanto você sabe sobre o Assembly, GAC, etc ..." porque aborda as ferramentas e conceitos que você deseja realmente usar durante o desenvolvimento. O conhecimento íntimo do LINQ também é essencial. Eu já vi muitos casos neste site em que as pessoas estão tentando lançar sua própria versão do Union Distinct e Concat para coleções porque não entendem o LINQ.
Evan Solha

42

Eu estou com os caras que procuram habilidades de resolução de problemas, e não o tipo de coisa que você pode procurar e memorizar nas 101 perguntas e respostas mais importantes da entrevista .NET. "

Apenas para me citar como exemplo, eu tendem a "saber" as coisas que preciso usar no dia a dia. Costumo esquecer (e mais tarde ter que olhar novamente) coisas que raramente uso.

Se você quisesse me fazer uma entrevista, seria muito fácil.

No entanto, eu arquitetei e codifiquei grande parte da infraestrutura de um sistema que usa camadas idênticas de objetos de negócios e dados para suas encarnações WinForms e ASP.NET, e nossa base de código é robusta e reutilizável o suficiente para que possamos suportar e desenvolver mais de 20 versões configuradas de maneira diferente do site, bem como um número crescente (atualmente 5) do aplicativo WinForms ...

... com uma equipe de desenvolvimento de dois.

Eu trabalhava em equipe como líder técnico, e meu trabalho envolvia bastante recrutamento e entrevistas. Meu erro mais espetacular foi contratar um cara que sabia mais sobre a tecnologia que estávamos usando do que todos nós juntos, inclusive eu, e eu me considerava um especialista. Ele sabia de tudo ...

... exceto como escrever código que atenda aos requisitos ou possa ser entendido por qualquer pessoa, exceto ele próprio. Quando finalmente convenci o primeiro-ministro a não renovar seu contrato, tudo o que ele escreveu tinha que ser reescrito.

Estruture suas entrevistas com sabedoria ...


1
Essa é uma observação realmente interessante. Tivemos a situação oposta: uma pequena camarilha de desenvolvedores que sabiam menos que outros, mas que convenceram a gerência de que sabiam mais. Eles propuseram uma classe de abstração de dados que eu argumentava ser impossível (fui criticado por não ser um "jogador da equipe").
Mark Brittingham

-continuado - após 4 meses de esforço "skunk works", eles apresentaram à equipe .... seus papéis de transferência para outro departamento - e sem código. O resto da equipe teve que pegar as peças.
23410 Mark Brittingham

1
Conclusão: eu realmente gosto da sua observação de que o conhecimento específico das construções de codificação não é uma garantia de capacidade de criar software funcional que atenda às necessidades do cliente.
23410 Mark Brittingham

34

Quem é Jon Skeet?


11
Ou melhor: você é Jon Skeet? ;-)
splattne 14/12/08

essa é realmente uma boa pergunta para posições em C #. Considerando que Jon Skeet agora possui o stackoverflow / google busca por C # relacionado. Se você não sabe quem ele é agora, você é Jon Skeet ou não está programando em C #.
Lubos Hasko

2
Sem ofensa para Jon Skeet - mas acho que Rick Strahl tende a mostrar-se com as respostas mais frequentes para os tipos de questões que eu me deparo ..
Andrew Theken

1
@ [Andrew Theken]: reproduzirei as porcentagens nesse ;-) google para "Rick Strahl" gera 38.500 hits, "jon skeet" produz 144.000. Além disso, Rick Strahl não publica no SO AFAIK.
Steven A. Lowe

1
os dois caras são ótimos no que fazem ... nosso ganho.
GR7 22/01/10

33

Boas perguntas que me foram feitas são

  • O que você acha que é bom no .NET?
  • O que você acha ruim sobre o .NET?

Seria interessante ver o que um candidato apresentaria e você certamente aprenderá bastante sobre como ele / ela usa a estrutura.


18

Eu sempre procurava as habilidades pessoais - sem trocadilhos. Tão bom design de OO, desenvolvimento orientado a testes, um bom conhecimento multilingue (de programação) e inteligência geral geral (e eu acho que estou conseguindo fazer as coisas!).

Um desenvolvedor inteligente não deve ter nenhum problema em aprender as tecnologias individuais que você precisa que elas conheçam, mesmo que nunca as tenham visto antes - então eu não me preocuparia muito com perguntas específicas sobre o WCF / estrutura compacta e similares.

Eu gostaria que eles escrevessem algum código - a melhor maneira de descobrir o que sabem e como funcionam. Qualquer pessoa pode memorizar a resposta para 'Qual é a diferença entre um tipo de referência e um tipo de valor?'


2
Spot on. Fazer perguntas rotineiras está causando problemas. A empresa em que trabalho faz a velha pergunta técnica, mas principalmente é: eu tenho esses problemas, aqui está um quadro branco, mostra como você os resolveria. Assustador, mas eficaz.
21420 Chris Brooks

4
... mas se você não os resolver da maneira que o entrevistador espera, você falha.
Gbjbaanb

1
@gbjbaanb às vezes. Mas se for esse o caso, talvez você não queira trabalhar lá de qualquer maneira. Lembre-se, você também está entrevistando a empresa. Conheço algumas empresas que falharam na entrevista!
Tony Ennis

13

Honestamente?

"O que é o .NET?"

Se eles podem lhe dar uma resposta clara sobre o que é .NET e o que não é, como é usado, quais elementos são compostos, etc. Se eles podem convencê-lo de que sabem o que é, então é possível que conheço muito bem.

O fato é que muitas pessoas realmente não sabem o que é .NET. Mesmo aqueles que escrevem programas para isso.


11

Nenhuma, realmente. Provavelmente, existem perguntas muito simples para as quais as pessoas mais inteligentes do mundo não sabem as respostas. Não porque são difíceis, mas simplesmente porque simplesmente não se depararam com isso. Você deve examinar todo o pacote e a habilidade do desenvolvedor, não se ele pode responder a uma pergunta arbitrária.

Se a pergunta é fácil o suficiente para ser respondida em uma ou duas frases, é fácil dizer a alguém que não conhece. Você deve procurar a compreensão dos conceitos e da capacidade de raciocínio, e não a capacidade de responder perguntas "que todo desenvolvedor .NET deve poder responder".


10

Conheça a diferença entre os tipos de referência e valor.

Saiba que os eventos são armazenados como referências concretas (ou seja, lembre-se de cancelar o registro de eventos ou o aplicativo vazará memória).

Strings são imutáveis.



4

Sugiro perguntar sobre blogs que eles leem regularmente e projetos de programação pessoal nos quais eles trabalharam, pois isso mostra uma vontade de aprender e uma paixão pela programação.


3

Aqui estão alguns que eu usei para filtrar programadores que se candidatam a empregos como programadores de C #:

Qual é a diferença entre um tipo de referência e um tipo de valor?

Explique a interface IDisposable, que construção de linguagem C # requer e como você a implementaria.

Que exceção você lançaria se um nulo fosse passado como argumento para um método que possui um contrato que não permite nulos para esse parâmetro?


Meu código normalmente lançaria uma NullReferenceException.
Joshua

5
@ Josué, ArgumentNullException você falhou.
Nicolas Dorier

3

"Qual dos ASP: quaisquer controles que você usaria na produção e por quê?"

Isso lhe dirá rapidamente se o seu assunto já construiu e manteve um projeto grande por tempo suficiente para se queimar pelo DataGrids e LinkButtons, ou se ele ainda está na fase de arrastar / soltar "ensine a si mesmo em 21 dias".

(a resposta é asp: repetidor, asp: PlaceHolder, asp: literal e asp: conteúdo)



2

Essa é uma pergunta um pouco variável, e não é realmente uma que você deva responder completamente agora, mas que deve poder responder quando apropriado:

"O que a estrutura .NET oferece para executar a tarefa X?"

Ou mais especificamente:

"A estrutura .NET inclui um objeto que faz X?"

Por exemplo, recentemente passei algumas horas desenvolvendo um objeto que é otimizado para armazenar uma matriz de booleanos e operá-la, como executar um NOT, OR, XOR e AND em termos de coleção, definir todos os valores etc. Não era ' Até que terminei de escrever todos os meus testes de unidade e ajustá-lo para obter o melhor desempenho possível, percebi que meu objeto "BoolArray" já existia na estrutura .NET sob o nome "BitArray".

Pode ser difícil responder, pois muitas vezes a melhor resposta sobre qual objeto / auxiliares usar é aquele que você não conhece ou não entende completamente. Como seria maravilhoso o mundo .NET se todo mundo soubesse mesmo sobre o simples StringBuilder, uma ferramenta básica que pode aumentar quantidades significativas de desempenho.


2

Vou sugerir algumas perguntas focadas na compreensão dos conceitos de programação usando dotnet como

Qual é a diferença entre ambiente gerenciado e não gerenciado? Prós e contras do GC Prós e contras do JIT Se precisamos desenvolver o aplicativo X, podemos usar o dotnet? Por que? (isso identificará como ele vê o dotnet)

Sugiro também que você escreva métodos pequenos e peça a ele para reescrevê-los com melhor desempenho usando melhores classes dotnet ou maneiras padrão. Escreva também métodos incorretos (em termos de qualquer) lógico ou o que for e peça a ele que os corrija.


2

Sou fã do seguinte, além de algumas das perguntas já mencionadas:

  • O que é um delegado?
  • Qual é o domínio do aplicativo?
  • Quando você usaria a palavra-chave lock?
  • O thread de classes de coleção genérica da biblioteca padrão é seguro?
  • O que é um método de extensão?
  • Qual é a diferença entre XmlDocument e XmlReader?
  • Como você lê as definições de configuração do arquivo de configuração do aplicativo?

2

Isso é interessante, e correndo o risco de ser rebaixado por colocar na minha opinião, como eu nasci surdo, fazer uma pergunta como essa exigiria mais esforço para comunicar pessoalmente meus pensamentos da minha parte.

Para ser franco, eu realmente não leria muitas das perguntas típicas, pois o paradigma subjacente é ' Quão bem você pode vocalizar seus pensamentos e compreensão? ', é realmente isso que o entrevistador está procurando. A comunicação é sempre a minha maior fraqueza, devido à maneira como sou e pode ser frustrada com bastante facilidade.

Seria ideal ter o conhecimento e ser do tipo "sabe tudo", mas infelizmente há algumas coisas que não sei, mas não tenha medo se você realmente não souber a resposta e admiti-la em vez de blefar através dele. Se um entrevistador me fizesse uma pergunta como uma das anteriores, que eu não teria certeza ou não entenderia / interpretaria mal, eu diria isso de antemão, o que pode ser pessoalmente embaraçoso, mas aprendi a lidar com isso.

Você ficaria surpreso com quantos realmente waffle e blefam através dele, no qual no final do dia são pegos com as 'calças abaixadas' metaforicamente falando.

Meus 2 centavos, Atenciosamente, Tom.


2

Um pouco mais:

  1. Classes parciais. E suas limitações?
  2. Classes seladas
  3. Como a localização pode ser feita no .NET?
  4. Conectividade de banco de dados
  5. Vários arquivos de configuração
  6. Delegados x eventos
  7. Acesso não gerenciado à DLL
  8. Reflexões
  9. Classes genéricas
  10. Mais quente no .NET 3.5
  11. Estruturas de teste de unidade que você usou.

2

Eu não faria essas perguntas "sabe alguma coisa do livro", mas faria algumas coisas como:

  • O que o loop foreach faz em C # simples? (Esperando que ele escreva um loop do iterador.)
  • O que é um singleton?
  • Permita que ele analise uma String no Datetime (esperando que ele use TryParse em vez de try / catch)
  • Implementar os padrões singleton, estratégia e comando
  • Deixe-o refatorar um pedaço de código para teste. Esperando que ele abstraia os serviços externos da Unidade em teste e implemente seu próprio teste duplo do serviço (não fornecendo estrutura de simulação)

Estes não têm 100% de certeza, dependendo da pessoa que eu possa perguntar:

  • deixe que ele proteja um método da entrada nula (esperando que ele use vários retornos para reduzir o aninhamento)
  • como um inicializador de objetos funciona (esperando que ele / ela escreva a atribuição segura para threads)

Além disso, eu perguntaria a ele como ele aprendeu suas coisas e o que está lendo (que blogs, livros).


1

Um pouco mais:

Quais são as limitações da coleta de lixo.

Conheça os finalizadores e o IDisposable.

Esteja ciente do pool de threads e quando usá-lo.

Se você estiver executando aplicativos de GUI - esteja ciente de que a GUI do Windows é de thread único.

Use foreach (vejo muitas pessoas fazendo o MoveNext etc.)


1
Eu não sabia, então procurei as limitações da coleta de lixo .
MSpeed

1

Eu acho que não deve ser apenas perguntas, eu conheço alguns caras que são brilhantes quando você os entrevista, mas quando eles chegam à realidade eles são muito perfeccionistas, eu diria que eles não conseguem codificar a tarefa miseravelmente.

Fui entrevistado uma vez e gostei da abordagem em que o primeiro empregador me deu um questionário técnico para preencher em 30 minutos. Se alguém for bem-sucedido, ele será chamado para uma entrevista de 1 hora, cobrindo questões sobre julgamento de personalidade e caráter, além de jargões técnicos.

Me pediram para desenvolver um aplicativo da web de três páginas em 6 horas. As restrições impostas no aplicativo cobriam de maneira inteligente o aspecto principal do desenvolvimento de aplicativos, como um pequeno ERD, design de camadas, consistência da interface do usuário, controla problemas específicos, como o uso de botões de opção no GridView and Fetching e a exibição de tipos de imagem do banco de dados em uma página da web, desenvolvimento de um algoritmo, segurança, criptografia, hash, representação e manipulação de dados.

No dia seguinte, eles seguiram uma discussão de 30 minutos sobre o aplicativo desenvolvido, abrangendo áreas de gargalo de desempenho e melhorias no design e nos algoritmos usados. E teste opcional de 1 hora para melhorar seu algoritmo desenvolvido na etapa anterior com uma condição específica.

Por isso, demorou bastante tempo, mas dessa forma você pode garantir que a pessoa que você está contratando conheça pelo menos os conceitos essenciais para um bom desenvolvedor.


0

Eu preferiria dar-lhe um problema e pedir-lhe para resolvê-lo usando os recursos do .net que você conhece e por que você acha que é a melhor solução.

Isso quebrará quase todas as capacidades de um candidato em termos de habilidades técnicas, analíticas e de resolução de problemas, juntamente com sua abordagem para solucionar um problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.