A entrevista técnica de 10 minutos [fechada]

37

Devo fazer uma avaliação rápida de dezenas de novos alunos muito rapidamente. Tenho 30 minutos de reunião com cada um deles (em dois ou três dias). Quero usar a maior parte do tempo para discutir aspectos não técnicos. Então, planejo usar 10 minutos para perguntas técnicas. As mesmas perguntas para todos eles.

Eles já estão todos contratados (são estudantes), o que eu preciso saber é o nível médio para preparar um treinamento.

Idealmente, a dificuldade must be progressivepara definir um nível para cada um. No nível eu medirei, e também medirei em cada questão.

Se você tivesse apenas 10 minutos e 10 perguntas a serem feitas a um candidato, quais seriam seus 10 melhores?

user2567
fonte
6
Mais contexto no trabalho? Esta é uma posição de administrador do sistema ou de programador e se estiver programando baixo ou alto nível? Algum idioma ou tecnologia específica em sua loja? Todos ditariam minha lista de perguntas.
Chris
4
Que tipo de treinamento? Programação? TI geral?
Adam Lear
3
Eu reverteria isso e gastaria 10 minutos em coisas pessoais e 20 minutos em coisas técnicas.
precisa saber é o seguinte
11
Eu sei, é o que a maioria das pessoas faria. Mas acredito em diferentes abordagens.
3
10 minutos para o candidato é muito pouco
Zzz

Respostas:

55

Três perguntas, elaboradas no final da resposta de Eric Lippert aqui :

Questão 1:

Em uma escala de 1 a 10, onde você se classifica (nomeie a habilidade aqui)? Eles respondem [n], um número entre 1 e 10.

Questão 2:

O que você aprendeu com alguém do nível [n + 1]?

Questão 3:

O que alguém do nível [n-1] aprendeu com você?

O fator mais importante em sua decisão é determinar onde um aluno (realisticamente) se coloca , e essas três perguntas ajudarão você a determinar isso rapidamente. Também ajuda a identificar pessoas que podem ser comprometidas pelo efeito Dunning-Kruger (em ambos os lados), mas esse é outro tópico.

Se alguém puder encontrar a referência a esse método no SO e editar esta postagem para incluir um link, eu realmente aprecio isso.

De qualquer forma, isso deve cair bem menos de dez minutos.

Tim Post
fonte
5
Uau! Métrica bastante incomum. Eu nunca pensei em mim dessa maneira. Obrigado!
Andrew Андрей Листочкин
Obviamente, o candidato responde 10 para evitar a segunda pergunta.
rightfold
4
@WTP Os dez são uma mentira.
Tim Post
11
Isto é soberbo. Se um empregador me perguntasse isso, eu poderia explicar mais sobre mim em apenas alguns minutos do que normalmente tenho a chance em uma entrevista de 1 hora.
Fearfawhackplanet
28
  1. O que é uma aula?
  2. O que é um método estático?
  3. O que é herança?
  4. O que é polimorfismo?
  5. O que é uma chave primária?
  6. O que é uma chave estrangeira?
  7. Qual é a diferença entre HTTP GET e HTTP POST?
  8. O que é um serviço da web?
  9. Nomeie algumas estruturas de dados.
  10. Qual é o objetivo de um Mapeador de Objetos / Relacional?

Sinta-se livre para sugerir substituições, esta lista tem muito espaço para melhorias.

Eric Wilson
fonte
11
métodos estáticos estão em muitas linguagens além do C ++, não que sejam relevantes aqui. Na verdade, acho que é um conceito difícil para muitos estudantes entenderem - e perguntar se eles entendem isso, ou pedir uma definição, é uma maneira ruim de descobrir se o fazem ou não.
Kate Gregory #
3
Lembre-se da pergunta especificada dez perguntas em dez minutos. Se houvesse dez perguntas em trinta minutos, eu gostaria de aumentar o nível de dificuldade e fazer perguntas abertas mais significativas.
Eric Wilson
3
Gosto muito das perguntas 1 a 8 da sua lista, embora possa substituir a pergunta 9 ou 10 por "Por que as interfaces são importantes" e / ou "Por que uma classe abstrata é importante?" (nessa ordem)
Nicole
7
O que há com todas as perguntas de OO?
Recursão
3
Eh, essas são todas as perguntas sobre os recursos do idioma. Não estou tão convencido de que sejam importantes, contra coisas mais ligadas à teoria.
Andres Jaan Tack
20
  1. Explique os ponteiros!
  2. O que são fechamentos?
  3. Quais idiomas você usa no seu tempo livre e por quê?
  4. Fale um pouco sobre transações!
  5. Qual é a diferença entre um intérprete e um JIT?
  6. Explique o básico de um compilador.
  7. O que acontece no nível da memória quando você faz recursão (e o que é diferente quando você tem TCO)
  8. Quais são os conceitos importantes da programação OO (e por que eles são importantes)?
  9. Que novidades você está procurando em casa e por que é interessante?
  10. Explique a diferença entre um processo e um encadeamento.
nickik
fonte
20
Eu não acho que a maioria destes são boas perguntas para as pessoas completamente novo para .net (ou programação) - e mesmo se eles sabem as respostas que há de 1 minuto por pergunta ...
FinnNk
9
Concordo que essas perguntas parecem mais perguntas do tipo "como você é nerd", em vez de perguntas do tipo "o que você sabe / aprendeu" para os alunos.
hyprsleepy
5
Eu falharia terrivelmente neste teste, principalmente porque nunca estudei CS ou usei C. Portanto, isso pode ajudar a determinar quem prestou atenção nas aulas e quem programa por diversão, mas não sei se será útil em contexto do PO.
Eric Wilson
3
A maioria das pessoas erraria a maioria delas.
Recursão
4
Boas perguntas, mas algumas não podem ser respondidas em um minuto.
Zvrba
16

Minha experiência com os alunos começaria do zero - descobri o que as pessoas aprendem na Universidade e o que é útil são dois conjuntos bem separados.

Mas, como você tem a chance de falar com eles, seria bobagem não aceitar.

Minha suposição é que há pouca semelhança em seus antecedentes, por isso estou evitando perguntas específicas do idioma. A única exceção que fiz a isso é a suposição de que eles fizeram algo na Web, mas essa pergunta pode ser substituída por algo equivalente se forem especialistas em incorporação ou o que for.

Você pediu que eles fossem progressivos, o que eu tentei fazer, mas se minha suposição de que nenhuma semelhança é correta, as perguntas certas / erradas são relativamente complicadas e grande parte de sua competência virá de quão boas são suas respostas para questões mais gerais. perguntas são.

De qualquer forma...

1) Em quais idiomas e tecnologias você foi exposto? Quantas delas (e quais) você passou mais de 50 horas realmente programando (que não inclui palestras, tempo de laboratório e assim por diante, mas inclui projetos e tarefas em que você estava codificando sozinho).

2) Descreva o programa mais complexo que você já escreveu. O que o tornou complexo?

3) O que você ensinou na universidade (relacionado à programação) que você realmente acha que não entende direito? Se você acha que entendeu tudo (verifique as notas deles neste momento), fale sobre um aplicativo ou elemento de um aplicativo que você viu que não saberia codificar e como poderá começar a pensar sobre isso.

4) Quais são os princípios básicos da programação orientada a objetos?

5) Conte-me o máximo possível sobre bancos de dados relacionais em 1 minuto

6) Para um aplicativo Web, descreva um método para manter informações sobre o usuário entre as páginas. Quais vantagens e desvantagens existem para o mecanismo que você descreveu.

7) Escolha uma parte da funcionalidade comumente usada na computação e explique brevemente como ela funciona em nível programático (por exemplo, criptografia, compactação). Explique também como você tinha que usar essa funcionalidade que a implementaria (aqui eu procuraria o fato de que, embora você saiba como algo funciona, provavelmente é melhor procurar uma biblioteca para ele).

EDIT: reestruturado e adicionado algumas perguntas extras para torná-lo mais progressivo, como originalmente solicitado.

Jon Hopkins
fonte
6
Gosto dessa lista e gostaria de acrescentar outra pergunta: Para o que você foi ensinado na universidade e que não vê nada prático no mundo real? Isso poderia dar algumas indicações úteis de como eles pensam.
glenatron
2
Se eles são qualquer bom, então os 10 minutos estão acima após a pergunta 2 :-)
Sean Patrick Floyd
Quando você pergunta sobre os "princípios" da OOP, você quer sugerir que a OOP é uma religião?
21811 compman
@comman - Claramente não. o princípio pode se aplicar a uma religião, mas não é exclusivo desse contexto e também pode se aplicar a qualquer organização, movimento ou profissão.
Jon Hopkins
8

Se esses estudantes são estudantes e você deseja avaliar onde eles estão nos estudos, realmente não deve haver perguntas complicadas ou perguntas que os façam pensar muito. Meu conselho seria apenas focar no básico - não há muito sentido em pedir que expliquem como a reflexão funciona se eles ainda não estão totalmente atualizados sobre os objetos e a herança.

Aqui estão alguns exemplos de perguntas que podem ser usadas e você pode começar com algo da categoria de conhecimento principal e, em seguida, mudar com base em como eles respondem às perguntas, como o teste adaptativo .

Fundamentos

  1. Quais são alguns comandos básicos de controle de fluxo de programa?
  2. Quais são algumas operações lógicas básicas?
  3. Qual é a diferença entre while e for loops?

Testemunho

  1. Explique brevemente a programação orientada a objetos.
  2. Explique brevemente o conceito de herança.
  3. Explique brevemente como os bancos de dados operam.
  4. Para que é enumusada a palavra - chave e quando você a utilizaria?

Avançado

  1. O que você pode me dizer sobre modelos C # genéricos ou C ++?
  2. O que você pode me dizer sobre a sobrecarga do operador?
  3. Qual é a diferença entre uma classe e uma estrutura?
  4. O que você pode me dizer sobre reflexões no .NET?
rjzii
fonte
6

Sem uma resposta ao meu comentário acima, essas são as coisas que vêm à mente de um modo geral, mas não tenho certeza se as consideraria técnicas.

  • Que tipo de controle de versão você usou?
  • Você está familiarizado com metodologias de desenvolvimento de software, como agile, cascata, tdd?
  • Qual é o objetivo da documentação em software?
  • Diferença entre linguagens estaticamente e dinamicamente tipadas?
Chris
fonte
5
"Por que o estilo de codificação de espaguete é útil?" - the ultimate one
mlvljr
Haha é isso para tentar enganá-los?
billy.bob
@ m.edmondson Agora, por favor, dê um exemplo de um caso em que é inevitável quebrar a abstração;)
mlvljr
Hmm eu não acredito que haja qualquer caso em que isso é inevitável ;-)
billy.bob
4

Sei que você está tentando criar o treinamento com base no que eles não sabem, e que planeja ter vários "baldes" de treinamento para diferentes grupos de estudantes. Como você tem apenas dez minutos, por que não fazer uma lista das coisas que está pensando em incluir no treinamento e fazer essas perguntas específicas. Então você planeja ensiná-los C #. Pergunte se eles o conhecem bem. Pergunte se eles usaram recursos mais recentes (LINQ, tipos anuláveis, genéricos, ...). Se houver conteúdo do banco de dados em seu treinamento, faça algumas perguntas sobre isso. No final, você pode perceber que um dos tópicos que você planejou é desnecessário, porque todos sabem disso, e alguns outros tópicos são necessários para todos, e assim por diante. Isso é mais prático do que tentar criar perguntas que não estejam relacionadas ao que você

Kate Gregory
fonte
+1 - Era o que eu queria dizer. Basta perguntar a eles o que precisam ser incluídos em um treinamento feito para eles.
Mouviciel
4

Faça a pergunta FizzBuzz

Eles sabiam como codificá-lo? Que idioma eles usaram? Por que eles codificaram da maneira que fizeram? Eles usaram recursão? Rotações? Outros métodos / funções? Ponteiros?

Você também pode usar a pergunta como base para outras perguntas (por exemplo, por que você não usou / não recursão? Como você escreveria isso usando ponteiros?)

Não abrange tudo, mas pode lhe dar uma idéia das habilidades de codificação

Rachel
fonte
11
Ah, sim, prometi a alguém da comunidade que faria essa pergunta. Será a última pergunta e vou compartilhar resultados com todos.
11
@ Pierre 303: Eu costumava pedir às pessoas que escrevessem uma função que validaria um código postal. Garanto-lhe que foi tão esclarecedor quanto o FizzBuzz.
Scott Whitlock
11
Você me dá a oportunidade de dar alguns resultados que obtive ao fazer essa pergunta. Em 6 ou 7 entrevistas, ninguém foi capaz de responder. A maioria deles eram estudantes novos, mas um tinha 8 anos de experiência! Então, eu estou um pouco confuso ...
4

Dez perguntas:

  1. Mostra um loop for que soma os valores de uma matriz. Pergunte então o que o trecho de código faz. [Eles podem ler um loop básico?]

  2. Peça que eles escrevam um loop for que imprima os números de 1 a 10, separados por vírgulas. [Além de "eles podem fazer isso?" você pode julgar quão repetitivo é o código deles.]

  3. Mostre um pedaço de código com duas referências ae b, apontando para dois objetos diferentes com um campo inteiro xdefinido como, digamos, 7e 5. Em seguida, transferir: a = b;, b.z = 9;e, em seguida, pedir o valor a.z. [Eles entendem referências?]

  4. Mostrar dois aninhados para loops (usando índices ie j), acumulando valores de alguma expressão. No loop mais interno, tenha dois cálculos: double x = Math.pow(2.0, i)e double y = x * j. Peça a eles para tornar o código mais eficiente. [Eles sabem sobre dependência de loop simples?]

  5. Pergunte a eles o que há de errado no exemplo de código A. (Veja abaixo.) [Eles podem pensar logicamente?]

  6. Pergunte a eles o que há de errado no exemplo de código B. (Veja abaixo.) [Também no pensamento lógico.]

  7. Peça-lhes para inverter esta condição: (s != null && s.Length != 0)sem usar !. [Eles conhecem a lei de DeMorgan?]

  8. Mostre um trecho de código semelhante aos antigos anúncios do Lint nas revistas: peça para encontrar o bug. Por exemplo, sobrecarregando em equalsvez de substituí-lo. [Eles são bons advogados de linguagem? Esse tipo de pergunta costuma ser um teste de experiência: você já viu essa pergunta antes?]

  9. Eles podem descrever como executar uma pesquisa binária através de uma matriz classificada?

  10. Eles podem descrever como um método de classificação pode ser implementado?

Podem parecer "muito curtos", mas acredito que, para avaliar os alunos, você pode achar que os dez minutos são bastante apertados. Você realmente quer vê-los fazendo alguma codificação. (Parece que você fará o FizzBuzz, com base em um comentário.)

Se você puder assumir um aluno mais forte, também poderá perguntar a alguns clássicos, como recursão, reversão de uma lista vinculada e talvez um curinga avançado como explicar uma lista XOR ou que intuições eles podem ter. por que classificar um conjunto de números facilita a compactação do que a não ordenada.

Amostra de código A:

if (m != null)
    a = m;
else
    a = null;

Amostra de código B:

if (x != 0 || x != 1) {
    ...
}
Macneil
fonte
3

Certamente você está fazendo isso da maneira errada. Identifique os agrupamentos em que você deseja colocar cada aluno

por exemplo

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

e assim por diante. Quando você identificar os grupos adequados que dependerão do material do curso, descobrir quais perguntas será trivial.

Michael Shaw
fonte
3

Os alunos já estão contratados e você deseja configurar um programa de treinamento, portanto, parte do acordo é descobrir com que rapidez eles podem aprender (e / ou o que sabem: quem se importa com quem?). Por que não escolher algumas perguntas fáceis, médias e difíceis e entregá-las com antecedência. Por que emboscá-los com perguntas que talvez não saibam, se podem ser facilmente aprendidas (por alguns)?

Você verá, ao contrário do que muitas pessoas imaginam, que muitos dos alunos não se sairão muito bem, mesmo com as perguntas em mãos. Dessa forma, você aprenderá sobre seus alunos, seus conhecimentos e sua capacidade de aprender.

Dan Rosenstark
fonte
2

Crie 5 construções simples de fluxograma e uma lista separada de respostas. Peça-lhes para combinar a imagem com a frase.

Desenhe o seguinte:

  1. If Construct
  2. Se outra construção
  3. Fazer loop enquanto
  4. Loop Até
  5. Construção de declaração de caso

Peça que expliquem a diferença entre 1 e 2.
Peça que explique a diferença entre 3 e 4.
Peça um exemplo de quando uma Construção de Declaração de Caso seria aplicável.

Michael Riley - também conhecido por Gunny
fonte
1

Não tenho certeza de que seria possível fazer isso em 10 perguntas em 10 minutos. Talvez dê cinco minutos para contar o que eles sabem sobre .net. Depois, faça uma lista preparada de talvez 20 tópicos e escolha 2 ou 3 das coisas que eles mencionaram e 2 ou 3 das coisas que eles não mencionaram.

Por exemplo, você pode começar:

Diga-me brevemente (você tem 5 minutos) como você produziria um projeto C # simples no Visual Studio, desde a criação até a execução.

Então, depois disso:

OK, conte-me um pouco mais sobre o seguinte. Vai ser rápido, 1 minuto por resposta, então não tente ser muito detalhado, só quero ter uma ideia do que você está familiarizado.

Em seguida, faça 5 perguntas para o seguinte:

  • Explique o que é uma classe.
  • Qual é a diferença entre uma classe abstrata e uma interface?
  • Explique brevemente como a coleta de lixo funciona no .Net

    ....

  • Como você depura algo se você tiver um problema?

  • Yadda-yadda - Tenho certeza de que você poderá escolher uma longa lista para escolher as outras respostas
FinnNk
fonte
1

Eu acredito em "auto-avaliação"! Se você explicar à pessoa a situação exata, ela se encontrará, por exemplo: "você terá que codificar SQL ... com banco de dados com mais de 100 tabelas e 500K + registros, que precisam ser executados em menos de 4 segundos ...". E se você perguntar a ele: "Você acha que pode fazer isso?" - você receberá uma resposta correta.

Passarei 5 perguntas sobre as expectativas dos alunos e 5 mais técnicas:

  1. O que você espera deste treinamento?
  2. Qual é o seu nível (isso deve ser específico do domínio)?
  3. O que você deseja ver / aprender durante este treinamento (aponte 3 pontos mais importantes)?
  4. Se fizermos exercícios, o que você consideraria mais útil para você? (oficina, múltipla escolha)?
  5. O que você espera do professor?

Do que você pode ir com algumas questões técnicas como (isso deve estar de acordo com o tópico). para OOP, por exemplo:

  1. O que é encapsulamento?
  2. O que é interface?
  3. Polimorfismo?
  4. Sub-digitando?
  5. Ligação dinâmica?
user7876
fonte
1

Estou procurando solução para problemas, um forte hábito de aprendizado, desenvolvimento profissional e amplo conhecimento de abordagens.

  1. Posso ver seu portfólio?
  2. Quais são os três últimos livros técnicos que você leu? Por quê?
  3. Qual texto de programação mudou da maneira que você mais pensa? Por quê?
  4. Como você definiria um chickencomo um objeto? Como isso se relaciona com os outros birds? Que tal mammalse animals?
  5. Você pode explicar (REST, polimorfismo, álgebra relacional, design de analisador, MVC) em termos leigos?
  6. Qual é o software mais interessante (ou melhor) que você construiu?
  7. Você pode descrever os idiomas nos quais você é proficiente, do favorito ao menos favorito? O que o frustra em relação aos seus idiomas menos favoritos?

Espero que os desenvolvedores:

  • Seja rápido e engenhoso
  • Compreender os conceitos básicos corretamente
  • Aprenda a grok conceitos avançados
  • Acompanhe o sucesso e o fracasso (aprendendo com ele)
  • Aprenda constantemente, pensativo
  • Comunique questões complexas simplesmente
  • Mostre equilíbrio e lógica ao discutir questões dogmáticas comuns
Bruce Alderson
fonte
11
Eu raramente leio livros de programação de capa a capa. Eles fazem melhor material de referência e esclarecimento.
Andres Jaan Tack
Você está certo: existem alguns textos que você não pode ler de capa a capa (material de referência), mas há vários volumes incríveis que mudarão sua forma de pensar. Por exemplo: Explicações visuais da Tufte, ou O paradoxo da escolha, ou Pragmática da linguagem de programação (ou qualquer coisa de Hofstadter).
precisa
"há vários volumes incríveis que mudarão sua forma de pensar", que não se restringe aos livros técnicos / de programação. Além disso, não tenho portfólio, todos os meus trabalhos têm sido sistemas seguros, eu estaria ferrado.
NimChimpsky
Contribua com algum tempo para um projeto aberto ou sem fins lucrativos. É importante ver o trabalho real antes de contratar alguém (você acabará mostrando seu trabalho real). Um portfólio é tão importante quanto um currículo bem cuidado.
precisa
1

A taxonomia de Bloom é útil aqui. Você deseja atingir uma variedade de níveis de conhecimento, variando de memorização mecânica a analítica. Isso lhe dá a chance de descobrir onde está o nível de habilidade deles. Como o OP estava procurando perguntas para os alunos, a lista abaixo não supõe mais conhecimento do que um aluno do terceiro ou quarto ano (espero) possua.

Conceptual

  1. O que é um estouro de pilha?
  2. Qual é a diferença entre um objeto e uma classe?
  3. Qual é a diferença entre uma função e um método?
  4. Identifique alguns dos pontos fortes e fracos do Quicksort e da Classificação por Inserção.
  5. Descreva como um programa que você escreveu exibia todos os valores armazenados em uma árvore binária.

Prático

  1. Você já usou um sistema de controle de versão? De que maneira isso permite que os membros da equipe colaborem de maneira mais eficaz?
  2. Seu compilador diz "símbolo não identificado". O que isso significa?
  3. O que é uma "violação de segmentação"?
  4. Nomear algumas estruturas de dados fornecidas pela sintaxe (inserir idioma aqui) ou biblioteca padrão.
  5. Como você encontraria e exibia todos os endereços de email em 10.000 arquivos?
Barry Brown
fonte
1

Como eles já foram contratados, para uma avaliação rápida, acho que devemos (juntamente com as questões de programação), devemos perguntar sobre

  1. Qual é a configuração do sistema em que você trabalhou (configuração de hardware do PC).
  2. Você tentou testar seu código (projeto se trabalhou durante a faculdade) em diferentes sistemas operacionais.
  3. Você prefere codificar no Windows ou Linux (se eles tiverem funcionado em outros sistemas operacionais que não o Windows)
  4. codificação é mais rápida / mais lenta / melhor depende dos sistemas? (sistemas mais altos = consideram-se um bom fator de codificação, pois os sistemas lentos demoram para compilar e tudo)
  5. Além disso, se perguntar se eles sabem pelo menos formatar uma unidade ou instalar o sistema operacional, no caso de travar / não conseguir inicializar o recurso de ajuda do pessoal de TI (isso é para saber se eles conseguem lidar com alguma situação do sistema operacional)

Essas perguntas são apenas para descobrir sua conscientização sobre o sistema usado durante a programação,

cod3r
fonte
0

Comece dos níveis mais baixos da pilha de software e suba.

  1. O que é o BIOS?
  2. Qual é o papel do sistema operacional?
  3. O que é multitarefa? O que é vinculação dinâmica?
  4. Descreva como o código-fonte é transformado em um programa de trabalho para o idioma de escolha do aluno (resposta de exemplo para C: pré-processador -> compilador -> um monte de arquivos de objeto -> vinculador -> executável)
  5. O que é um cache? Estime os tempos de acesso relativo ao cache L1, cache L2, RAM, disco rotacional (ou seja, não SSD).
  6. Enumere as estruturas de dados que você poderia implementar sem procurar detalhes na literatura.
  7. Qual é o programa mais complexo que você escreveu? O que o tornou complexo?
  8. Explique a recursão em um exemplo de sua própria escolha.
  9. Por que os programas falham?
  10. Explique o que é uma seção crítica e dê um exemplo de onde ela seria usada.
zvrba
fonte
4
A maioria dessas perguntas parece ter vindo de um livro sobre sistema operacional e, honestamente, pouco tem a ver com programação. Honestamente, você não precisa saber nada disso para a maioria dos trabalhos de programação, se houver.
Bryan Harrington
11
Um pouco exagerado, mas: Se você não sabe qual é a função do sistema operacional, não faz sentido falar sobre segurança e direitos de acesso, no nível do sistema operacional ou no banco de dados. Se você não conhece o processo de compilação, não pode depurar seu processo de compilação de A a Z. Se você não conhece as latências de cache, terá um código que empurra tudo em um DBMS em que um arquivo flat- arquivo seria suficiente. Se você não conhece mutexes, não sabe nada sobre programação paralela. O resto deve ter um link óbvio para a programação.
Zvrba
11
(E se você não sabe o BIOS é, você provavelmente não sabe nada sobre o hardware de programação PC.)
zvrba
4
Comece com um entendimento básico de eletricidade. Risque isso: comece com a física atômica. ENTÃO, vá até o BIOS.
Dan Rosenstark
Embora sejam perguntas muito importantes e básicas, e todo programador deve saber as respostas, sinto que a primeira metade da lista será um desperdício de tempo, pois são coisas que os técnicos de PC também precisam saber. Eles não dão uma boa idéia sobre se a pessoa que você está contratando sabe alguma coisa sobre programação .
Ken Bloom
0
  1. Uma string é mutável ou imutável?
  2. Qual é a diferença entre uma classe e uma classe estática?
  3. O que é um ponteiro?
  4. Descrever complexidade.
  5. Qual é a diferença entre uma matriz e uma lista vinculada?
  6. Qual é a diferença entre Merge Sort e Quick Sort?
  7. Dada uma planilha com as colunas Nome, Endereço, CEP e Número de telefone, descreva como você converteria a planilha em um banco de dados normalizado.
  8. Descreva as diferenças entre os métodos assíncrono e síncrono e as maneiras pelas quais eles precisam ser manipulados.
  9. Como você passaria informações de um aplicativo do servidor para um aplicativo da Web?
  10. Qual é o seu idioma preferido? Quais são alguns dos motivos pelos quais você usaria esse idioma no X? (ou seja, por que você deseja usar Java sobre C # e quais são algumas das diferenças fundamentais?)
Kavet Kerek
fonte