Prueba de aptitud del programador [cerrada]

14

Tengo muchos amigos que ven lo que hago, lo encuentran interesante y me hacen la pregunta.

Do you think I could be a programmer?

Mi respuesta es

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

Me gustaría tener una respuesta útil, así que no sabía si alguien sabía de una prueba de aptitud bastante decente para alguien que comenzaría desde cero, pero que tiene habilidades de pensamiento crítico y resolución de problemas.

jondavidjohn
fuente
Propongo BuzzFizz: dados tres ejecutables diferentes, ¿pueden ejecutarlos e identificar cuál es "FizzBuzz"?
Macneil
15
No mezcles matemática y programación. Trabajo como programador durante años. Odio Matemáticas. Otro ejemplo: Jeff Atwood es un excelente programador. Odia las matemáticas (ver codinghorror.com/blog/2007/01/… , punto 3).
Arseni Mourzenko
2
@MainMa No puedo enfatizar cuán cierto es esto. Estoy exactamente en el mismo bote. Las matemáticas nunca han sido una de mis pasiones, o incluso un punto fuerte, para el caso. Dicho esto, muchos de los que me conocen darán fe de mi extrema aptitud (léase: obsesión) para programar. Las matemáticas pueden ser una parte importante de la programación, pero una no necesariamente engendra a la otra.
Nathan Taylor el
1
tal vez cuando digo, "¿te gustan las matemáticas?", quiero decir "¿ respetas las matemáticas?", en realidad apestaba a las matemáticas a mano, por eso me gusta hacer que la computadora haga los cálculos por mí, pero respeto y entiendo los principios finitos de las matemáticas que creo que me ayudan en mis procesos de pensamiento lógico.
jondavidjohn
2
"apptitude" es un error tipográfico genial en este contexto :-)
Ferruccio

Respuestas:

12

"Me gustan las matemáticas" es una mala prueba. Nunca me gustaron las matemáticas (principalmente porque el 90% de los maestros de matemáticas en la secundaria apestaban).

Cuando dice "matemáticas", la mayoría de la gente piensa que quiere decir "resolver cuidadosamente una ecuación de acuerdo con un conjunto muy estricto de reglas". La programación no es así en absoluto.

La programación es más como dibujar, ya que lo que puedes lograr solo está restringido por lo que puedes imaginar.

Lo que importa es la capacidad de imaginar un sistema y ver cómo funciona.

  • ¿Piensas en cómo funcionan las cosas?
  • ¿Piensas en formas de mejorar las cosas cotidianas?
  • ¿Puedes visualizar cómo construir algo a partir de bloques de construcción más simples?
Hasen
fuente
¿Se parece más a la geometría?
Gulshan
es una ciencia aplicada, por lo que realmente no tiene una ciencia pura "equitativa" per se.
jondavidjohn
1
La programación se parece más a la carpintería, primero visualiza la solución, selecciona sus herramientas, aplica su oficio con cuidado utilizando la mejor madera TDD. Jesús habría sido un programador si el comodoro 64 hubiera sido inventado un poco antes.
Se
2
En realidad, lo que describiste se parece mucho a las matemáticas, a diferencia de lo que pasa para las escuelas de matemáticas.
Uman
1
@Brennan: La única matemática que encontré similar a la programación fue Matemática discreta en la universidad. La mayoría de las otras matemáticas que estudiamos consistían en aplicar reglas y fórmulas sin pensar para resolver algún tipo de ecuación. Puede argumentar que eso no es matemática verdadera, pero no importa en esta discusión.
Hasen
8

Recuerdo de cuando era niño haciendo una prueba de aptitud Brainbench ; Todavía tengo el certificado guardado en algún lugar ...

El esquema de prueba:

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
fuente
1
Esa es una prueba muy complicada. Si alguien me dijera que tomara la prueba antes de profundizar en la programación, me habría asustado. De acuerdo, tal vez no me importaría, pero cualquiera que se tome la prueba en serio se asustaría.
hasen
2
¿Entonces? La programación puede ser un campo complicado (como muchos otros). Si te asusta tan fácilmente, tal vez no sea para ti. Imagínese si le preguntaran si alguien quería ser médico, ¿en qué debería ser bueno? No creo que te importe que asuste a algunas personas ... La vida es dura y compleja, deberían acostumbrarse.
Dan McGrath el
2
Bueno, es un campo complicado, si lo abordas de frente , fracasarás. Todos los que comenzaron a programar comenzaron con cosas fáciles y creían que es realmente fácil. Esa creencia probablemente se mantendrá a través de su experiencia de aprendizaje. Nunca te das cuenta de lo complicado que es hasta que miras hacia atrás, o ves a alguien luchar con algo que encuentras muy básico.
hasen
Lo sentimos, según la lista anterior, son habilidades esenciales que usarás como programador. Creo que te han asustado sus nombres, en lugar de las preguntas que les corresponderían. No es como si le preguntara conceptos complejos utilizados en la programación. En otras palabras, las pruebas de aptitud no tienen nada que ver con cuánto entiendes los conceptos de programación que puedes aprender, se trata de aptitud , por lo que el comentario sobre "comenzar con cosas fáciles" no es realmente relevante aquí
Dan McGrath el
7

Existe la posibilidad de que haya una buena por ahí.

Vea, por ejemplo, la discusión sobre Separar ovejas de programación de cabras no programadas :

Todos los profesores de programación encuentran que sus resultados muestran una "doble joroba". Es como si hubiera dos poblaciones: las que pueden [programar] y las que no pueden [programar], cada una con su propia curva de campana independiente. Casi todas las investigaciones sobre programación de enseñanza y aprendizaje se han concentrado en la enseñanza: cambiar el idioma, cambiar el área de aplicación, usar un IDE y trabajar en la motivación. Nada de eso funciona, y la doble joroba persiste. Tenemos una prueba que selecciona la población que puede programar, antes de que comience el curso. Podemos separar la doble joroba. Probablemente no creas esto, pero lo harás después de escuchar la charla. No sabemos exactamente cómo / por qué funciona, pero tenemos algunas buenas teorías.

Lo que la prueba identifica es cuán consistentes son las personas con la operacionalización de una secuencia de instrucciones. Lo que eso significa es que pueden construir modelos (abstracciones) en sus mentes y trabajar con ellos.

Macneil
fuente
2

Creo que una "prueba" más importante sería mostrarles un lenguaje / entorno de programación simple con el que puedan jugar. Por ejemplo, procesamiento o python . Si pueden aprender y disfrutar usando dicho lenguaje, tal vez mientras resuelven una tarea simple o dos, entonces esa es probablemente la mejor "prueba de aptitud" que podría pedir.

Justin Ethier
fuente
2

"¿Te gustan las matemáticas?" No es un mal comienzo. Las matemáticas son críticas, después de eso ...

Es aconsejable ver si pueden resolver un problema y comenzar a dividirlo en bloques, solo en el habla, si pueden caminar paso a paso a través de un problema básico es un buen comienzo inicial.

  • ¿Cómo le dirías a un robot cómo hacer una taza de té? Sea lo más específico posible.
  • Al ordenar una comida en McDonalds, qué pasos están involucrados en el manejo de la orden, desde que inicialmente se le dijo a dar cambio / comida.
  • ¿Cómo funciona el sistema telefónico?

Si pueden responderlas bien, en la forma analítica y profunda que un programador tiene que hacer día a día, probablemente puedan manejarlo.

Orbling
fuente
1

Una vez que está expuesto a la codificación, tiene la obligación de hacerlo o no. La aptitud es solo un factor para saber si serás bueno o no. Exposición a buenos ejemplos, instrucción, tiempo en la tarea, esfuerzo son otros. Realmente querer / necesitar hacer algo hace que sea mucho más fácil aprovechar los otros factores.

JeffO
fuente
1

Una pregunta mejor que "¿Te gustan las matemáticas" es "¿Te gusta resolver acertijos lógicos"? Esto es cosas como Sudoku, etc., o averiguar la respuesta a acertijos como "John, Anne, Peter, Mary y Brittany son vecinos. John tiene un auto blanco, Brittany vive a la izquierda de Anne, bla, bla, en ese orden a que viven?

Porque eso es lo que es la programación: un gran rompecabezas lógico.

Lennart Regebro
fuente
1
Me gustan (algo) las matemáticas, pero los acertijos son un golpe innecesario de la cabeza contra las paredes. Creo que necesitas motivación para crear algo útil, en oposición a la gimnasia mental con el fin de mostrar cuán inteligente eres.
Omega Centauri
Bueno, está bien, no es necesario que te guste, solo sé bueno en eso. :-)
Lennart Regebro 01 de
1

Creo que una mejor pregunta es "¿Te gusta construir cosas con bloques de lego?"

davidk01
fuente
1

Al igual que el Gusteau, un personaje de la película Ratatouille dijo:

Cualquiera puede cocinar.

Del mismo modo, cualquiera puede programar. Pero, no todos serán geniales en eso. La mayoría de los trabajos de programación requieren un nivel promedio de aptitud y competencia.

Solo responde sí. ¿Por qué? Porque la mayoría de las personas solo quieren sentirse apreciadas por alguien que piensan que es inteligente.

Pablo
fuente
2
Estoy totalmente en desacuerdo con que cualquiera pueda programar. Apesta, pero así es la vida.
Uman
0

Creo que el gusto por las matemáticas es importante. No desde el punto de vista de que disfrutas probando rigurosamente las cosas, que serían necesarias para ser un matemático serio. Pero, dado un problema que es importante para usted, ¿puede formular los problemas involucrados en resolverlo de manera matemática? Afirmo que todo lo que hace una computadora es matemática, toma datos simbólicos de algún tipo y realiza algún tipo de operación en él. Esa es la esencia de las matemáticas. Por lo tanto, debe poder abstraer las cosas en una especie de estructura matemática y razonar sobre los pasos a seguir. A falta de eso, solo estás pirateando, lanzando un código y esperando que haga lo que quieras. Ser capaz de resolver álgebra complicada sin hacer errores tipográficos y perderse, probablemente no sea tan necesario. Pero poder formular un plan es importante. A menudo escribo programas de diez líneas para verificar que mi matemática no demasiado complicada se ha realizado correctamente. La combinación de las computadoras con las matemáticas, para fines de verificación, descubrimiento y sí para resolver los detalles, cuando hay muchas, es la clave real.

Omega Centauri
fuente