Teste de aptidão do programador [fechado]

14

Tenho muitos amigos que veem o que faço, acham interessante e me fazem a pergunta

Do you think I could be a programmer?

Minha resposta é

...   ummm  ...  do you like math?

Gostaria de ter uma resposta útil, por isso não sabia se alguém sabia de um teste de aptidão bastante decente para alguém que começaria do zero, mas que possui habilidades de pensamento crítico e resolução de problemas?

jondavidjohn
fonte
Proponho o BuzzFizz: dados três executáveis ​​diferentes, eles podem executá-los e identificar qual é o "FizzBuzz"?
Macneil
15
Não misture matemática e programação. Eu trabalho como programador por anos. Eu odeio matemática. Outro exemplo: Jeff Atwood é um excelente programador. Ele odeia matemática (ver codinghorror.com/blog/2007/01/… , ponto 3).
Arseni Mourzenko
2
@ MAINMA Eu não posso enfatizar o quão verdadeiro isso. Estou exatamente no mesmo barco. A matemática nunca foi uma paixão minha, nem um ponto forte, para esse assunto. Dito isto, muitos que me conhecem atestam minha extrema aptidão (leia-se: obsessão) pela programação. A matemática pode ser uma parte importante da programação, mas uma não gera necessariamente a outra.
Nathan Taylor
1
talvez quando eu digo "você gosta de matemática?", quero dizer "você respeita matemática?", eu realmente gosto de matemática manualmente, e é por isso que eu gosto de fazer o computador fazer a matemática para mim, mas eu respeito e entender os princípios finitos da matemática que acredito que me ajudem em meus processos de pensamento lógico.
jondavidjohn
2
"apptitude" é um muito legal erro de digitação neste contexto :-)
Ferruccio

Respostas:

12

"Gostar de matemática" é um teste ruim. Eu nunca gostei de matemática (principalmente porque 90% dos professores de matemática do ensino médio eram péssimos).

Quando você diz "matemática", a maioria das pessoas pensa que você quer dizer "resolver cuidadosamente uma equação de acordo com um conjunto muito estrito de regras". A programação não é assim.

Programar é mais como desenhar, pois o que você pode alcançar é restrito apenas pelo que você pode imaginar.

O que importa é a capacidade de imaginar um sistema e ver como ele funciona.

  • Você pensa em como as coisas funcionam?
  • Você pensa em maneiras de melhorar as coisas cotidianas?
  • Você pode visualizar como criar algo a partir de blocos de construção mais simples?
hasen
fonte
É mais como geometria?
precisa
é uma ciência aplicada, por isso realmente não tem uma ciência pura "equivalente" por si só.
jondavidjohn
1
A programação é mais como carpintaria, você primeiro visualiza a solução, seleciona suas ferramentas, aplica seu artesanato com cuidado usando a melhor madeira TDD. Jesus teria sido um programador se o comodoro 64 tivesse sido inventado um pouco antes.
Will
2
Na verdade, o que você descreveu parece muito com matemática - em oposição ao que acontece nas escolas de matemática.
uman
1
@Brennan: A única matemática que achei semelhante à programação foi a Matemática Discreta na universidade. A maioria das outras matemáticas que estudamos era sobre aplicar regras e fórmulas sem pensar para resolver algum tipo de equação. Você pode argumentar que isso não é verdade em matemática, mas não importa para essa discussão.
hasen 01/01
8

Lembro-me de quando eu fazia um teste de aptidão cerebral ; Ainda tenho o certificado armazenado em algum lugar ...

O esboço do teste:

Abstract Thinking
    Process Flow
    Spatial Manipulation
Analytical Reasoning
    Inductive Reasoning
    Logic Application
    Word Problems
Attention to Detail
    Following Instructions
    Reading Comprehension
    Rule Interpretation
    Writing Analysis
Mathematical Problem-Solving
    Word Problems
Process Mapping
    General Processes
    Letter Manipulation Processes
    Number Manipulation Processes
    Shape Manipulation Processes
Dan McGrath
fonte
1
Esse é um teste muito complicado. Se alguém me dissesse para fazer o teste antes de se aprofundar na programação, eu ficaria assustado. OK, talvez eu não me importe, mas qualquer um que faça o teste seriamente ficaria assustado.
hasen
2
Então? A programação pode ser um campo complicado (como outros podem). Se você se assusta tão facilmente, talvez não seja para você. Imagine se lhe perguntassem se alguém queria ser médico, em que deveriam ser bons? Eu não acho que você se importaria que isso assustasse algumas pessoas ... A vida é dura e complexa, elas devem se acostumar.
Dan McGrath
2
Bem, é um campo complicado, se você abordá-lo de frente, irá falhar. Todo mundo que começou a programar começou com coisas fáceis e acreditou que é realmente fácil. Essa crença provavelmente será mantida durante toda a sua experiência de aprendizado. Você nunca percebe o quão complicado é até olhar para trás ou observar alguém lutar com algo que considera muito básico.
hasen
Desculpe, pela lista acima estão as habilidades essenciais que você usará como programador. Eu acho que você está assustada com os nomes deles, e não com as perguntas que cairiam sob eles. Não é o caso de pedir conceitos complexos usados ​​em programação. Em outras palavras, testes de aptidão não têm nada a ver com o quanto você entende conceitos que você pode aprender a programação, é sobre a aptidão , para que o comentário sobre "começando com coisas fáceis" não é realmente relevante aqui
Dan McGrath
7

Há uma chance de que já exista uma boa por aí.

Veja, por exemplo, a discussão sobre como separar ovelhas de programação de cabras não programadas :

Todos os professores de programação acham que seus resultados exibem uma 'dupla corcunda'. É como se houvesse duas populações: aquelas que podem programar e aquelas que não podem programar, cada uma com sua própria curva de sino independente. Quase toda a pesquisa sobre programação de ensino e aprendizagem se concentrou no ensino: mude o idioma, mude a área de aplicação, use um IDE e trabalhe na motivação. Nada disso funciona, e a corcova dupla persiste. Temos um teste que seleciona a população que pode programar antes do início do curso. Podemos separar a corcunda dupla. Você provavelmente não acredita nisso, mas depois de ouvir a conversa. Não sabemos exatamente como / por que funciona, mas temos algumas boas teorias.

O que o teste identifica é a consistência das pessoas em operacionalizar uma sequência de instruções. O que isso significa é que eles podem construir modelos (abstrações) em suas mentes e trabalhar com eles.

Macneil
fonte
2

Eu acho que um "teste" mais importante seria mostrar a eles uma linguagem / ambiente de programação simples com a qual eles possam brincar. Por exemplo, processamento ou python . Se eles podem aprender e gostar de usar esse idioma - talvez enquanto resolvam uma tarefa simples ou duas -, esse é provavelmente o melhor "teste de aptidão" que você poderia solicitar.

Justin Ethier
fonte
2

"Você gosta de matemática?" não é um começo ruim. Matemática é fundamental, depois disso ...

É aconselhável ver se eles conseguem resolver um problema e começar a dividi-lo em blocos, apenas no discurso, se conseguem caminhar passo a passo por um problema básico é um bom começo inicial.

  • Como você diria a um robô como fazer uma xícara de chá? Seja o mais específico possível.
  • Ao pedir uma refeição no McDonalds, quais são as etapas envolvidas no manuseio do pedido, desde o recebimento inicial do pedido até a troca / alimentação.
  • Como o sistema telefônico funciona?

Se eles puderem respondê-las bem, da maneira analítica e profunda que um programador tem no dia a dia, provavelmente eles podem lidar com isso.

Orbling
fonte
1

Uma vez exposto à codificação, você tem uma compulsão para fazê-lo ou não. A aptidão é apenas um fator para saber se você será bom ou não. Exposição a bons exemplos, instruções, tempo na tarefa, esforço são outros. Realmente querer / precisar fazer algo torna muito mais fácil tirar proveito dos outros fatores.

JeffO
fonte
1

Uma pergunta melhor do que "Você gosta de matemática" é "Você gosta de resolver quebra-cabeças lógicos"? São coisas como Sudoku, etc., ou descobrir a resposta para enigmas como "John, Anne, Peter, Mary e Brittany são vizinhos. John tem um carro branco, Brittany mora à esquerda de Anne, blá blá, em que ordem para eles viverem? "

Porque é isso que é a programação: um enorme quebra-cabeça lógico.

Lennart Regebro
fonte
1
Eu (de certa forma) gosto de matemática, mas quebra-cabeças são apenas um golpe desnecessário da cabeça nas paredes. Eu acho que você precisa de motivação para criar algo útil - em oposição à ginástica mental com o objetivo de mostrar o quão inteligente você é.
Omega Centauri
Bem, ok, você não precisa gostar, apenas seja bom nisso. :-)
Lennart Regebro 01/01
1

Acho que uma pergunta melhor é "Você gosta de construir coisas com blocos de lego?"

davidk01
fonte
1

Assim como o Gusteau, um personagem do filme Ratatouille disse:

Qualquer um pode cozinhar.

Da mesma maneira, qualquer um pode programar. Mas nem todos serão ótimos nisso. A maioria dos trabalhos de programação exige um nível médio de aptidão e competência.

Apenas responda sim. Por quê? Porque a maioria das pessoas só quer se sentir apreciada por alguém que considera inteligente.

Pablo
fonte
2
Eu discordo totalmente que qualquer um pode programar. É chato, mas é a vida.
uman
0

Eu acho que a matemática do gosto é importante. Não do ponto de vista de que você desfrute de provas rigorosas, que seriam necessárias para ser um matemático sério. Mas, dado um problema que é importante para você, você pode formular os problemas envolvidos na solução de uma maneira matemática. Afirmo que tudo o que um computador faz é matemática, pega dados simbólicos de algum tipo e executa algum tipo de operação nele. Essa é a essência da matemática. Portanto, você deve ser capaz de abstrair as coisas em algum tipo de estrutura matemática e raciocinar sobre os passos adiante. Na falta disso, você está apenas invadindo, lançando algum código e esperando que ele faça o que você deseja. Ser capaz de resolver álgebra complicada sem erros de digitação e se perder, provavelmente não é tão necessário. Mas ser capaz de formular um plano é importante. Costumo escrever programas de dez linhas para verificar se minha matemática não é muito complicada. Combinar computadores com matemática, para fins de verificação, descoberta e sim, para descobrir os detalhes, quando existem muitos deles, é a chave real.

Omega Centauri
fonte